Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:docker:apps:duplicati

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
thoschwiki:docker:apps:duplicati [06.08.2020 11:26]
thosch Markup-F**kup bereinigt
thoschwiki:docker:apps:duplicati [10.10.2020 20:30] (aktuell)
thosch ↷ Links angepasst weil Seiten im Wiki verschoben wurden
Zeile 1: Zeile 1:
-====== Duplicati ====== +====== Duplicati (Docker) ======
- +
-//Duplicati// ist eine Software, die verschlüsselte, komprimierte, inkrementelle Datensicherungen (Backups) erstellt und diese auf Netzwerklaufwerke, integrierte oder externe USB-Festplatten oder Onlinespeicher überträgt. (aus [[wpde>Duplicati]])+
  
 +{{page>thoschwiki:bricks:duplicati#beschreibung&noheader}}
  
 +Auf jeden Fall nichts, was ich "direkt" auf meinen //Linux//- oder //macOS//-Rechner installieren möchte. Also so oder so ein Fall für eine Virtualisiserung.
  
 ^ **Image** ^^ ^ **Image** ^^
Zeile 11: Zeile 11:
 ^ **Software** ^^ ^ **Software** ^^
 ^ Projekt | [[https://www.duplicati.com|Duplicati]] | ^ Projekt | [[https://www.duplicati.com|Duplicati]] |
 +^ GitHub | [[github>duplicati/duplicati]] |
 +^ Anmerkung ^^
 +| Es gibt bei //DockerHub// ein Repository [[dockerhub>duplicati]] mit dem Image [[dockerhub>duplicati/duplicati]], das durch die Namensgebung den Eindruck erwecken könnte. dass es vom //Duplicati//-Projekt gepflegt wird. Jedoch finde ich keinerlei Bezug zwischen dem Repository und dem Projekt und es gibt auch keine andere Möglichkeit den Maintainer zu identifizieren oder zu kontaktieren. Weiterhin ist das Image nur sehr lückenhaft dokumentiert. ||
  
-Duplikate zeichnet sich durch die folgenden Punkte aus: + 
- +
-  * Bedienung über ein Web-Frontend, d.h. von außerhalb des Containers per Browser gut bedienbar +
-  * umfassende Unterstützung von (freien) Netzwerkprotokollen und Cloud-Diensten für die Erstellung von Offside-Backups +
-  * Verschlüsselung der Sicherungsdateien, d.h. diese können auch unsicheren Servern gespeichert werden +
- +
-//Duplicati// ist mit [[wpde>.NET]] entwickelt und läuft unter unixoiden Betriebssystemen wie //Linux// oder //nacOS// mit [[wpde>Mono_(Software)|Mono]]. Das //Windows//-Erbe ist beispielsweise beim Namen des Commandline-Tools ''Duplicati.CommandLine.exe'' deutlich erkennbar. Auf jeden Fall nichts, was ich "direkt" auf meinen //Linux//- oder //macOS//-Rechner installieren möchte. Also so oder so ein Fall für eine Virtualisiserung. +
 ===== docker run ===== ===== docker run =====
  
Zeile 50: Zeile 47:
 | -e CLI_ARGS= | Vorgabe von Kommendozeilenparametern, die an //Duplicati// übergeben werden (optional). Die Zeile kann in den meisten Fällen weggelassen werden. | | -e CLI_ARGS= | Vorgabe von Kommendozeilenparametern, die an //Duplicati// übergeben werden (optional). Die Zeile kann in den meisten Fällen weggelassen werden. |
  
-===== Volumes =====+==== Volumes ====
  
 In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben: In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben:
Zeile 63: Zeile 60:
 | /source | Das Verzeichnis **auf dem Host**, in dem die Daten **außerhalb** des //Duplicati//-Containers liegen, von denen die Backups erstellt werden sollen.  \\ Hier bietet sich ein Verzeichnis an, unterhalb dessen auf dem Docker-Host zentral die Daten der einzelnen Docker-Container abgelegt sind. | | /source | Das Verzeichnis **auf dem Host**, in dem die Daten **außerhalb** des //Duplicati//-Containers liegen, von denen die Backups erstellt werden sollen.  \\ Hier bietet sich ein Verzeichnis an, unterhalb dessen auf dem Docker-Host zentral die Daten der einzelnen Docker-Container abgelegt sind. |
  
-==== Auswahl Sicherungsziel bei lokalen Backups ====+=== Auswahl Sicherungsziel bei lokalen Backups ===
  
 Dieser Abschnitt ist nicht relevant, wenn //ausschließlich// Online-Backups (d.h. Backups werden per Netzwerkverbindung auf einem anderen Server oder in der Cloud abgelegt) erstellt werden. Dieser Abschnitt ist nicht relevant, wenn //ausschließlich// Online-Backups (d.h. Backups werden per Netzwerkverbindung auf einem anderen Server oder in der Cloud abgelegt) erstellt werden.
Zeile 70: Zeile 67:
  
 <note important> <note important>
-Im Verzeichnisbaum wird das Verzeichnis ''/backups'' auch dann angezeigt, wenn das Volume **nicht** konfiguriert ist.  \\ In diesem Fall würde das dort abgelegt Backup **innerhalb** des Containers abgelegt werden.+Im Verzeichnisbaum wird das Verzeichnis ''/backups'' auch dann angezeigt, wenn das Volume **nicht** konfiguriert ist.\\ In diesem Fall würde das dort abgelegte Backup **innerhalb** des Containers abgelegt und damit **nicht** dauerhaft gespeichert werden.
 </note> </note>
  
-{{ :docker:apps:duplicati_fileselectiontarget.png?400 |}} +{{ thoschwiki:docker:apps:duplicati_fileselectiontarget.png?400 |}} 
  
 | grün | Die //lokalen// Backups sind unterhalb dieses Verzeichnisses abzulegen. | | grün | Die //lokalen// Backups sind unterhalb dieses Verzeichnisses abzulegen. |
Zeile 79: Zeile 76:
 | rot | Diese Verzeichnisse liegen **innerhalb** des Containers und sind deshalb als Sicherungsziel **nicht** geeignet. | | rot | Diese Verzeichnisse liegen **innerhalb** des Containers und sind deshalb als Sicherungsziel **nicht** geeignet. |
  
-==== Auswahl der Quelldateien ====+=== Auswahl der Quelldateien ===
  
-Das Ziel eines dockerized //Duplicati// ist nicht die Sicherung von Dateien aus dem Container, sondern die Sicherung der außerhalb der Container auf dem Host abgelegten Volumes. Der Ablageort dieser Volume ist über das Volume ''/sources'' in den //Duplicati//-Container einzubinden.+Das Ziel eines dockerized //Duplicati// ist nicht die Sicherung von Dateien aus dem //Duplicati//-Container, sondern die Sicherung der außerhalb der Container auf dem Host abgelegten Volumes. Der Ablageort dieser Volumes ist über das Volume ''/sources'' in den //Duplicati//-Container einzubinden.
  
-{{ :docker:apps:duplicati_fileselectionsource.png?400 |}}+{{ thoschwiki:docker:apps:duplicati_fileselectionsource.png?400 |}}
  
-| grün | In diesem Verzeichnis des Containers sind die über das Volume ''/sources'' eingebundenen, außerhalb des Container liegenden Verzeichnisse erreichbar und können für die backups ausgewählt werden. |+| grün | In diesem Verzeichnis des Containers sind die über das Volume ''/sources'' eingebundenen, außerhalb des Container liegenden Verzeichnisse erreichbar und können für die Backups ausgewählt werden. |
 | blau | Die ausgewählt Verzeichnisse und Dateien werden hier zusammengefasst angezeigt. | | blau | Die ausgewählt Verzeichnisse und Dateien werden hier zusammengefasst angezeigt. |
 | orange | Diese Verzeichnisse liegen bei einer korrekten Konfiguration außerhalb des Containers.  \\ Eine Sicherung des Verzeichnisses ''/backups'' ist nicht sinnvoll, weil es die lokalen Backups enthält.  \\ Die Konfiguration im Verzeichnis ''/config'' sollte über das Verzeichnis ''/sources'' erfolgen. | | orange | Diese Verzeichnisse liegen bei einer korrekten Konfiguration außerhalb des Containers.  \\ Eine Sicherung des Verzeichnisses ''/backups'' ist nicht sinnvoll, weil es die lokalen Backups enthält.  \\ Die Konfiguration im Verzeichnis ''/config'' sollte über das Verzeichnis ''/sources'' erfolgen. |
Zeile 93: Zeile 90:
 ===== docker-compose  ===== ===== docker-compose  =====
  
-Der Container wird wie folgt in der ''docker-compose.yml'' konfiguriert:+Der Container wird wie folgt in der Datei ''docker-compose.yml'' konfiguriert:
  
-<code>  </code>+<file - docker-compose.yml> 
 +version: "2.1" 
 +services: 
 +  duplicati: 
 +    image: linuxserver/duplicati 
 +    container_name: duplicati 
 +    environment: 
 +      - PUID=2000 
 +      - PGID=2000 
 +      - TZ=Europe/Berlin 
 +#      - CLI_ARGS= #optional 
 +    volumes: 
 +      - /path/to/appdata/config:/config 
 +      - /path/to/backups:/backups 
 +      - /path/to/source:/source 
 +    ports: 
 +      - 8200:8200 
 +    restart: unless-stopped 
 +</file> 
 + 
 +Details siehe Abschnitte [[#parameter|Parameter]] und [[#volumes|Volumes]].
  
 ===== Integration in Træfik ===== ===== Integration in Træfik =====
  
-Der Container kann mit den folgenden Eintragungen in der ''docker-compose.yml'' in Træfik integriert werden:+Die Integration des Containers in das //Træfik//-Setup gestaltete sich unerwartet schwierig. Im Nachhinein stellte sich heraus, dass für die Cloud-Instanz der Port 8200 nicht geöffnet war. Dies dürfte der Grund für die Probleme gewesen sein. 
 + 
 +Die derzeitige Umsetzung setzt auf ein Routing durch _Træfik_ und funktioniert ohne den Port 8200. 
 + 
 +Es sind hierfür die folgenden Ergänzungen in der ''docker-compose.yml'' und der ''static.yml'': 
 + 
 +''docker-compose.yml'': 
 + 
 +<code> 
 +  duplicati: 
 +    image: linuxserver/duplicati 
 +    container_name: duplicati 
 +    environment: 
 +      - PUID=2000 
 +      - PGID=2000 
 +      - TZ=Europe/Berlin 
 +    volumes: 
 +      - /path/to/DockerData/duplicati/config:/config 
 +      - /path/to/DockerData/:/source 
 +#    ports:          # Inbound traafik via Traefik 
 +#      - 8200:8200   # Port 8200 not ued 
 +    restart: unless-stopped 
 +    labels: 
 +     - traefik.http.routers.duplicati.rule=Host(`subdomain.example.com`) 
 +     - "traefik.http.routers.duplicati.tls.certResolver=default" 
 +     - "traefik.http.routers.duplicati.tls=true" 
 +</code> 
 + 
 +''static.yml'': 
 + 
 +<code> 
 +  web-duplicati: 
 +    address: ":8200" 
 +</code> 
 + 
 +<note warning> 
 +Bei dieser Implementation ist es für den Zugriff **nicht notwendig** den Port 8200 in der URL vorzugeben. Die //Duplicati//-Instanz liegt damit auf dem Web-Root und damit der Landingpage der jeweiligen (Sub)Domain. Es sollte daher eine Subdomain benutzt werden
 + 
 +Da //Duplicati// zur Sicherung nur ein Passwort (keine Vorgabe eines Usernamens) verlangt, sollte ein sehr starkes Passwort verwendet werden. 
 +</note> 
 + 
 +**Weitere Ansätze zur Integration**:
  
-<code>  </code>+  * [[https://gitlab.c3sl.ufpr.br/mch15/htpc/blob/master/docker-compose.yaml#L330|Intergration in Træfik unter Verwendung des Ports 8200]] 
 +  * Zugriff durch ein VPN
thoschwiki/docker/apps/duplicati.1596706011.txt.gz · Zuletzt geändert: 06.08.2020 11:26 von thosch