b7d18ab0af7b68ccc74752b9dd95e27280ded1b3
Dockerized duplicity backup tool.
Features of this Docker image:
- Small: Built using alpine.
- Simple: Most common cases are explained below and require minimal setup.
- Secure: Runs as any user (so pic any random UID or run as your user which avoids to run as
rootwhich isn't the safest).
Usage
Backup to Google Cloud Storage example
Google Cloud Storage nearline costs about $0.01/GB/Month.
Set up:
- Sign up, create an empty project, enable billing, and create a bucket
- Under "Storage" section > "Interoperability" tab > click "Enable interoperable access" and then "Create a new key" button and note both Access Key and Secret. Also note your Project Number (aka project ID, it's a number like 1233457890).
- Run gcloud's
gsutil config -ato generate the~/.botoconfiguration file and give it all these info (alternatively you should be able to set environment variableGS_ACCESS_KEY_IDandGS_SECRET_ACCESS_KEYhowever in my tries I didn't see where to set your project ID).
You should now have a ~/.boto looking like:
[Credentials]
gs_access_key_id = MYGOOGLEACCESSKEY
gs_secret_access_key = SomeVeryLongAccessKeyXXXXXXXX
[GSUtil]
default_project_id = 1233457890
Now you're ready to perform a backup:
$ docker run --rm --user $UID \
-e PASSPHRASE=P4ssw0rd \
-v /:/data:ro \
-v ~/.boto:/home/duplicity/.boto:ro \
wernight/duplicity \
duplicity /data gs://my-bucket-name/some_dir
To restore, you'll need:
- Keep keys or regenerate them to access your Google Cloud Storage.
- The
PASSPHRASEyou've used.
See also the note on Google Cloud Storage.
Backup to Google Drive example
Google Drive offers 15GB for free.
Set up:
-
Follow notes on Pydrive Backend to generate a P12 credential file (call it
pydriveprivatekey.p12) and note also the associated service account email generated (e.g.duplicity@developer.gserviceaccount.com). -
Convert P12 to PEM:
$ docker run --rm -i --user $UID \ -v $PWD/pydriveprivatekey.p12:/pydriveprivatekey.p12:ro \ wernight/duplicity \ openssl pkcs12 -in /pydriveprivatekey.p12 -nodes -nocerts >pydriveprivatekey.pem Enter Import Password: notasecret
Now you're ready to perform a backup:
$ docker run --rm --user $UID \
-e PASSPHRASE=P4ssw0rd \
-e GOOGLE_DRIVE_ACCOUNT_KEY=$(cat pydriveprivatekey.pem) \
-v /:/data:ro \
wernight/duplicity \
duplicity /data pydrive://duplicity@developer.gserviceaccount.com/some_dir
To restore, you'll need:
- Regenerate a PEM file (or keep it somewhere).
- The
PASSPHRASEyou've used.
Backup via rsync example
TODO
More help
See also duplicity man page and you can also do:
$ docker run --rm wernight/duplicity duplicity --help
Feedbacks
Report issues/questions/feature requests on GitHub Issues.
Description
Languages
Dockerfile
92.5%
Shell
7.5%