You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

657 lines
23 KiB
Markdown

2 years ago
# Kopia
###### guide-by-example
6 months ago
*Last update april 2024 kopia v0.17.0*
2 years ago
![logo](https://i.imgur.com/A2mosM6.png)
1 year ago
# Content
1 year ago
* [Kopia in Linux](#Kopia-in-Linux)
* [Kopia in Windows](#Kopia-in-Windows)
1 year ago
* [Kopia in Docker](#Kopia-in-Docker)
1 year ago
* [Kopia backup to Cloud](#Kopia-backup-to-Cloud)
2 years ago
# Purpose & Overview
Backups.
* [Official site](https://kopia.io/)
1 year ago
* [Official Forum](https://kopia.discourse.group/)
2 years ago
* [Github](https://github.com/kopia/kopia)
1 year ago
Kopia is a new open source backup utility with basically **all** modern features.</br>
2 years ago
Cross-platform, deduplication, encryption, compression, multithreaded speed,
1 year ago
native cloud storage support, repository replication, snapshots mounting,
1 year ago
GUI version, server version,...
2 years ago
1 year ago
Written in golang.<br>
1 year ago
Embedded webGUI for server mode is done in React. KopiaUI comes packaged with electron.
2 years ago
1 year ago
### Ways to use Kopia
1 year ago
* **cli** - Command line.<br>
6 months ago
You execute kopia binary passing some commands, it does stuff, done.<br>
1 year ago
Deployment requires extra work - scripts with configs, scheduling.
* **KopiaUI** - GUI version.<br>
1 year ago
Kopia that comes packaged with electron for GUI to provide the feel of a standalone desktop app.<br>
1 year ago
Good for simple deployment where average user just wants to backup stuff.<br>
6 months ago
Benefits over cli is much easier setup, management.<br>
1 year ago
Drawback is that it runs under one user and only when that user is logged in.
1 year ago
* **Kopia Server** - kopia binary runs in a server mode.<br>
Runs in the background, now with its web server answering at url: `localhost:51515`<br>
Web GUI at the url makes the management easy so it can replace KopiaUI.<br>
6 months ago
But the intended purpose of the server mode is that Kopia instance can now serve
1 year ago
as a centralized repository for other machines that run their Kopia instances
6 months ago
and select server's url as a repository where to backup.<br>
1 year ago
Deployment requires extra work similar to cli, but actual use is through web GUI.
6 months ago
* **Kopia in Docker** - Kopia Server running as a docker container<br>
1 year ago
Can fulfill two needs:
1 year ago
* A centralized Kopia repository where other machines on the network,
that also use Kopia, backup their data.
1 year ago
* Backup docker-host stuff to a cloud or a mounted network storage.
Managed through webgui instead of cli.
![repo_first](https://i.imgur.com/rbqhmzZ.png)
# Some aspects of Kopia
1 year ago
[Official Getting Started Guide](https://kopia.io/docs/getting-started/)<br>
6 months ago
[Features](https://kopia.io/docs/features/)<br>
1 year ago
[Advanced Topics](https://kopia.io/docs/advanced/)
The above linked documentation is well written and worth a look
if planning serious use.
1 year ago
* Kopia is a single ~35MB binary file.
* Backups are stored in a **repository** that needs to be created first,
1 year ago
and is always encrypted.
* Before any action, Kopia needs to be **connected to a repo** as repos store most of
1 year ago
the settings(policies), and commands are executed in their context.
Multiple machines can be connected simultaneously.
5 months ago
* **Snapshots** are the backups created by kopia, stored in a repository.
1 year ago
* **Policy** - settings for repo/backup behaviour, stuff like backups retention,
what to ignore, logging, scheduling(server/UI), actions before and after backup,...
1 year ago
* **Policies** are stored inside a repo and can apply at various levels and
1 year ago
can **inherit** from each other
- **Global** policy, the default that comes predefined during repo creation,
can be edited like any other.
1 year ago
- Per user@machine policy
1 year ago
- Snapshot level policy, only applying for that one path.
1 year ago
* **Maintenance** is automatic.
1 year ago
* **Retention** of backups - [here's](https://kopia.discourse.group/t/trying-to-understand-retention-policies/164/4)
how it works under the hood.<br>
1 year ago
* **Restore** from backups is most easily done by mounting a snapshot.<br>
Web GUI versions have button for it, cli version can do `sudo kopia mount all /mnt/temp &`
1 year ago
* **Tasks** section in gui gets wiped when Kopia closes, info on snapshots run
history and duration then has to be find in logs
6 months ago
* **Logs** are creted on every execution of kopia binary.<br>
They rotate by default with max age 30 days, but still can grow hundreds of MB.
1 year ago
* [Compression](https://kopia.io/docs/advanced/compression/) is good and
1 year ago
should be set before backup starts. My go-to is `zstd-fastest`. If backups
feel slow `s2-default` is less cpu heavy but with worse compression.
1 year ago
Useful command: `kopia content stats`
1 year ago
* During snapshots Kopia uses local **cache**, location varies depending on the OS.
6 months ago
Default max size is 5GB. Cache gets swept periodically every few minutes.<br>
6 months ago
Useful commands are `kopia cache info` and `kopia cache clear`.<br>
Increase [considerably the max cache size](https://github.com/kopia/kopia/issues/3059#issuecomment-1663479603)
5 months ago
if planning to use cloud storage, as the maintenance could eat into egress cost
6 months ago
when kopia redownloads files.
* ...
2 years ago
1 year ago
# Kopia in Linux
2 years ago
1 year ago
![list_snapshots_cli](https://i.imgur.com/lQ8W5yh.png)
2 years ago
1 year ago
A script will be periodically executing cli version of kopia to connect to a repository,
execute backup, and disconnect.<br>
1 year ago
Systemd-timers are used to schedule execution of the script.
1 year ago
The repository is created on a network share, also mounted on boot using systemd.
2 years ago
1 year ago
### Install Kopia
2 years ago
4 months ago
For arch linux, kopia is on AUR `yay kopia-bin`<br>
[For other distros](https://kopia.io/docs/installation/#linux-installation-using-apt-debian-ubuntu)
2 years ago
1 year ago
### The initial steps and general use commands
2 years ago
1 year ago
* **repo creation**
1 year ago
1 year ago
`sudo kopia repo create filesystem --path /mnt/mirror/KOPIA/docker_host_kopia`<br>
`sudo kopia repo connect filesystem --path /mnt/mirror/KOPIA/docker_host_kopia`<br>
1 year ago
`sudo kopia repo status`
If the path used during creation does not exists, kopia will create it in full.<br>
After creation the repo is connected, so connnect command is just demonstration.
2 years ago
2 years ago
* **the policy info and change**
`sudo kopia policy list`<br>
1 year ago
`sudo kopia policy show --global`<br>
6 months ago
`sudo kopia policy set --global --compression=zstd-fastest --keep-annual=0 --keep-monthly=12 --keep-weekly=0 --keep-daily=14 --keep-hourly=0 --keep-latest=3`<br>
2 years ago
1 year ago
* **manual backup run**
2 years ago
2 years ago
`sudo kopia snapshot create /home/spravca/docker /etc`<br>
`sudo kopia snapshot list`<br>
2 years ago
1 year ago
Since the connection exists with a repo,
all that is needed is target that should be backed up.
* **mounting backups**
2 years ago
3 months ago
Be aware of sudo.<br>
If you connect with sudo, and mount with sudo,
you will need to be root to browse the backups.
`sudo kopia mount all /mnt/tmp` - mounts all snapshots<br>
1 year ago
`sudo kopia snapshot list`<br>
2 years ago
`sudo kopia mount k7e2b0a503edd7604ff61c68655cd5ad7 /mnt/tmp &`<br>
`sudo umount /mnt/tmp`<br>
2 years ago
1 year ago
### The backup script
2 years ago
1 year ago
In linux, passing multiple paths separated by space seems to work fine.<br>
So both `/home` and `/etc` are set to be backed up.
2 years ago
`/opt/kopia-backup-home-etc.sh`
2 years ago
```bash
2 years ago
#!/bin/bash
2 years ago
6 months ago
# v0.2
1 year ago
# initialize repository
# sudo kopia repo create filesystem --path /mnt/mirror/KOPIA/docker_host_kopia
1 year ago
# for cloud like backblaze
# sudo kopia repository create b2 --bucket=rakanishu --key-id=001496285081a7e0000000003 --key=K0016L8FAMRp/F+6ckbXIYpP0UgTky0
# sudo kopia repository connect b2 --bucket=rakanishu --key-id=001496285081a7e0000000003 --key=K0016L8FAMRp/F+6ckbXIYpP0UgTky0
1 year ago
# adjust global policy
6 months ago
# sudo kopia policy set --global --compression=zstd-fastest --keep-annual=0 --keep-monthly=12 --keep-weekly=0 --keep-daily=14 --keep-hourly=0 --keep-latest=3
2 years ago
1 year ago
REPOSITORY_PATH='/mnt/mirror/KOPIA/docker_host_kopia'
2 years ago
BACKUP_THIS='/home /etc'
1 year ago
export KOPIA_PASSWORD='aaa'
2 years ago
1 year ago
kopia repository connect filesystem --path $REPOSITORY_PATH
2 years ago
kopia snapshot create $BACKUP_THIS
kopia repository disconnect
1 year ago
6 months ago
# -------------- ERROR EXIT CODES --------------
3 months ago
# Kopia does not interrupts its run with an error exit code if a target or a repository are missing.
# This hides errors and makes systemd OnFailure event ineffective.
# Below are the checks for the paths existence,
# resulting in an immediate error exit code any of them do not exist.
# They are at the end because some backup might still get done even if something is missing
# We just want exit code 1 to let systemd know there was a failure.
1 year ago
1 year ago
IFS=' ' read -ra paths <<< "$BACKUP_THIS"
for path in "${paths[@]}"; do
if [ ! -e "$path" ]; then
1 year ago
echo "ERROR: Backup target '$path' does not exist."
1 year ago
exit 1
fi
done
1 year ago
if [ ! -d "$REPOSITORY_PATH" ]; then
1 year ago
echo "ERROR: Directory '$REPOSITORY_PATH' does not exist."
1 year ago
exit 1
fi
2 years ago
```
1 year ago
1 year ago
make the script executable<br>
`sudo chmod +x /opt/kopia-backup-home-etc.sh`
2 years ago
2 years ago
### Scheduled backups using systemd
2 years ago
2 years ago
Usually cron is used, but systemd provides better logging and control,
2 years ago
so better get used to using it.<br>
[Heres](https://github.com/kopia/kopia/issues/2685#issuecomment-1384524828)
2 years ago
some discussion on unit files.<br>
1 year ago
[ntfy](https://github.com/binwiederhier/ntfy) can be used for notifications,
2 years ago
more info [here](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/gotify-ntfy-signal#linux-systemd-unit-file-service)
1 year ago
* `sudo micro /etc/systemd/system/kopia-home-etc.service`
2 years ago
```kopia-home-etc.service```
```ini
[Unit]
Description=kopia backup
Wants=network-online.target
After=network-online.target
ConditionACPower=true
2 years ago
# OnFailure=ntfy@failure-%p.service
2 years ago
# OnSuccess=ntfy@success-%p.service
2 years ago
[Service]
Type=oneshot
# Lower CPU and I/O priority.
Nice=19
CPUSchedulingPolicy=batch
IOSchedulingPriority=7
IPAccounting=true
PrivateTmp=true
Environment="HOME=/root"
2 years ago
ExecStart=/opt/kopia-backup-home-etc.sh
2 years ago
```
1 year ago
* `sudo micro /etc/systemd/system/kopia-home-etc.timer`
2 years ago
```kopia-home-etc.timer```
2 years ago
```ini
2 years ago
[Unit]
Description=Run kopia backup
[Timer]
2 years ago
OnCalendar=*-*-* 02:00:00
RandomizedDelaySec=10min
2 years ago
Persistent=true
[Install]
WantedBy=timers.target
```
2 years ago
1 year ago
* `sudo systemctl enable --now kopia-home-etc.timer`
* `systemctl status kopia-home-etc.timer`
* `journalctl -u kopia-home-etc.timer` - see history
1 year ago
### Troubleshooting
To see logs of last Kopia runs done by systemd
* `sudo journalctl -ru kopia-home-etc.service`
* `sudo journalctl -xru kopia-home-etc.service`
1 year ago
1 year ago
![journaclt_output](https://i.imgur.com/46XIFFO.png)
1 year ago
<details>
<summary><h3>Mounting network storage using systemd</h3></summary>
2 years ago
2 years ago
* files are placed in `/etc/systemd/system`
2 years ago
* the name of mount and automount files MUST correspond with the path<br>
2 years ago
replacing `/` with a `-`,
but otherwise it must be the mounting path in the name
* for mounting that does not fail on boot if there are network issues,
2 years ago
and mounts the target only on request - enable `automount` file,
not `mount` file, so:<br>
2 years ago
`sudo systemctl enable mnt-mirror.automount`
2 years ago
2 years ago
`mnt-mirror.mount`
```ini
[Unit]
Description=3TB truenas mirror mount
2 years ago
2 years ago
[Mount]
What=//10.0.19.11/Mirror
Where=/mnt/mirror
Type=cifs
Options=rw,username=kopia,password=aaa,file_mode=0644,dir_mode=0755,uid=1000,gid=1000
2 years ago
2 years ago
[Install]
WantedBy=multi-user.target
```
`mnt-mirror.automount`
```ini
[Unit]
Description=3TB truenas mirror mount
[Automount]
Where=/mnt/mirror
[Install]
WantedBy=multi-user.target
```
2 years ago
1 year ago
</details>
---
---
2 years ago
1 year ago
# Kopia in Windows
2 years ago
1 year ago
![windows_snapshot_history_gui](https://i.imgur.com/MI16Zp1.png)
2 years ago
1 year ago
## KopiaUI in Windows
1 year ago
1 year ago
KopiaUI does not really need a guide. It's simple and just works for normal use.<br>
But since we are here...
* [Download latest release](https://github.com/kopia/kopia/releases)
* Extract it somewhere, lets say `C:\Kopia`
* Run it, click through repo creation
1 year ago
* set global policy
* recommend setting compression, `zstd-fastest`
1 year ago
* set schedule
1 year ago
* retention rules
* select what to backup
1 year ago
* Right click tray icon and set to "Launch at startup"
* done
1 year ago
1 year ago
It will now start on users login, and executes at set schedule.
While KopiaUI seems like the way to go because of the simple deployment and
use, it has a drawback. The scheduled backups works only when user is logged in.
Which for many deployments feel like it introduces unnecessary uncertainty,
or is not even viable when servers often run with no user logged in.
1 year ago
## Kopia Server in Windows
1 year ago
My go-to for windows use because it offers gui for easier managment and
the reliability of always running in the background as a service.
This deployment does not make use of the main Kopia Server feature,
to be a repository for other machines running Kopiam, just local deployment.
Few edits of `kopia_server_start.cmd` can make it happen though.
1 year ago
1 year ago
* [Download this repo](https://github.com/DoTheEvo/selfhosted-apps-docker/archive/refs/heads/master.zip),
1 year ago
delete everything except `kopia_backup/kopia_server_deploy_service_win` folder.
1 year ago
* Run `DEPLOY.cmd` as admin, it will:
1 year ago
* Removes powershell scripts restriction.
1 year ago
* Creates folder `C:\Kopia` and copies files there.
1 year ago
* Uses [shawl](https://github.com/mtkennerly/shawl) to create Kopia service.
1 year ago
* Places `kopia.url` on the current user's desktop.
* One should check content of `C:\Kopia\kopia_server_start.cmd`<br>
1 year ago
that's where credentials are set, default: `admin // aaa`
1 year ago
* Visit in browser `localhost:51515`
* Setup new repo through webgui.
1 year ago
* set global policy
* recommend setting compression, `zstd-fastest`
* set schedule
* retention rules
* Select what to backup.
1 year ago
1 year ago
Kopia should now run on boot and be easy to manage through web GUI.<br>
1 year ago
Be it creating backup jobs, mounting old snapshots to restore files,
or just looking around if all works as it should.
1 year ago
1 year ago
All relevant files are in `C:\Kopia`, from binaries, `repository.config`, to logs.
1 year ago
1 year ago
Before shawl, task scheduler was used.<br>
This [matushorvath/Kopia as Windows Service](https://gist.github.com/matushorvath/dd7148c201ceae03ddebc1b4bbef4d20)
guide helped move beyond that. It contains more info if one would want to
actually run as server repository for other machines.<br>
Also use of [nssm](https://nssm.cc/) is popular.
1 year ago
1 year ago
## Kopia cli in Windows
1 year ago
1 year ago
![windows_scoop_install_kopia](https://i.imgur.com/UPZFImh.png)
1 year ago
6 months ago
At the moment **cli is the only way to use VSS snapshots**.
1 year ago
All relevant files are in `C:\Kopia`, from binaries, `repository.config`, to logs.
A scheduled task is imported that executes a powershell script
1 year ago
`C:\Kopia\kopia_backup_scipt.ps1` at 21:19.
1 year ago
The script connects to a set repo and backup set targets.
1 year ago
1 year ago
This approach is bit more hands on than having a gui, but for daily use one
can easily get by with the commands: `kopia snap list -all` and `kopia mount all K:`<br>
6 months ago
Note that if mount command is not working, try executing it in non admin terminal. Weird
windows thing. Or you need to enable/install `WebClient` service.
1 year ago
1 year ago
* [Download this repo](https://github.com/DoTheEvo/selfhosted-apps-docker/archive/refs/heads/master.zip),
1 year ago
delete everything except `kopia_cli_deploy_win` folder.
1 year ago
* Run `DEPLOY.cmd`
1 year ago
* Removes powershell scripts restriction.
* Creates folder `C:\Kopia` and kopies there<br>
6 months ago
`kopia.exe`, `kopia_backup_scipt.ps1`.
1 year ago
* Adds `C:\Kopia` to the system env variable PATH.
6 months ago
* imports a scheduled task.
1 year ago
* Read `kopia_backup_scipt.ps1` and follow the instructions there.<br>
1 year ago
Which should be to just to create repo before running the script.
1 year ago
* edit the scheduled task to the prefered time, default is daily at 21:19
* run scheduled task manually
* check if it worked
6 months ago
* `kopia repo status`
1 year ago
* `kopia snap list --all`
6 months ago
The script is set to save logs in to `C:\Kopia\Kopia_Logs\`.
1 year ago
### VSS snapshots
1 year ago
Volume Shadow Copy Service freezes the state of the disk in time and makes
1 year ago
this snapshot available to use.
This is what allows backup of open files that are in use.<br>
1 year ago
[Here's some youtube video on VSS.](https://youtu.be/RUwocwP2ilI?t=85)
1 year ago
1 year ago
To make use of this feature edit `kopia_backup_scipt.ps1` changing
`$USE_SHADOW_COPY = $false` to `$USE_SHADOW_COPY = $true`
1 year ago
6 months ago
To check if it's set: `kopia policy show --global`,
should see there: *OS-level snapshot support: Volume Shadow Copy: when-available*
1 year ago
6 months ago
Can also check log files, any named snapshot-creat in cli folder, and see
entries about *volume shadow copy*. Or also one might execute command
`vssadmin list shadows` to see current VSS snapshots and then execute
it again during the backup.
1 year ago
### Kopia install using scoop, machine-wide
Just something to have note of, if decided to switch to heavy scoop use.
* open terminal as admin
* `Set-ExecutionPolicy Bypass`
* `iex "& {$(irm get.scoop.sh)} -RunAsAdmin"`
* `scoop install sudo --global`
* `sudo scoop install kopia --global`
---
---
1 year ago
1 year ago
# Kopia in Docker
2 years ago
1 year ago
![kopia_docker_logs](https://i.imgur.com/w57KHvp.png)
2 years ago
1 year ago
### Files and directory structure
1 year ago
1 year ago
```
/mnt/
└── mirror/
/home/
└── ~/
└── docker/
└── kopia/
├── kopia_config/
├── kopia_cache/
├── kopia_logs/
├── some_data/
├── kopia_repository/
├── kopia_tmp/
├── .env
└── docker-compose.yml
```
* `/mnt/mirror/...` - a mounted network storage share
* `kopia_config/` - repository.config and ui-preferences.json
* `kopia_cache/` - cache
* `kopia_logs/` - logs
* `some_data/` - some data to be backed up
* `kopia_repository/` - repository location
* `kopia_tmp/` - temp used for snapshots
* `.env` - a file containing environment variables for docker compose
* `docker-compose.yml` - a docker compose file, telling docker how to run the containers
### docker-compose
The data to be backed up are mounted in read only mode.<br>
1 year ago
To be able to mount snapshots, extra privileges are required and fuse access.
1 year ago
```
services:
kopia:
image: kopia/kopia:latest
container_name: kopia
hostname: kopia
restart: unless-stopped
env_file: .env
privileged: true
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/fuse:/dev/fuse:rwm
ports:
- "51515:51515"
command:
- server
- start
- --tls-generate-cert
- --disable-csrf-token-checks
- --address=0.0.0.0:51515
- --server-username=$USERNAME
- --server-password=$KOPIA_PASSWORD
volumes:
# Mount local folders needed by kopia
- ./kopia_config:/app/config
- ./kopia_cache:/app/cache
- ./kopia_logs:/app/logs
# Mount local folders to snapshot
- ./some_data:/data:ro
# Mount repository location
1 year ago
- /mnt/mirror/kopia_repository:/repository
1 year ago
# Mount path for browsing mounted snaphots
- ./kopia_tmp:/tmp:shared
networks:
default:
name: $DOCKER_MY_NETWORK
external: true
```
`.env`
```bash
DOCKER_MY_NETWORK=caddy_net
TZ=Europe/Bratislava
# KOPIA
USERNAME=admin
KOPIA_PASSWORD=aaa
```
**All containers must be on the same network**.</br>
Which is named in the `.env` file.</br>
If one does not exist yet: `docker network create caddy_net`
### Reverse proxy
1 year ago
1 year ago
Caddy is used, details
[here](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/caddy_v2).</br>
To function as a repository server, Kopia must be setup with https,
which is achieved by using `--tls-generate-cert` flag and removal
of `--insecure` flag.
So now Kopia sits behind Caddy, but caddy needs to be told the traffic is
https and to ignore that the certificate is not valid.
`Caddyfile`
```
kopia.{$MY_DOMAIN} {
reverse_proxy kopia:51515 {
transport http {
tls
tls_insecure_skip_verify
}
}
}
```
1 year ago
1 year ago
### First run
![kopia_repo_setup_first_run](https://i.imgur.com/mnn66Hj.png)
* visit kopia.example.com
* create new repository as `Local Directory or NAS`, set path to `/repository`,
set password
Now this container can do backups of mounted stuff in to other mounted places
1 year ago
or cloud, while managed through webgui.
1 year ago
To also make it function as a repository server a user account needs to be added.
The users are stored in the repo.
* exec in to the container<br>
`docker container exec -it kopia /bin/bash`
* add user@machine and set the password<br>
`kopia server user add user1@machine1`
1 year ago
* on another machine test with koppiaUI, on the first run:<br>
1 year ago
* Pick `Kopia Repository Server`
* Server address: `https://kopia.example.com:443`
* *Trusted server certificate fingerprint (SHA256)*<br>
can be left empty, or if you put something there, it gives you error
where it tells you fingerprints of the server to pick from.
* In advanced option one can override user@machine with the one set
when exec-ed in to the docker container.
Or exec again there and add another one.
### Troubleshooting
1 year ago
* check kopia docker container logs, I like using [ctop](https://github.com/bcicen/ctop)
1 year ago
to see container runtime logs, or the ones mounted in logs directory
* DNS issue, check `nslookup kopia.example.com` if on the machine
is getting correct iP
1 year ago
* Make sure you use port 443 in server address.
1 year ago
# Kopia backup to Cloud
1 year ago
## Backblaze B2
1 year ago
![backblaze_repo_pic](https://i.imgur.com/Yhi2BpM.png)
1 year ago
[Cheapest](https://www.backblaze.com/cloud-storage/pricing)
cloud storage I believe.<br>
It cost $6 annualy to store 100GB. Any download is charged extra,
that 100GB would cost $1.
1 year ago
[Official Kopia documentation](https://kopia.io/docs/repositories/#backblaze-b2)
1 year ago
* [Register](https://www.backblaze.com/sign-up/s3).
1 year ago
* Create a new bucket for kopia repository.
1 year ago
* note **the bucket name**
1 year ago
* Add a new application key with the access enabled to the new bucket.<br>
After filling the info the site one time shows `applicationKey`
1 year ago
* note **the keyID**
* note **the applicationKey**
1 year ago
* in Kopia add new repository `Backblaze b2` fill in the required information:
Bucket Name, KeyID and the Key.
* Set global policy.
* Recommend setting compression, `zstd-fastest`.
* Set schedule.
* Retention rules.
* Pick what to backup.
* Done.
1 year ago
In few minutes one can have reliable encrypted cloud backup,
that deduplicates and compresses the data.<br>
1 year ago
1 year ago
**Save the repo password, plus all the info used!**
1 year ago
1 year ago
Might be worth to check bucket settings, [Lifecycle](https://www.backblaze.com/docs/cloud-storage-lifecycle-rules).
I think it should be set to `Keep only the last version of the file`
1 year ago
To restore files go in to Snapshots > Time > Start time > Mount as Local Filesystem.<br>
The snapshot will be mounted as `Y:`
1 year ago
### cli
For cli just follow [the official documentation.](https://kopia.io/docs/repositories/#backblaze-b2)
The example of commands:<br>
* `kopia repository create b2 --bucket=rakanishu --key-id=001496285081a7e0000000003 --key=K0016L8FAMRp/F+6ckbXIYpP0UgTky0 --password aaa`
6 months ago
* `kopia repository connect b2 --bucket=rakanishu --key-id=001496285081a7e0000000003 --key=K0016L8FAMRp/F+6ckbXIYpP0UgTky0 --password aaa`
1 year ago
1 year ago
The backup script contains example commands, just commented out.
1 year ago
1 year ago
---
---