Backup Ubuntu to Docker
Setting up a server for backing up your ubuntu home, e.g. from your notebook, is a task, done in just ten minutes. All you need is a publicly available server running docker.
- either running normal local docker
- or running docker swarm, kubernetes, openshift, …
- with persistent volumes
- enough free disk space for your backups
- for authentication: OpenLDAP
- alternatively you can use ssh key exchange
Just run an ssh server as instance of mwaeckerlin/ssh, that connects to your instance of openldap in mwaeckerlin/openldap. Install openlap according to Setup OpenLDAP Server in Docker. You may use a different port instead of
22 for ssh, if port
22 is already in use. In this example, I use port
222. Remember to pass the port from the internet through your router and firewall. My persistent volumes are built with lizardfs and mounted to
/srv/voliumes. In LAM create a system user for bind, e.g. named
cn=backup-bind,ou=system,ou=people and set a secret password, e.g.
Plain Old Docker
Just connect to your ldap instance and pass bind login and relative user and group distinguish names. The base distinguish name is built from the ldap server’s
DOMAIN environment variable:
docker run -d --restart unless-stopped --name backup \ -p 222:22 \ -v /srv/volumes/backup:/home \ -e 'LDAPBASEUSERDN=ou=person,ou=people' \ -e 'LDAPBASEGROUPDN=ou=group' \ -e 'LDAPBINDDN=cn=backup-bind,ou=system,ou=people' \ -e 'LDAPBINDPW=yourSecretPassword' \ mwaeckerlin/ssh
Use a yaml file similar to this:
version: '3.3' services: backup: image: mwaeckerlin/ssh ports: - 222:22 volumes: - type: bind source: /srv/volumes/backup target: /home environment: - 'LDAPURI=ldap://your-local-ldap-server' - 'LDAPBASE=dc=your,dc=domain,dc=com' - 'LDAPBASEUSERDN=ou=person,ou=people' - 'LDAPBASEGROUPDN=ou=group' - 'LDAPBINDDN=cn=backup-bind,ou=system,ou=people' - 'LDAPBINDPW=yourSecretPassword'
On client side, first create a secret ssh key, then configure passwordless key login with your server:
ssh-keygen -b 4096 ssh-copy-id -p 222 your.domain.com ssh -p 222 your.domain.com exit
To backup, I use déja-dup, the standard backup program of the ubuntu distribution. So just install it:
sudo apt-get install deja-dup deja-dup-backend-gvfs
Then from the starter run the program
Configure your folders to save and to ignore, setup your desired scheduling, then configure the storage location, chose ssh and set your parameters:
Switch it on and stat the initial backup from the overview.