mirror of
https://github.com/kopia/kopia.git
synced 2026-05-06 13:54:46 -04:00
site: preparing for 0.8 Release (#877)
* Added draft release notes for 0.8 * Moved some content to 'advanced' section. * Added conceptual documentation for actions, caching and logging. * Updated site footer.
This commit is contained in:
@@ -109,7 +109,7 @@ func ValidateUsername(name string) error {
|
||||
}
|
||||
|
||||
if !validUsernameRegexp.MatchString(name) {
|
||||
return errors.Errorf("username must be specified as lowercase 'user@hostnames' (using only simple hostnames)")
|
||||
return errors.Errorf("username must be specified as lowercase 'user@hostname'")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
137
site/content/docs/Advanced/Actions/_index.md
Normal file
137
site/content/docs/Advanced/Actions/_index.md
Normal file
@@ -0,0 +1,137 @@
|
||||
---
|
||||
title: "Actions"
|
||||
linkTitle: "Actions"
|
||||
weight: 15
|
||||
---
|
||||
|
||||
Starting with v0.8 Kopia supports running custom user-provided commands or scripts before and after snapshot root and also before/after individual folders as they get snapshotted. This supports scenarios such as:
|
||||
|
||||
- creating snapshots of filesystems that support it (e.g. ZFS)
|
||||
- snapshotting databases or virtual machines as part of taking a snapshot
|
||||
- sending notifications to users, etc.
|
||||
|
||||
Actions can optionally modify the directory to be snapshotted or redirect upload to another directory (typically a mountpoint representing filesystem snapshot).
|
||||
|
||||
### Enabling Actions
|
||||
|
||||
To reduce the security risk, actions are an opt-in feature and are not enabled by default.
|
||||
|
||||
Actions can be enabled globally at connection time or individually per snapshot:
|
||||
|
||||
1. When connecting to repository you can pass `--enable-actions` which will enable actions globally
|
||||
for the client.
|
||||
2. You can override that decision when taking snapshot by passing `--force-enable-actions` or
|
||||
`--force-disable-actions` to enable or disable actions for the single snapshot session.
|
||||
|
||||
### Configuring actions
|
||||
|
||||
To set the script for a directory we can use `kopia policy set` on a directory.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
$ kopia policy set /some/dir --before-folder-action /path/to/command
|
||||
$ kopia policy set /some/dir --after-folder-action /path/to/command
|
||||
$ kopia policy set /some/dir --before-snapshot-root-action /path/to/command
|
||||
$ kopia policy set /some/dir --after-snapshot-root-action /path/to/command
|
||||
```
|
||||
|
||||
>NOTE: Unlike all other policy options, `--before-folder-action` and `--after-folder-action` are not inherited and must be set explicitly on target folders, while `--before-snapshot-root-action` and `--after-snapshot-root-action` are interited from their parents and can be set at global, host, user or directory level.
|
||||
|
||||
Actions can be `essential` (must succeed, default behavior), `optional` (failures are tolerated) or `async` (kopia will start the action but not wait for it to finish). This can be set
|
||||
using `--action-command-mode`, for example:
|
||||
|
||||
```
|
||||
$ kopia policy set /some/dir --mode=async \
|
||||
--before-folder-action /usr/local/bin/notifier.sh
|
||||
```
|
||||
|
||||
Each action has an associated timeout (by default 5 minutes), which specifies how long it will be allowed to run before Kopia kills the process. This can be overridden using `--action-command-timeout`:
|
||||
|
||||
```
|
||||
$ kopia policy set /some/dir --action-command-timeout=180s \
|
||||
--before-folder-action /usr/local/bin/notifier.sh
|
||||
```
|
||||
|
||||
Finally, the action command itself can be stored in a repository, when `--persist-action-script` is passed. To prevent binaries from being stored, the maximum script length can be up to 32000 characters.
|
||||
|
||||
Scripts stored like this will be temporarily extracted to a local directory and executed using shell command, which is:
|
||||
|
||||
* On Linux and macOS: `sh -e /path/to/temporary/script/file.sh"
|
||||
* On Windows: "cmd.exe /c C:\path\to\temporary\script\file.cmd"
|
||||
|
||||
On Unix, if the script has `#!` prefix, it will be executed directly, bypassing the `/bin/sh` shell.
|
||||
|
||||
### Action Environment
|
||||
|
||||
When kopia invokes `Before` actions, it passes the following parameters:
|
||||
|
||||
| Variable | Before | After | Description |
|
||||
| ------------------------ | ------ | ----- | ---------------------- |
|
||||
| `KOPIA_SNAPSHOT_ID` | Yes | Yes | Random 64-bit number |
|
||||
| `KOPIA_SOURCE_PATH` | Yes | Yes | Path being snapshotted |
|
||||
|
||||
The action command can modify the contents source directory in place or it can request other directory
|
||||
be snapshotted instead by printing a line to standard output:
|
||||
|
||||
```
|
||||
KOPIA_SNAPSHOT_PATH=<new-directory>
|
||||
```
|
||||
|
||||
This can be used to create point-in-time snapshots - see examples below.
|
||||
|
||||
The `After` action will receive the same parameters as `Before` plus the actual directory that was
|
||||
snapshotted (either `KOPIA_SOURCE_PATH` or `KOPIA_SNAPSHOT_PATH` if returned by the `Before` script).
|
||||
|
||||
## Examples
|
||||
|
||||
#### Dumping SQL databases before snapshotting:
|
||||
|
||||
This script invokes `mysqldump` to create a file called `dump.sql` in the directory
|
||||
that's being snapshotted. This can be used to automate database backups.
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
set -e
|
||||
mysqldump SomeDatabase --result-file=$KOPIA_SOURCE_PATH/dump.sql
|
||||
```
|
||||
|
||||
#### ZFS point-in-time snapshotting:
|
||||
|
||||
When snapshotting ZFS pools, we must first create a snapshot using `zfs snapshot`, mount it somewhere
|
||||
and tell `kopia` to snapshot the mounted directory instead of the current one.
|
||||
|
||||
After snapshotting, we need to unmount and destroy the temporary snapshot using `zfs destroy` command:
|
||||
|
||||
Before:
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
set -e
|
||||
ZPOOL_NAME=tank
|
||||
zfs snapshot $ZPOOL_NAME@$KOPIA_SNAPSHOT_ID
|
||||
mkdir -p /mnt/$KOPIA_SNAPSHOT_ID
|
||||
mount -t zfs $ZPOOL_NAME@$KOPIA_SNAPSHOT_ID /mnt/$KOPIA_SNAPSHOT_ID
|
||||
echo KOPIA_SNAPSHOT_PATH: /mnt/$KOPIA_SNAPSHOT_ID
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
ZPOOL_NAME=tank
|
||||
umount /mnt/$KOPIA_SNAPSHOT_ID
|
||||
rmdir /mnt/$KOPIA_SNAPSHOT_ID
|
||||
zfs destroy $ZPOOL_NAME@$KOPIA_SNAPSHOT_ID
|
||||
```
|
||||
|
||||
#### Contributions Welcome
|
||||
|
||||
Those are just some initial ideas, we're certain more interesting types of actions will be developed using this mechanism, including Windows VSS snapshots, LVM snapshots, BTRFS Snapshots, notifications and more.
|
||||
|
||||
If you have ideas for extending this mechanism, definitely [file an Issue on Github](https://github.com/kopia/kopia/issues).
|
||||
|
||||
If you develop a useful action script that you'd like to share with the communnity, we encourage you
|
||||
to do so by sending us a pull request to add to this web page or you can put them in your own repository and we'll be happy to link it from here.
|
||||
|
||||
To get started, click 'Edit This Page' link.
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "Architecture"
|
||||
linkTitle: "Architecture"
|
||||
weight: 60
|
||||
weight: 1
|
||||
---
|
||||
|
||||
Kopia stores its data in a data structure called Repository.
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
63
site/content/docs/Advanced/Caching/_index.md
Normal file
63
site/content/docs/Advanced/Caching/_index.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: "Caching"
|
||||
linkTitle: "Caching"
|
||||
weight: 20
|
||||
---
|
||||
|
||||
To optimize performance Kopia maintains local cache of contents, metadata, indexes and more. This document provides more insight into this process.
|
||||
|
||||
### Cache Directory Location
|
||||
|
||||
Default Cache Directory Location varies by operating system:
|
||||
|
||||
* On Linux - `~/.cache/kopia/{unique-id}`
|
||||
* On macOS - `~/Library/Caches/kopia/{unique-id}`
|
||||
* On Windows - `%LocalAppData%\kopia\{unique-id}`
|
||||
|
||||
Where `{unique-id}` is a hash of configuration file used and unique identifier that's specific to a
|
||||
connected repository.
|
||||
|
||||
The cache directory location can be overridden when connecting to a repository by specifying `--cache-directory` flag or `KOPIA_CACHE_DIRECTORY` environment variable. It will be persited in the configuration file.
|
||||
|
||||
When set `KOPIA_CACHE_DIRECTORY` environment variable takes precendence over location stored in the configuration file.
|
||||
|
||||
### Cache Types
|
||||
|
||||
Kopia maintains several different types of caches for different purposes:
|
||||
|
||||
* `metadata` (encrypted in storage) - stores directory listings, manifests and other data stored in `q` blobs in the repository. Each cache entry stores the whole original `q` blob (usually ~20 MB each).
|
||||
|
||||
* `contents` (encrypted in storage) - stores contents from `p` blobs. Unlike the metadata cache, elements of the contents cache store sections of the underlying blobs.
|
||||
|
||||
* `indexes` (non-encrypted) - contains locally-cached index information (mapping of contents to their location in blobs) in a format that can be directly memory-mapped for efficient access.
|
||||
|
||||
* `own-writes` (non-encrypted) - keeps track of names and timestamps of index blobs written by local Kopia to ensure it can see its own writes, even if the underlying storage list mechanism is eventually consistent and written files show up after some delay.
|
||||
|
||||
* `blob-list` (non-encrypted) - short-lived cache (by default 30 seconds) to avoid frequent listing of blobs in the underlying storage
|
||||
|
||||
* `server-contents` (encrypted locally) - contents downloaded from the repository server.
|
||||
|
||||
### Setting Cache Parameters
|
||||
|
||||
You can override cache sizes, durations and locations by using `kopia cache set`:
|
||||
|
||||
```
|
||||
# set size to 20GB and override location
|
||||
$ kopia cache set --content-cache-size-mb=20000 --cache-directory=/var/my-cache
|
||||
```
|
||||
|
||||
To override `blob-list` cache duration:
|
||||
|
||||
```
|
||||
$ kopia cache set --max-list-cache-duration=300s
|
||||
```
|
||||
|
||||
Note the cache sizes are not hard limits: cache is swept periodically (every few minutes) to bring
|
||||
the total usage below the defined limit by removing least-recently used cache items.
|
||||
|
||||
### Clearing Cache
|
||||
|
||||
Cache can be cleared on demand by `kopia cache clear` or by simply removing appropriate files. It is always safe to remove files from cache.
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Version Compatibility
|
||||
linkTitle: Version Compatibility
|
||||
weight: 80
|
||||
title: Compatibility
|
||||
linkTitle: Compatibility
|
||||
weight: 100
|
||||
---
|
||||
|
||||
Kopia uses [semantic versioning](https://semver.org).
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "Encryption"
|
||||
linkTitle: "Encryption"
|
||||
weight: 70
|
||||
weight: 2
|
||||
---
|
||||
|
||||
### Format Blob Encryption
|
||||
54
site/content/docs/Advanced/Logging/_index.md
Normal file
54
site/content/docs/Advanced/Logging/_index.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: "Logging"
|
||||
linkTitle: "Logging"
|
||||
weight: 30
|
||||
---
|
||||
|
||||
Kopia maintains diagnostic logging for troubleshooting purposes. This documents describes parameters that can be set to configure logging:
|
||||
|
||||
### Log File Location
|
||||
|
||||
The location of log directory varies by operating system:
|
||||
|
||||
* On Linux - `~/.cache/kopia`
|
||||
* On macOS - `~/Library/Logs/kopia`
|
||||
* On Windows - `%LocalAppData%\kopia`
|
||||
|
||||
Log file location can be overridden by setting flag `--log-dir` or `KOPIA_LOG_DIR` environment
|
||||
variable.
|
||||
|
||||
The log directory contains two subdirectories:
|
||||
|
||||
* `cli-logs` - contains one log file per each invocation of `kopia` binary and contains general-purpose logging and debugging information and may contain sensitive information like username, hostname, filenames, etc. Please sanitize contents of such log files before filing bug reports.
|
||||
|
||||
* `content-logs` - contains one log file per each invocation of `kopia` binary and contains low-level formatting logs but will not contain any sensitive data such as file names, hostnames, etc.
|
||||
|
||||
### Log Retention
|
||||
|
||||
Log retention can be configured using flags and environment variables.
|
||||
|
||||
| Flag | Environment Variable | Default | Description
|
||||
| --------------------------------- | ---------------------------- | ------- | --------------
|
||||
| `--log-dir-max-files` | `KOPIA_LOG_DIR_MAX_FILES` | 1000 | Maximum number of log files to retain |
|
||||
| `--log-dir-max-age` | `KOPIA_LOG_DIR_MAX_AGE` | 720h | Maximum age of log files to retain |
|
||||
| `--content-log-dir-max-files` | `KOPIA_CONTENT_LOG_DIR_MAX_FILES` | 5000 | Maximum number of content log files to retain |
|
||||
| `--content-log-dir-max-age` | `KOPIA_CONTENT_LOG_DIR_MAX_AGE` | 720h | Maximum age of content log files to retain |
|
||||
|
||||
### Controlling Log Level
|
||||
|
||||
The amount of logs can be controlled using log levels:
|
||||
|
||||
* `debug` - most detailed logs including potentially verbose debugging information
|
||||
* `info` - normal output
|
||||
* `warning` - errors and warnings only
|
||||
* `error` - errors only
|
||||
|
||||
You can control how much data is written to console and log files by using flags:
|
||||
|
||||
* `--log-level` - sets log level for console output (defaults to `info`)
|
||||
* `--file-log-level` - sets log level for file output (defaults to `debug`)
|
||||
|
||||
### Color Output
|
||||
|
||||
By default console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Repository Synchronization"
|
||||
linkTitle: "Repository Synchronization"
|
||||
title: "Synchronization"
|
||||
linkTitle: "Synchronization"
|
||||
weight: 46
|
||||
---
|
||||
|
||||
6
site/content/docs/Advanced/_index.md
Normal file
6
site/content/docs/Advanced/_index.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "Advanced Topics"
|
||||
linkTitle: "Advanced Topics"
|
||||
weight: 99
|
||||
---
|
||||
|
||||
@@ -26,7 +26,7 @@ The Kopia UI is new and experimental. See the tutorial on YouTube:
|
||||
|
||||
## Setting Up Repository
|
||||
|
||||
Repository is a place where Kopia stores all its snapshot data. It's typically remote storage, such as [Google Cloud Storage](https://cloud.google.com/storage/), [Amazon S3](https://aws.amazon.com/s3/) (or compatible such as Minio.io, Wasabi, B2), [Azure](https://azure.microsoft.com/services/storage/), sftp, http/s, webdav or similar. You can also use any locally-mounted storage (using SMB, NFS or similar). For more details about repository see [Architecture](../architecture/) and [Repositories](../repositories).
|
||||
Repository is a place where Kopia stores all its snapshot data. It's typically remote storage, such as [Google Cloud Storage](https://cloud.google.com/storage/), [Amazon S3](https://aws.amazon.com/s3/) (or compatible such as Minio.io, Wasabi, B2), [Azure](https://azure.microsoft.com/services/storage/), sftp, http/s, webdav or similar. You can also use any locally-mounted storage (using SMB, NFS or similar). For more details about repository see [Architecture](../advanced/architecture/) and [Repositories](../repositories).
|
||||
|
||||
To create a repository use one of the subcommands of `kopia repository create`.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Kopia functionality is organized into [Common Commands](common/) for typical use
|
||||
|
||||
### Connecting to Repository
|
||||
|
||||
Most commands require a [Repository](../../architecture/) to be connected first. The first time you use Kopia, repository must be created, later on it can be connected to from one or more machines.
|
||||
Most commands require a [Repository](../../advanced/architecture/) to be connected first. The first time you use Kopia, repository must be created, later on it can be connected to from one or more machines.
|
||||
|
||||
Creating a repository is as simple as:
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ linkTitle: "Release Notes"
|
||||
weight: 1
|
||||
---
|
||||
|
||||
* [0.6.0](v0.6.0/) - Latest Release
|
||||
* [0.5.2](v0.5.2/)
|
||||
* [0.4.0](v0.4.0/)
|
||||
* [0.3.0](v0.3.0/)
|
||||
* [0.8](v0.8/) - upcoming release
|
||||
* [0.7](v0.7/) - latest
|
||||
* [0.6](v0.6/)
|
||||
* [0.5](v0.5/)
|
||||
* [0.4](v0.4/)
|
||||
* [0.3](v0.3/)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Kopia v0.4.0"
|
||||
linkTitle: "v0.4.0"
|
||||
title: "Kopia v0.4"
|
||||
linkTitle: "v0.4"
|
||||
weight: -40
|
||||
---
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Kopia v0.5.2"
|
||||
linkTitle: "v0.5.2"
|
||||
title: "Kopia v0.5"
|
||||
linkTitle: "v0.5"
|
||||
weight: -50
|
||||
---
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Kopia v0.6.0"
|
||||
linkTitle: "v0.6.0"
|
||||
title: "Kopia v0.6"
|
||||
linkTitle: "v0.6"
|
||||
weight: -60
|
||||
---
|
||||
|
||||
@@ -8,9 +8,9 @@ We are very excited to announce the 0.6 release of Kopia! This is a big mileston
|
||||
|
||||
This version brings manny performance, usability and stability improvements listed below, adds supports for new providers and CLI options and introduces major new features described below:
|
||||
|
||||
* [Maintenance Tasks](/docs/maintenance/)
|
||||
* [Maintenance Tasks](/docs/advanced/maintenance/)
|
||||
* [Repository Server](/docs/repository-server/)
|
||||
* [Repository Synchronization](/docs/repository-synchronization/)
|
||||
* [Repository Synchronization](/docs/advanced/synchronization/)
|
||||
|
||||
### Upgrade notes
|
||||
|
||||
87
site/content/docs/Release Notes/v0.7.md
Normal file
87
site/content/docs/Release Notes/v0.7.md
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: "Kopia v0.7"
|
||||
linkTitle: "v0.7 (latest)"
|
||||
weight: -70
|
||||
---
|
||||
|
||||
## Functional changes in v0.7.3
|
||||
|
||||
* Improved restore performance (added parallelism)
|
||||
* Fixes for restoring symlinks
|
||||
* Added --force-color and --disable-color flags
|
||||
* Cleaned up console log output (removed timestamp by default, module) and refactored most output to use logger, so it can be controlled with flags. With this it's now possible to have zero-output snapshot command suitable for crontab: `kopia snapshot create --all --log-level=warning --no-progress`
|
||||
|
||||
## Functional changes in v0.7.2
|
||||
|
||||
* Fixed retention tag application to incomplete snapshots, automatically apply at checkpoints. (#660)
|
||||
* repo: refresh indexes in the background every 15 minutes (#650)
|
||||
* Upgrade webdav client dependency to include bugfix for the race condition (#651)
|
||||
* b2: fixed handling of 'no_such_file' to indicate NOT_FOUND (#646)
|
||||
* cli: When listing directory that had errors, print error summary at the end. (#643)
|
||||
* Fixed empty object IDs in checkpoints (#649)
|
||||
* restore: improved user experience (#644)
|
||||
* Fixed few minor data races (#659)
|
||||
* Eliminated busy loop after snapshot failure (#658)
|
||||
|
||||
## Changes in v0.7.1
|
||||
|
||||
## CLI Changes
|
||||
|
||||
* Restore support for symlinks (experimental) (#621)
|
||||
* Ensure advanced commands are not accidentally used (#611)
|
||||
* Fixed snapshot delete to support deleting file (not directory) snapshots by object ID (#613)
|
||||
* Remove maintenance lock file on disconnect (#616)
|
||||
* Fixed checkpointing to not restart the entire upload process (#594)
|
||||
* Plumbed through missing --server-cert-fingerprint option (#580)
|
||||
* Tools to help investigate repository structures safely (read-only mode and index inspect) (#553)
|
||||
* cli: ignore trailing / in repository server URL (#569)
|
||||
* Improvements to UX for mounting directories (#573)
|
||||
* Changed default file log level to debug
|
||||
* implemented Cache Directory Tagging Specification (#565)
|
||||
* added support for setting and changing repository client options (description, read-only, hostname, username) (#589)
|
||||
* don't ask for password if repository is not connected (#627)
|
||||
* fuse: changed file read implementation to avoid OOM (#620)
|
||||
|
||||
## Kopia UI Changes
|
||||
|
||||
* Kopia UI improvements for creating repositories and connecting to repositories (#592)
|
||||
* Added ability to connect to kopia server and few other minor tweaks (#546)
|
||||
* Improvements to UX for mounting directories (#573)
|
||||
* Added license ID and description
|
||||
* Fix for zero-sized snapshot bug (#641)
|
||||
|
||||
## Repository Improvements
|
||||
|
||||
* Re-enables deletion of unused data blobs which was disabled in v0.6.3
|
||||
* content: allow objects marked for deletion to be read (addresses unavoidable race condition) (#601)
|
||||
* object: implemented fast concatenation of objects by merging their index entries (#607)
|
||||
* splitter throughput improvements (#606)
|
||||
* bugfix: fixed splitter reset on reuse (#596)
|
||||
* bugfix: fixed index compaction that would resurrect content entry during full maintenance (#563)
|
||||
* bugfix: upload: fixed ForceHashPercentage behavior to be non-deterministic (#579)
|
||||
* upload: scan the directory to be uploaded in parallel to estimate the amount of data to be uploaded (#622)
|
||||
* Set BuildVersion during repo initialization. (#572)
|
||||
* Added support for Blake3 hashing (#640)
|
||||
|
||||
## Server Improvements:
|
||||
|
||||
* pre-read request body to fix HTTP/2 deadlock (#539)
|
||||
|
||||
## Infrastructure Improvements
|
||||
|
||||
* added RPM and APT repositories (#600)
|
||||
* build: publishing of scoop Windows packages via goreleaser
|
||||
* added endurance test which tests kopia over long time scale (#558)
|
||||
* upraded to Go 1.15 (#598)
|
||||
* logging: revamped logs from content manager to be machine parseable (#617)
|
||||
* testing: added performance benchmark (#618)
|
||||
|
||||
## Providers
|
||||
|
||||
* Experimental rclone backend (#545)
|
||||
* SFTP connectivity and docs improvements (#623)
|
||||
|
||||
## Compatibility Information
|
||||
|
||||
* v0.7 release is compatible with repositories created with v0.6 and v0.5.
|
||||
* Due to splitter bug in previous releases (#595) repositories created using previous releases may not provide perfect deduplication for large files across multiple machines. Migrating the repository to v0.7 is recommended and will help reclaim the disk space.
|
||||
59
site/content/docs/Release Notes/v0.8.md
Normal file
59
site/content/docs/Release Notes/v0.8.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "Kopia v0.8 (upcoming release)"
|
||||
linkTitle: "v0.8 (upcoming release)"
|
||||
weight: -80
|
||||
---
|
||||
|
||||
>NOTE: Kopia v0.8 is is coming soon, but official builds are not avilable yet. This document is a preview of upcoming changes.
|
||||
|
||||
This version brings many performance, usability and stability improvements and several new and exciting features.
|
||||
|
||||
There were over 130 changes by 19 contributors which represents a big growth in community engagement.
|
||||
|
||||
### New Features:
|
||||
|
||||
* Added support for scanning only one filesystem via files policy
|
||||
* Major improvements to ignore logic to better follow [.gitignore rules](https://git-scm.com/docs/gitignore).
|
||||
* Added support for [Actions](https://kopia.io/docs/advanced/actions/) which allow running custom scripts before and after a directory is snapshotted with lots of useful applications.
|
||||
* Support for write sessions, which ensure garbage collection does not prematurely delete blobs that
|
||||
are in the middle of being uploaded by intermittently-connected clients (e.g. laptops that go to sleep often and can't checkpoint frequently enough)
|
||||
* Added support for stdin snapshots.
|
||||
* Added support for user authentication using user profiles stored in the repository (#809)
|
||||
* Brand new streaming GRPC protocol for talking to kopia repository server to improve performance and
|
||||
ensure session stickyness, which allows sharding and load-balancing.
|
||||
* Reworked error handling when taking snapshots to not fail fast (except when explicitly requested).
|
||||
* Switched to new FUSE implementation which supports MacFUSE 4.x
|
||||
* Added WebDAV-based mounting alternative for platforms that don't have working FUSE mechanism.
|
||||
* Streamlined flags for caching and improved cache sweep.
|
||||
* Major performance improvements when performing lots of index lookups in heavily-fragmented indexes.
|
||||
(speeds up snapshot verification by orders of magnitude)
|
||||
* Passthrough options to allow other-users access and mounting in empty directory.
|
||||
* Don't run maintenance as part of read-only actions.
|
||||
* Implemented caching for contents downloaded from Kopia Repository Server
|
||||
* Reduced latency for kopia repository server uploads by performing existence checks
|
||||
* Added explicit `--insecure` flag to `kopia server start` to prevent accidentally starting non-secured
|
||||
servers for development.
|
||||
* Improvements to `snapshot verify` to make output easier to understand.
|
||||
|
||||
### New KopiaUI features:
|
||||
|
||||
* Added new tab called `Tasks` which shows the status, progress, logs, and statistics of current and past long-running tasks (restore, estimate, snapshot, maintenance).
|
||||
* Streamlined snapshot creation flow to include estimation and initial policy definition.
|
||||
|
||||
### Provider improvements:
|
||||
|
||||
* S3 client - upgraded minio to v7
|
||||
* rclone - testing improvements
|
||||
* S3, GCS, Azure, B2 - rewrote retry logic to retry on all but known fatal errors.
|
||||
|
||||
### Infrastructure:
|
||||
|
||||
* Build for Apple Silicon (M1) is now available. The CLI is now dual-architecture
|
||||
and runs natively on both `amd64` and `arm64`.
|
||||
* Switched CI/CD infrastructure to GitHub actions with two self-hosted runners for ARMHF and ARM64
|
||||
* Makefile: various tricks to make PR builds faster
|
||||
|
||||
## Compatibility Information
|
||||
|
||||
* v0.8 release is compatible with repositories created with v0.7, v0.6 and v0.5.
|
||||
* While older clients can read repositories created with v0.8 it's recommended to use the latest version at earliest convenience.
|
||||
@@ -17,7 +17,37 @@ In repository server mode, each user is limited to seeing their own snapshots an
|
||||
|
||||
Repository Server should be started on a dedicated server in LAN, such that all clients can directly connect to it.
|
||||
|
||||
Before we can start repository server, we must first create a list of usernames and passwords that will be allowed access. The list must be put in a text file formatted using the [htpasswd](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) utility from Apache. Each username must be named:
|
||||
Before we can start repository server, we must first create a list of usernames and passwords that will be allowed access.
|
||||
|
||||
## Configuring Allowed Users - Kopia v0.8
|
||||
|
||||
Starting in Kopia v0.8, allowed repository users can be configured using `kopia user` commands. Each user is identified by its lowercase `username@hostname` where hostname by default is the name of the computer the client is connecting from (without domain name suffix).
|
||||
|
||||
To add a user:
|
||||
|
||||
```
|
||||
$ kopia user add myuser@mylaptop
|
||||
Enter new password for user myuser@mylaptop:
|
||||
Re-enter new password for verification:
|
||||
|
||||
Updated user credentials will take effect in 5-10 minutes or when the server is restarted.
|
||||
To refresh credentials in a running server use 'kopia server refresh' command.
|
||||
```
|
||||
|
||||
Other commands are also available:
|
||||
|
||||
* `kopia user list` - lists user accounts
|
||||
* `kopia user set` - changes password
|
||||
* `kopia user delete` - deletes user account
|
||||
|
||||
## Configuring Allowed Users - Kopia v0.7
|
||||
|
||||
>NOTE: This method is still supported in v0.8 but it's recommended to use `kopia user` to manage users
|
||||
instead.
|
||||
|
||||
In Kopia v7.0 the user list must be put in a text file formatted using the [htpasswd](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) utility from Apache.
|
||||
|
||||
Each username must be named:
|
||||
|
||||
```
|
||||
<client-username>@<client-host-name-lowercase-without-domain>
|
||||
@@ -62,6 +92,13 @@ To start repository server with auto-generated TLS certificate for the first tim
|
||||
kopia server start --htpasswd-file ~/password.txt --tls-generate-cert --tls-cert-file ~/my.cert --tls-key-file ~/my.key --address 0.0.0.0:51515
|
||||
```
|
||||
|
||||
or when using repository users in Kopia v0.8 and newer:
|
||||
|
||||
```
|
||||
kopia server start --allow-repository-users --tls-generate-cert --tls-cert-file ~/my.cert --tls-key-file ~/my.key --address 0.0.0.0:51515
|
||||
```
|
||||
|
||||
|
||||
This will generate TLS certificate and key files and store them in the provided paths (`~/my.cert` and `~/my.key` respectively). It will also print certificate SHA256 fingerprint, which will be used later:
|
||||
|
||||
```
|
||||
|
||||
@@ -14,5 +14,5 @@ Kopia is a fast and secure open-source backup/restore tool that manages filesyst
|
||||
* Go to the [Installation](installation/) page to get latest kopia release
|
||||
* Have a look at the [repositories](Repositories/) page to repositories usage examples
|
||||
* Check out some of Kopia's unique [Features](features/) including deduplication and encryption
|
||||
* Learn about the [Architecture](architecture/) of Kopia
|
||||
* Learn about the [Architecture](advanced/architecture/) of Kopia
|
||||
* Find more details about command line and APIs in the [Reference](reference/) section.
|
||||
|
||||
@@ -22,10 +22,6 @@ other = "in"
|
||||
[footer_all_rights_reserved]
|
||||
other = "All Rights Reserved"
|
||||
|
||||
[footer_privacy_policy]
|
||||
other = "Privacy Policy"
|
||||
|
||||
|
||||
# Post (blog, articles etc.)
|
||||
[post_byline_by]
|
||||
other = "By"
|
||||
|
||||
@@ -18,13 +18,16 @@
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
|
||||
{{ with .Site.Params.copyright }}<small class="text-white">© {{ now.Year}} {{ .}} {{ T "footer_all_rights_reserved" }}</small>{{ end }}
|
||||
{{ with .Site.Params.privacy_policy }}<small class="ml-1"><a href="{{ . }}">{{ T "footer_privacy_policy" }}</a></small>{{ end }}
|
||||
{{ with .Site.GetPage "about" }}<p class="mt-2"><a href="{{ .RelPermalink }}">{{ .Title }}</a></p>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-12 text-center py-2 order-sm-2">
|
||||
<small class="text-white">Hosted on <a href="https://netlify.com">Netlify</a></small>
|
||||
<small class="text-white">Hosted on <a href="https://netlify.com">Netlify</a>
|
||||
|
|
||||
Project Infrastructure Supported by <a href="https://www.kasten.io">Kasten by Veeam</a>
|
||||
|
|
||||
<a href="/docs/privacy">Privacy Policy</a></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user