Ein hartes Stück Arbeit
Ich bin nicht bloß wegen der Sommerhitze durchgeschwitzt. Mich hat heute der Ehrgeiz gepackt und ich wollte nun unbedingt den Nextcloud-Server hier erfolgreich installieren.
TL;DR
Nach mehreren gescheiterten Versuchen, habe ich die offizielle Methode für den All-In-One-Server als Docker-Container angewendet, musste dafür aber einen entscheidenen Umweg bzw. eine spezielle Konfiguration anwenden. Das Verfahren ist zwar dokumentiert, aber wie so oft im Internet nicht an einer Stelle, sondern verstreut in verschachtelten Links und Seiten.
Frisches Fedora 44 Server Edition
Zuerst habe ich mal auf dem HP ProLiant Microserver Gen. 8 das nach meiner Ansicht nach vollkommen verkonfigurierte Fedora komplett neu installiert. Schon die Grundinstallation bringt jede Menge Zeug mit, das man mehr oder weniger gebrauchen kann oder eben auch nicht.
Platten einbinden
In der Vergangenheit hatte ich schon mal versucht die inzwischen fünf Platten im Server einzubinden, mit mäßigem Erfolg. Vier 3 TB NAS-Platten (WD Red) hatte ich mal zwischenzeitlich via Cockpit versucht sinnvoll in LVM Volumes einzuteilen, aber das ist keine gute Idee gewesen, weshalb ich das nun klassisch auf der Konsole, also im Terminal mit den entsprechenden Werkzeugen pvcreate, vgcreate und lvcreate tat. Ich hab mich da an der Anleitung von Ubuntuusers orientiert. Dann mit mkfs.xfs die Volumes formatiert und mit mount in zuvor erstellte Dateipfade eingebunden. Am Ende dann noch die /etc/fstab erweitert, damit die Partitionen auch nach einem Neustart noch oder wieder da sind.
Podman-Container
Da Fedora Server bereits in der Grundinstallation Podman gleich mitbringt, dachte ich mir, dass ich das “einfach” mal so mit Podman machen kann - nix gibt’s. Wenn’s so einfach wäre, könnt’s ja jede/r. Einfach im Befehl aus der Anleitung Docker mit Podman ersetzen geht nicht, Auch einen Alias in .bashrc setzen (alias docker=podman) funktioniert nicht. Dann fand ich noch eine Anleitung, die mir aber auch keine große Hilfe war. Bei mir hat es jedenfalls nicht geklappt.
rpm aus dem Repo
Nextcloud gibt es auch als Paket in den offiziellen Repositories bei Fedora. Und auch hier fand ich eine gut gemeinte Anleitung, die am Ende aber auch nur Frust erzeugte. Hierzu muss nun auch der gesamte Overhead an zusätzlichen Paketen installiert werden, wie Apache-Server (httpd), MariaDB und weiß der Teufel, was da an abhängigen Paketen noch hinterher kommt. Und wenn es einfach wäre …. ich sagte es bereits. Man braucht ein Zertifikat, ohne offizielle Top-Level-Domain und den ganzen Spaß mit Let’s encrypt bleibt einem nur die Erzeugung eines lokalen Zertifikats mit openssl. Das hat am Ende sogar geklappt, aber die Nextcloud-Installation wollte sich nicht im Web-Browser zeigen. 😠
Kommando zurück
Also den ganzen Krempel wieder runtergeworfen und weil ich mir inzwischen gar nicht mehr sicher war, ob das überhaupt noch was wird auch nochmal einen Neustart gemacht. Inzwischen hatte ich wie so oft den Überblick verloren. Alle Dienste gestoppt, alle Pakete entfernt, vor allem das Wichtigste: Es darf kein Web-Server mehr laufen, sonst funktioniert das mit Docker und dem AIO-Container nicht. Oder nur mit erheblichen Klimmtzügen, und da hatte ich schon genug von.
Scheitern um zu lernen
Also doch nochmal der Versuch Docker zu installieren und Nextcloud AIO als Container zum Laufen zu bekommen - es klingt so einfach und attraktiv.
Docker-Repo für Fedora
Es gibt ein von Fedora zur Verfügung gestelltes Docker-Paket, aber damit hatte ich kein Glück. Deshalb habe ich mir das offizielle, von Docker dokumentierte Repository hinzugefügt.
Docker run
Der in der offiziellen Dokumentation bei Nextcloud zusammengebastelte run-Befehl ist auch nur eine Art “Vorlage” (template), der scheinbar nur zur Orientierung dient. Wie bereits erwähnt mustte ich mir für meinen Anwendungsfall einen eigenen Befehl zusammenschustern und einige Ergänzungen vornehmen, die ich aber zuerst einmal finden musste. Aufgrund meiner Anforderungen mussten zwei Punkte ergänzt werden
- Das Datenverzeichnis soll auf eine eigene Partiion, bzw. auf einem eigenen Pfad liegen
- Nextcloud läuft nur hier im lokalen Netz ohne Internetzugriff von außen
sudo docker run –init –sig-proxy=false –name nextcloud-aio-mastercontainer –restart always –publish 80:80 –publish 8080:8080 –publish 8443:8443 –volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config –volume /var/run/docker.sock:/var/run/docker.sock:ro –env NEXTCLOUD_DATADIR=”/data/ncdata” –env SKIP_DOMAIN_VALIDATION=true ghcr.io/nextcloud-releases/all-in-one:latest
Die beiden zusätzlichen Parameter sind –env NEXTCLOUD_DATADIR=”/data/ncdata” und –env SKIP_DOMAIN_VALIDATION=true. Das Daten-Verzeichnis soll mir ja nicht die root-Partition vollschreiben und das System zum Stillstand bringen, denn im Rootverzeichnis habe ich nur 128 GB Platz. Und an der Domain-Validation bin ich schon in der Vergangenheit regelmäßig gescheitert, aber diesmal habe ich diese Anleitung gefunden. Zuerst musste ich aber nochmal alles rückgängig machen und löschen: Container löschen.
Schlusswort
Das war ein langer, steiniger Weg bis hierhin, aber er scheint noch nicht zuende gegangen zu sein, denn die initiale Konfiguration hat zwar funktioniert, aber dnach gab es einen Zertifikatfehler - wieder einmal. Darum kümmere ich mich morgen.