Nextcloud Teil 2

Vor über 3 Jahren habe ich mir eine private Nextcloud Instanz eingerichtet, die ich seit dem intensiv genutzt habe. Ich habe mehrere Accounts, die ich für unterschiedliche Zwecke und unterschiedliche Rechner genutzt habe. Auf meinem privaten Rechner konnte ich so auf meine privaten Bilder zugreifen, und auf meinem Arbeitsrechner diesen Zugang unterbinden.

Speicherplatz auf /dev/sda1 ist zu 96% voll.

In der Zwischenzeit habe ich den Server natürlich auch gewartet, immer schön Updates installiert und geschaut, dass alles weiterhin sicher und ordentlich ist. Leider hat sich ein Problem mit dem Speicherplatz ergeben. Meine 40GB Speicherplatz auf der Cloud Instanz sind voll geworden. Eigentlich müsste das einfach sein, Speicherplatz zu erhöhen. Schließlich ist handelt es sich um „Cloud“-Server.

Preise der Hetzner Cloud Server

An den Preisen sieht man, dass zwar wenig Speicherplatz relativ günstig ist (was ich auch genutzt habe), dass man aber sehr schnell zu höheren Preisen kommt, wenn man ein paar hundert GB Speicherplatz benötigt. Ich benötige eine Nextcloud mit mehreren TB Speicherplatz, um auch meine privaten Bilder, auf dem Smartphone, meine digitale Büchersammlung, meine alten Festplatten und USB Sticks, meine Videospiele-Roms vollständig backuppen zu können. Alleine meine private Nintendo Rom Sammlung ist ein paar hundert GB. Aus diesem Grund habe ich beschlossen, meine ganze Nextcloud auf einen dedizierten Server umzuziehen.

Anforderungen

Bislang habe alleine ich diese Nextcloud Instanz genutzt. Meine neue Nextcloud Instanz will ich auch mit Familie und Freunde teilen, sodass diese ebenfalls ihre privaten Inhalte backuppen können, ohne auf IT Riesen wie Google Drive oder Microsoft OneDrive angewiesen zu sein. Das heißt, ich bin bereit, etwas mehr Geld in die Hand zu nehmen, solange die Leistung stimmt.

Als Speicherkapazität will ich mit 4TB Speicherplatz starten. Später könnte ich das erhöhen, oder auch nicht. Mal schauen.

Neuer Server

Nun stellt sich wieder einmal die Frage: Woher bekommt man einen dedizierten Server, der auch noch erschwinglich ist? Seit 2 Jahren steigen die Preise von Servern so stark.

Preisberechnung eines dedizierten Servers

In diesem Setup habe ich bei Worldstream den Preis für ein Server mit 4TB Speicherplatz berechnet. Ich komme auf etwa 50€ pro Monat. Das ist auf jeden Fall zu hoch. Die Preise von alten Servern bleiben bei ihren alten Preisen. Ich habe noch glücklicherweise einen Server dort gehabt, dessen Anwendungsfall obsolet geworden ist. Der Upgrade der Festplatte hatte einen geringen Aufpreis. Insgesamt kostet mich der dedizierte Server für meine neue Nextcloud Instanz auf 30€ pro Monat.

Nextcloud Installation

Die Nextcloud Instanz hatte ich bei der alten Instanz manuell installiert. Ich habe MariaDB, PHP und Apache2 aus den offiziellen debian Paketquellen installiert, Nextcloud aus der offiziellen Quelle herunterladen und im Dateiverzeichnis installiert.

Dieses Mal will ich das anders machen. Ich will von Anfang an auf Docker setzen und die vollständige Instanz in einem Docker-Container aufsetzen. Mithilfe von Volumes in Docker liegt die Nextcloud-Instanz so unabhängig von meinen Daten vor. Ich kann die Instanz leichter ersetzen, umziehen oder backuppen.

https://github.com/nextcloud/docker

Nextcloud bietet Images für Nextcloud in verschiedenen Ausführungen. Ich will dieses offizielle Image nutzen.

Ich habe die Beispiel-Docker-Compose genutzt und sie meinen Anforderungen angepasst. Eine Anpassung ist, dass ich immer wissen möchte, welche Version gerade verwendet wird. Ich habe die Version auf die letzte aktuelle Version festgesetzt und werde bei major updates diese Version manuell anpassen.

Installationsprobleme

Die Installation hat fast problemfrei funktioniert. Das einzige Problem war, dass ich den folgenden Fehler bekommen habe, wenn ich mich mit dem Desktop-Client einloggen wollte:

NC 17 Client login not working because of Content Security Policy directive when using reverse proxy #17409

https://github.com/nextcloud/server/issues/17409

Die Lösungsvorschläge haben auch nicht viel gebracht. Ich habe Nextcloud 22 verwendet und die Lösung war am Ende, eine weitere Zeile in db.env zu ergänzen.

OVERWRITEPROTOCOL=https

Danach hat alles funktioniert. Es scheint, als ob in der Beispiel docker-compose ein wenig was verändert wurde und man den Parameter über die Umgebungsvariable einsetzen muss.

Instandsetzung

Als erstes habe ich mal meine Bilder und größten Dateien in die neue Instanz verschoben. Diese sind bereits 13GB und ich werde die anschließend von meinem Lokalen Dateisystem löschen. Selbstverständlich ist auch eine Backup-Lösung hier nötig. Das werde ich in Form von lokalen Backups auf einem Raspberry Pi lösen. Ich habe bereits die dafür nötigen Festplatten.

Ich habe mir wieder mehrere Nutzer erzeugt, die für unterschiedliche Anwendungszwecke genutzt werden. Ein Nutzer als Archiv für meine Bilder, ein als Arbeitsbereich, was ich über alle meine Arbeitsrechner teile und ein für meine restlichen privaten Dokumente und Inhalte, die nichts im Arbeitskontext zu tun haben. Man könnte natürlich auch einfach ein Account nutzen und unterschiedliche Ordner freigeben. Diese Lösung hatte ich schon einmal genutzt, war aber nicht so ganz zufrieden.

Verschlüsselung

Ich nutze TLS für die Datenübertragung. Die meisten Daten sind aber nicht Ende-Zu-Ende verschlüsselt. Ich habe aber auch meine sensiblen Daten. Da hatte ich in der alten Instanz EncFS genutzt, um Ordner zu verschlüsseln und synchronisieren. EncFS wird inzwischen nicht mehr aktiv gewartet. Ich habe beschlossen auf gocryptfs zu wechseln. Das macht einen guten Eindruck.

Die Nutzung von gocryptfs geht genauso leicht und schnell wie mit encfs.

Nächste Schritte

Ich habe die Gelegenheit genutzt, ein wenig meine Dateien zu ordnen. In alten Festplatten habe ich meine Videogame-Roms, die ich bislang nicht hochladen konnte. Diese werden in der neuen Instanz ein neues Zuhause finden.

Die alte und neue Instanz werde ich vorerst parallel betreiben. Ich werde meine alten Festplatten (über 10 Jahre alt) ausgraben und die Bilder und Videos ebenfalls in meiner Cloud archivieren. Festplatten haben auch eine Lebenszeit und Inhalte müssen alle 10-20 Jahre in neue Festplatten verschoben werden.