Skip to main content

backrest (restic repo GUI mit Autobackups + Luckycloud S3-Storage oder Hetzner StorageBox)

image.png

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:

image.png

auf das grüne Schloss drücken, um die Zugangsdaten AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY zu erhalten:

image.png

die Zugangsdaten bei backrest als neues repo anlegen:

image.png

die repository url ist dann sowas wie

s3:https://<luckycloudserver>.luckycloud.de/<bucketname>

und ist zu finden im luckycloud portal:

image.png

als Plan dann zb folgendes:

image.png

oder /docker-var-lib als Path wenn man das Beispiel aus der docker-compose.yaml von oben nimmt

Konfiguration mit Hetzner Storage Box (SFTP)

  1. Unter Hetzner Robot SSH aktivieren:

    image.png



  2. Auf dem Server, auf dem Docker mit backrest als Container läuft, einen SSH-Key erzeugen, wenn noch nicht geschehen:
    ssh-keygen

     

  3. 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

  4. testweise nochmal mit der Storage Box über ssh verbinden, sollte nun ohne Bestätigung klappen:
    ssh -p 23 uXXXXX@uXXXXX.your-storagebox.de
  5. /home/<user>/.ssh/known_hosts und /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:

    image.png


  6. Neues Repository in backrest hinzufügen:

    image.png

    image.png

    Repository URL bei SFTP hinzufügen:
    sftp:user@host:/path/to/repo
    also zb 
    sftp:u12345@u12345.your-storagebox.de:ResticBackup/DockerServer

    Das 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"