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 14:23]
thosch [Duplicati] GitHub-Repo von Duplicati ergänzt
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 12: Zeile 12:
 ^ Projekt | [[https://www.duplicati.com|Duplicati]] | ^ Projekt | [[https://www.duplicati.com|Duplicati]] |
 ^ GitHub | [[github>duplicati/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 71: 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 84: Zeile 80:
 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. 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. |
Zeile 96: Zeile 92:
 Der Container wird wie folgt in der Datei ''docker-compose.yml'' konfiguriert: Der Container wird wie folgt in der Datei ''docker-compose.yml'' konfiguriert:
  
-<file plain docker-compose.yml>+<file docker-compose.yml>
 version: "2.1" version: "2.1"
 services: services:
Zeile 118: Zeile 114:
 Details siehe Abschnitte [[#parameter|Parameter]] und [[#volumes|Volumes]]. Details siehe Abschnitte [[#parameter|Parameter]] und [[#volumes|Volumes]].
  
 +===== Integration in Træfik =====
 +
 +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**:
  
 +  * [[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.1596716636.txt.gz · Zuletzt geändert: 06.08.2020 14:23 von thosch