Cryptpad Funktionen

Migration von cryptpad Daten in eine neue Instanz

Cryptpad ist eine durchgängige verschlüsselte und quelloffene Collaboration-Suite. Das Projekt cryptpad ist inzwischen fast täglich im Einsatz und ein notwendiges Tool geworden.

Eine kleine Übersicht der Funktionen:

  • Tabellen
  • Kanban
  • Formulare
  • Whiteboard
  • Markdown-Folien
  • Code Bearbeitung
  • Chatfunktion
  • Kommentarfunktion
  • Komplette Verschlüsselung
  • und noch vieles mehr

In diesem Artikel soll es nicht um den Funktionsumfang gehen, sondern um die Migration von existierenden Daten im Docker Container.

Die Herausforderung bei Umzug einer Instanz ist, dass bestehende Daten nicht einfach exportiert und dann wieder importiert werden können. Es gibt im Backend diese Funktion, die sich nur auf die bestehenden Dokumente in einer Benutzerumgebung und der Verlinkung beschränkt, mittels einer XML-Datei. Die beschreibt nur wo welche Dokumente mit welchem Namen liegen, aber nicht die Dokumente selbst. Man kann sicher bei einer kleinen Instanz die Dokumente manuell mit Copy-Paste umziehen. Wenn da schon 50 Dokumente vorhanden sind, wird es sehr aufwändig und nervt.

Problemstellung

Das Problem auf meinem Server war, dass ich die Installation mit Docker durchgeführt hatte. Dies wird offiziell nicht direkt vom Projekt zur Verfügung gestellt. Es gibt ein paar Projekte die Docker Container Images zur Verfügung stellen. Die Installation ist nicht ohne und mit ein paar Herausforderungen behaftet. Die Erstinstallation machte ich mit https://hub.docker.com/r/nicholaswilde/cryptpad weil die auf Anhieb lief. Die anderen Docker Images konnte ich nicht zum laufen bringen, warum auch immer. So erstellte ich viele Dokumente,  bis ich feststellte, dass das Docker Image nicht updated wird. Es steht bis heute auf Version 5.0.0. Per Zufall hab ich dann eine andere Cryptpad Instanz besucht und hab dort Version 5.2.0 gelesen. Untersuchungen ergaben das meine Instanz offenbar nicht mehr gepflegt wird. Hab dann versucht dieses Container Image zum laufen zu bekommen: https://hub.docker.com/r/promasu/cryptpad

Die Installation ist einfach, aber die Instanz mit der richtigen Konfiguration zum laufen bekommen ist eine Herausforderung. Es geht um die “config.js” die ein paar richtige Parameter benötigt um diese lauffähig zu bekommen. Ich empfehle folgende Vorgehensweise, die mich zum Erfolg führte.

Installation Docker Container 

docker run -d --name cryptpad -p 3000:3000 -p 3001:3001 -v ${PWD}/config.js:/cryptpad/config/config.js promasu/cryptpad

Die "config.js" stelle ich auf meinem Git-Repo zur Verfügung.

Der Container sollte in einem Unterverzeichnis gestartet werden, in dem auch die “config.js” liegt. Wenn der Container erfolgreich gestartet wurde, benötigt es einen Nginx Webserver oder Nginx-Proxy-Manager mit einem gültigen SSL-Zertifikat z.B. von Letsencrypt inkl. FQDN als virtuellen Webserver.  Die Instanz kann nicht per HTTP aufgerufen werden, sondern benötigt einen HTTPS-Server für die Verschlüsselung.

Z.B. https://pad.meine-domain.de

Nun hat der Container zufällig erzeugte Volumes erstellt für :

  • /blob
  • /block
  • /data
  • /customize
  • /datastore
  • /config 

https://git.unixweb.net/joachim/cryptpad-docker

Die erstellten Volumes sehen in der Regel so aus wie abgebildet in Portainer:

Standard Volumes für cryptpad

Erstelle Docker Volumes in Portainer mit folgenden Namen:

Migration der Daten

Sollten jetzt schon Daten in den Volumes liegen können diese umkopiert werden.
Als Beispiel wird folgendes Volume benutzt, welches als /data im cryptpad Docker Container benutzt wird:

/var/lib/docker/volumes/d1e6dcb8b794b36223881d5c4a1a76f1c0702088aadb022733d3a14f978057a0/_data

Kopieren von Daten:

docker stop 
cryptpad sudo cp -rp /var/lib/docker/volumes/d1e6dcb8b794b36223881d5c4a1a76f1c0702088aadb022733d3a14f978057a0/_data/ /var/lib/docker/volumes/crypt_data/ 

Dies muss für folgende Volumes ebenfalls kopiert werden: 

- /block 
- /blob 
- /datastore 
- /data <- siehe oben

Nun werden die neuen Volumes mit den kopierten Daten in den Container eingebunden. Im Anschluß wird der Docker Container wieder gestartet mit “docker start cryptpad”

Hoffe dass mit dieser Anleitung eine Datenmigration von cryptpad für jeden möglich ist. Es gibt leider keine andere Möglichkeit bestehende Daten zu migrieren.

Bei Fragen, wie immer die Kommentarfunktion nutzen und viel Erfolg wünscht Joachim

 

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert