Table of Contents
Kopia is a personal cloud backup software optimized for single computers and home/office LANs. It supports secure backup and restore using consumer-owned storage. When using Kopia you're in complete control of storage - data can be backed up to a cloud storage provider or among computers under your control.
Features
- fast incremental backups
- decentralized content de-duplication (each piece of content is stored only once, saving space and upload bandwidth)
- strong content encryption
- ability to mount snapshots as local filesystems
- flexible expiration and cleanup policies
Operating system support includes Windows, macOS and Linux on x86, x64 and ARM. Kopia is distributed as single executable, so setup and and maintenance overhead is minimal.
Installation
Installation From Source
To build Kopia from the source code you need the latest version of Go and run the following commands:
go get github.com/kopia/kopia
This will download and compile Kopia and place the binary in $HOME/go/bin/kopia (the path may be different if you have changed GOPATH). For convenience it's best to place kopia executable in a directory that's part of the system PATH.
Binary Releases
If you prefer, you can download a pre-built binary from the Releases.
Setting Up
We will need to set up a Vault and Repository for storing all the data. Either cloud or local storage may be used. Click on one of the following links for information about provisioning storage using various providers.
- Google Cloud Storage
- Filesystem - local or remote filesystem mounted locally
- Amazon S3 or another service implementing S3 API (e.g. minio.io)
- WebDAV - any service implementing WebDAV API
Backing Up
Once a Repository has been connected, backing up any directory is as simple as running kopia snapshot create with a directory or file name. At the end of a backup, Kopia will print Object ID that can be used to quickly access the snapshot:
$ kopia snapshot create src/github.com/kopia/kopia
D73db96a539ddc9054633fae40a972e42
Kopia snapshots are incremental, so the next snapshots of the same directory will be very quick and will upload almost no data to the cloud. Because the data has not changed, the object ID and backup keys will be identical:
$ kopia snapshot create src/github.com/kopia/kopia
D73db96a539ddc9054633fae40a972e42
Snapshot History
A history of any directory or file that has been backed up can be retrieved by kopia snapshot list <path>:
$ kopia snapshot list src/github.com/kopia/kopia
jarek@macbook-pro:/Users/jarek/Projects/Kopia/src/github.com/kopia/kopia
2018-03-14 18:17:42 PDT Dea1c95667c41f90d3969265cc454c14a 82.7 MB
2018-03-19 13:42:59 PDT D85324433e55a41ba24156f999c1f1d54 102.6 MB (+19.9 MB)
For each snapshot, a timestamp, Object ID plus total and incremental snapshot size are displayed. Any two backups with the same key object ID are exactly identical.