backrest (restic repo GUI mit Autobackups + Luckycloud S3-Storage oder Hetzner StorageBox)
https://github.com/garethgeorge/backrest
version: "3.2"
services:
backrest:
image: garethgeorge/backrest
container_name: backrest
hostname: backrest
volumes:
- data:/data
- config:/config
- cache:/cache
- /var/lib/docker/volumes:/docker-var-lib
- /data/compose:/docker-data-compose
#- /MY-BACKUP-DATA:/userdata # [optional] mount local paths to backup here.
#- /MY-REPOS:/repos # [optional] mount repos if using local storage, not necessary for remotes e.g. B2, S3, etc.
environment:
- BACKREST_DATA=/data # path for backrest data. restic binary and the database are placed here.
- BACKREST_CONFIG=/config/config.json # path for the backrest config file.
- XDG_CACHE_HOME=/cache # path for the restic cache which greatly improves performance.
- TZ=Europe/Berlin # set the timezone for the container, used as the timezone for cron jobs.
restart: unless-stopped
ports:
- 9898:9898
volumes:
data:
config:
cache:
Konfiguration mit Luckycloud
In Luckyclouc einen S3 Speicher anlegen:
auf das grüne Schloss drücken, um die Zugangsdaten AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY zu erhalten:
die Zugangsdaten bei backrest als neues repo anlegen:
die repository url ist dann sowas wie
s3:https://<luckycloudserver>.luckycloud.de/<bucketname>
und ist zu finden im luckycloud portal:
als Plan dann zb folgendes:
oder /docker-var-lib als Path wenn man das Beispiel aus der docker-compose.yaml von oben nimmt
Konfiguration mit Hetzner Storage Box (SFTP)
- Unter Hetzner Robot SSH aktivieren:
- Auf dem Server, auf dem Docker mit backrest als Container läuft, einen SSH-Key erzeugen, wenn noch nicht geschehen:
ssh-keygen - SSH Public Key an Storage Box SSH Port 23 übertragen (kann auch id_ed25519.pub heißen oä, wenn es kein rsa ist):
cat ~/.ssh/id_rsa.pub | ssh -p23 uXXXXX@uXXXXX.your-storagebox.de install-ssh-key - testweise nochmal mit der Storage Box über ssh verbinden, sollte nun ohne Bestätigung klappen:
ssh -p 23 uXXXXX@uXXXXX.your-storagebox.deoder mit Angabe zum Private-Key
ssh -i /root/.ssh/id_mein-admin_ed25519 -p 23 uXXXXX@uXXXXX.your-storagebox.de /home/<user>/.ssh/known_hostsund/home/<user>/.ssh/id_ed25519(SSH Private Key) vom Docker Server in das Config Volume vom Backrest Container kopieren, sodass backrest Zugriff auf den PrivateKey und die known_hosts Datei hat:
oder als Bsp auf hz-02:
- Neues Repository in backrest hinzufügen:
Repository URL bei SFTP hinzufügen:
sftp:user@host:/path/to/repo also zb sftp:u12345@u12345.your-storagebox.de:ResticBackup/DockerServerDas Passwort für das Restic Backup kann man einfach mit klick auf Generate generieren lassen *udontsay.gif*
Flags (sftp.args) hinzufügen:-o sftp.args="-i /config/ssh_keys/id_ed25519 -P 23 -o UserKnownHostsFile=/config/ssh_keys/known_hosts"
Falls es zu Problemen kommt, kann die SSH config angepasst werden, sodass man die SSH Flags weglassen kann:
nano /root/.ssh/config
Host storagebox
Hostname u12345.your-storagebox.de
Port 23
User u12345
IdentityFile /root/.ssh/id_admin_ed25519
danach sollte
ssh storagebox
funktionieren und damit auch bei Repository URI:
funktionierensftp:storagebox:MEIN-PROJEKT/restic-backup











