Nextcloud auf Ubuntu eine Frage der Haltung

Nextcloud auf Ubuntu: eine Frage der Haltung

Es gibt Sätze, die man als Administrator nicht hören will. „Können wir nicht einfach Dropbox nehmen?“ ist so einer. Oder: „Das hat doch gestern noch funktioniert.“ Wer sich einmal für Nextcloud entschieden hat, der hat diese Sätze vermutlich schon gehört – und steht trotzdem dazu. Denn Nextcloud ist mehr als eine Software. Es ist ein Statement. Eine Entscheidung für Datenkontrolle, für Selbstbestimmung und nicht zuletzt für eine Art von Souveränität, die in Zeiten von Big Tech und Datenschutzskandalen selten geworden ist.

Dass dabei ausgerechnet Ubuntu als Betriebssystem eine so große Rolle spielt, ist kein Zufall. Ubuntu ist die populärste Server-Distribution im Linux-Lager, bietet eine riesige Community, lange Support-Zykten und – zugegeben – auch eine gewisse Gemütlichkeit. Man bekommt eine Nextcloud auf Ubuntu schneller ans Laufen als auf jedem anderen System, wenn man die richtigen Kniffe kennt. Aber genau da liegt der Hase im Pfeffer: Die offizielle Wikiseite und unzählige Tutorials tun so, als wäre es eine Sache von zehn Minuten. Die Realität sieht anders aus. Dieser Artikel begleitet Sie durch die wichtigsten Etappen – von der Installation über die Absicherung bis hin zum laufenden Betrieb. Und ich verspreche: Nach der Lektüre wissen Sie nicht nur, wie es geht, sondern auch, warum es manchmal nicht geht.

Warum Ubuntu? Und warum Nextcloud?

Zunächst eine kurze Standortbestimmung. Nextcloud ist eine Open-Source-Software für Cloud-Storage und Kollaboration, die 2016 als Fork von ownCloud entstand. Mittlerweile hat sie sich zu einer Plattform gemausert, die weit über das reine Speichern von Dateien hinausgeht: Inzwischen gibt es Nextcloud Talk für Videokonferenzen, Nextcloud Mail, Kalender, Kontakte, Office-Integration und sogar ein dezentrales Newsreader-Modul. Die Liste ist lang, und sie wird ständig länger. Wer hier einsteigt, sollte wissen, dass er sich mit einem Ökosystem beschäftigt, das in rasantem Tempo wächst.

Ubuntu bietet für dieses Ökosystem eine denkbar günstige Ausgangsbasis. Die Distribution ist stabil, gut dokumentiert und verfügt über ein Paketmanagement, das auch komplexe Abhängigkeiten in den Griff bekommt. Wer seine Nextcloud auf Ubuntu betreibt, profitiert von einem Sicherheits-Update-Betrieb, der zuverlässiger ist als die Wake-Schleife des eigenen Routers. Und für die grauen Haare, die einem bei der Konfiguration unweigerlich wachsen, gibt es immer ein Forum, in dem jemand die Frage bereits gestellt hat – nicht selten mit drei verschiedenen Antworten, von denen genau eine funktioniert.

Ein interessanter Aspekt ist die Wahl der Ubuntu-Version. Ich habe in den letzten Jahren zahlreiche Systeme gesehen, die noch mit Ubuntu 18.04 liefen, weil „damals alles geklappt hat“. So nachvollziehbar das ist, so bedenklich ist es aus Sicherheitsperspektive. Nextcloud selbst unterstützt offiziell nur die jeweils aktuellen PHP- und Datenbank-Versionen. Wer mit veralteten Ubuntu-Releases arbeitet, früher oder später an die Grenzen der Kompatibilität. Der Umstieg auf Ubuntu 22.04 LTS oder 24.04 LTS – je nach Stand des Systems – ist eigentlich kein Luxus, sondern eine Überlebensfrage. Die 24.04, das wird hier ganz praktisch empfohlen, ist seit April 2024 verfügbar und stellt mit PHP 8.3 eine solide Basis für alle aktuellen Nextcloud-Versionen dar. Aber Achtung: LTS heißt nicht ewig. Die Distributionen werden von Canonical zwar viele Jahre gepflegt, doch die Software-Ökologie darüber verändert sich.

Der erste Schritt ist oft ein Fehler

Natürlich beginnt die Reise bei der Installation. Und hier fängt das Dilemma an: Es gibt nicht den einen richtigen Weg. Die Nextcloud-Entwickler empfehlen seit einigen Jahren eine Installation über Snaps – das von Canonical eingeführte Containerformat, das Programme samt ihrer Laufzeitumgebung bündelt. Der Befehl ist kurz, schmerzlos und funktioniert grundsätzlich:

snap install nextcloud

Das Ganze hat den Vorteil, dass es sich um eine offizielle, von den Nextcloud-Entwicklern gepflegte Installation handelt. Sie bekommen automatische Updates, eine saubere Apache-Konfiguration und eine Sammlung von Standard-Apps. Wer nur ein schnelles Testsystem braucht, ist damit bestens bedient. Für den produktiven Einsatz tendiere ich allerdings zu einer manuellen Installation. Warum? Nun, zum einen ist der Snap-Container so verschachtelt, dass man bestimmte Anpassungen am System – etwa die Anbindung an einen separaten Datenbankserver – nicht ohne weiteres vornehmen kann.

Zum anderen führt die Snap-Installation zu einer gewissen Trägheit. Man gewöhnt sich an die Standardkonfiguration, ohne die Mechanismen dahinter zu verstehen. Das rächt sich spätestens dann, wenn die Performance nicht stimmt oder wenn ein Update ein unerwartetes Verhalten erzeugt. Nextcloud ist eine Software, die man verstehen muss, um sie zu betreiben. Das klingt nach sehr administrativer Arbeit, ist aber in der Praxis die einzige Methode, um mit schwierigen Situationen souverän umzugehen. Ein einziges Mal eine eine kaputte Installation zu debuggen, die mit einem Snap zusammenhängt, hat mir die Skepsis beigebracht.

Die manuelle Installation: ein Orchester in drei Teilen

Der klassische Weg führt über drei Komponenten, die oft als LAMP-Stack bezeichnet werden: Linux, Apache, MySQL/MariaDB und PHP. Das ist etwas irreführend, denn es setzt sich aus vier Buchstaben zusammen – aber in der Praxis funktioniert es so. Auf einem frisch installierten Ubuntu 24.04 Server spielen Sie zuerst die Grundkomponenten auf. Es folgt ein kurzer Befehl, der alle nötigen Pakete abdeckt:

sudo apt install apache2 mariadb-server php-{cli,common,curl,gd,imagick,intl,mbstring,mysql,xml,zip,bcmath,soap,gmp}

Die geschweiften Klammern sind ein Bash-Trick und kein Zauberwerk – sie erweitern sich zu einer langen Paketliste. Es empfiehlt sich, vorher ein apt update auszuführen. Aber das wissen Sie vermutlich längst. Die interessantere Frage ist, welche PHP-Version genau installiert wird. Bei Ubuntu 24.04 ist das PHP 8.3, eine sehr aktuelle Version, die von Nextcloud offiziell unterstützt wird. Wer von älteren Distributionen kommt, darf sich freuen: Die Performance dieser PHP-Generation ist spürbar besser als die alter Vorgänger.

Die Grundkonfiguration von MariaDB ist ein Stolperstein, den viele unterschätzen. Bei den meisten Distributionen ist die Datenbank nach der Installation offen konfiguriert. Sie sollten daher zwingend die Datenbank absichern. Das geht mit:

sudo mysql_secure_installation

Dabei werden unnötige anonyme Nutzer entfernt, die Testdatenbank gelöscht und das Root-Passwort gesetzt. Es passiert öfter als gedacht, dass Nextcloud-Installationen auf einem ungeschützten MariaDB-Server laufen und dank Standardkonfiguration freundlich offen sind. Die nächste Aufgabe ist die Erstellung einer separaten Datenbank und eines Datenbank-Benutzers. Der Name kann „nextcloud“ sein, das Passwort sollte eine Zeichenkette sein, die aussieht, als hätte ein Programmierer aus Versehen auf der Tastatur gelegen. Dann wird die Datenbank mit dem Befehl

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

angelegt. Das Schlüsselwort „utf8mb4″ ist hierbei keine Nebensächlichkeit: Es ermöglicht die Speicherung von Emojis und anderen Sonderzeichen. Wer das weglässt, wundert sich später über kryptische Zeichen in Dateinamen. Das passiert mehr Leuten, als man denkt.

Die Dateien verteilen: Das Nextcloud-Archiv ist kein Abschlussball

Wenn die Datenbank sauber vorbereitet ist, laden Sie das aktuelle Nextcloud-Archiv von der offiziellen Website herunter. Sie erhalten eine Tar-Archivdatei, die mit einem simplen Befehl entpackt wird:

tar -xjf nextcloud-*.tar.bz2

Hierbei ein Hinweis: Das Verzeichnis nextcloud kann in das Webserver-Verzeichnis verschoben werden. Üblich ist /var/www/html/nextcloud oder ein eigener Pfad. Wichtig ist, dass die Webserver-Benutzergruppe www-data die Dateien lesen darf. Ein häufiges Problem ist die falsche Dateizuordnung. Ich habe viele Support-Threads gesehen, in denen der Admin die Dateien als Root entpackt hat und der Apache-Server anschließend keine Schreibrechte an der Konfigurationsdatei bekam. Der Installationsprozess bricht an diesem Punkt mit kryptischen Meldungen ab. Also merken: sudo chown -R www-data:www-data /var/www/html/nextcloud – und zwar am besten sofort, nicht erst, wenn der Browser rot wird.

Dann folgen Sie dem Webinstaller: Sie rufen die IP des Servers oder den Domainnamen auf und sehen die gelbe Einstiegsseite. Optionale Apps wie Talk und Groupware werden ausgewählt. Das wirkt alles harmlos, ist aber der Moment, in dem Sie wichtige Weichen stellen. Die ausgewählten Apps ziehen später Abhängigkeiten nach sich, die zur Laufzeit nicht ohne weiteres entfernbar sind. Man sollte sich also überlegen, ob man wirklich die Groupware mitbringt oder lieber nur die Basis installiert.

Die Installation selbst dauert unter normalen Umständen nicht lang. Etwas länger wird es, wenn der Server langsam ist oder der Datenbank-Server in einer Virtual Machine auf einer überbauten Disk arbeitet. Wer Geduld mitbringt, wird belohnt – und das Warten ist auch eine gute Gelegenheit, sich zu fragen, ob man die Standardkonfiguration wirklich so übernehmen will, wie sie der Installer vorgibt. Die Antwort ist in den meisten Fällen: nein.

Der Webserver: Apache ist eingebaut, Nginx will erobert werden

Nextcloud bringt bei der manuellen Installation keinen eigenen Webserver mit, sondern nutzt den bereits laufenden Apache. Die Konfiguration passiert über eine Datei im Verzeichnis /etc/apache2/sites-available. Dort wird ein virtueller Host eingerichtet, der die Domain und das Dokumentenverzeichnis festlegt. Ein Beispiel:

<VirtualHost *:80>
ServerName cloud.example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud
<Directory /var/www/html/nextcloud>
Require all granted
</Directory>
</VirtualHost>

Wichtig ist das Aktivieren des Moduls für URL-Rewriting, also die hübsche Weiterleitung von URLs. Nextcloud nutzt dieses Modul für die eigenen Routes. Sonst erscheinen nur weiße Seiten oder kryptische 404-Fehler. Das Ganze schalten Sie mit sudo a2enmod rewrite frei. Ebenfalls zu empfehlen ist das Modul headers, das für die korrekten Antworten bei HTTP-Optimierungen zuständig ist.

Allerdings: Der Apache ist nicht meine erste Wahl für eine produktive Nextcloud, wenn es um Performance geht. Auf Systemen mit sehr vielen gleichzeitigen Nutzern ist Nginx schlicht effizienter. Nginx arbeitet ereignisbasiert und nicht prozessbasiert wie Apache, was den Speicherverbrauch deutlich senkt. Wer also einen Server mit 4 Gigabyte RAM und 20 Mitarbeitern plant, sollte von Anfang an auf Nginx setzen. Die Konfiguration ist etwas umständlicher, aber nicht übermäßig komplex. Nextcloud bietet eine Muster-Konfiguration für Nginx in der offiziellen Dokumentation. Man kann sie ohne Scham kopieren – sie funktioniert. Die entscheidenden Parameter sind die Übergabe an PHP-FPM und die Header für lange Cache-Zeiten.

Auch bei der Verschlüsselung gibt es einen Unterschied. Unter Apache ist das Modul mod_ssl gut eingespielt. Unter Nginx reicht eine Zeile für die SSL-Zertifikate. In beiden Fällen verwenden Sie Let’s Encrypt für das Zertifikat, wenn Sie eine öffentliche Domain haben. Der Zertifikats-Client certbot richtet sich fast von allein ein. Das eigentliche Problem liegt nicht in der Einrichtung, sondern in der Verlängerung der Zertifikate. Diese läuft bei beiden Webservern durch einen periodischen Cron-Job, der manchmal vergessen wird. Wenn der Zertifikat-Lauf abläuft, behandeln Browser die Seite als unsicher. Das ist kein Problem der Technik, sondern eines der Disziplin.

Versteckte Performance: Redis und PHP-Opcache

Nextcloud ist ein PHP-Schwergewicht. Es werden viele Dateien geladen, viele Datenbankabfragen ausgeführt, und ohne eine ordentliche Zwischenspeicherung kann der Server zur Schnecke werden. Der erste Stellhebel dafür ist der PHP-Opcache – der Bytecode-Cache für die Skriptsprache. Die Ausgangskonfiguration von Ubuntu ist hier oft zu zurückhaltend. Es kann vorkommen, dass der Opcache die nächste Datei schon aus dem Speicher wirft, bevor sie ein zweites Mal gebraucht wird. Eine sinnvolle Grundeinstellung für PHP-Opcache in der Datei opcache.ini sieht so aus:

opcache.enable=1
opcache.memory_consumption=128

Das ist eine Frage der Speicherreservierung, nicht der Magie. Wer eine kleine VM mit 2 Gigabyte betreibt, sollte nicht einfach den Speicher verschwenden, aber 128 MB sind ein guter Startwert. Der eigentliche Unterschied kommt jedoch durch einen externen Cache: Redis. Nextcloud unterstützt Redis als Schnittstelle für das Sperren von Dateien und als Cache für Konfigurationsdaten. Die Integration ist dank der PHP-Redis-Extension inzwischen unkompliziert.

Einmal installiert und in der config/config.php eingetragen, spürt man den Unterschied ziemlich schnell. Der Server antwortet flotter, die Dateiliste lädt in Sekundenbruchteilen, und die CPU-Auslastung sinkt sichtbar. Viele Admin-Probleme, die sich in der Praxis als „das System ist langsam“ äußern, lassen sich mit Redis kurieren. Es ist also kein Geheimtipp, sondern Standard-Praxis – und trotzdem sieht man oft genug Installationen, die ohne Redis auskommen müssen. Das ist so, als würde man einen Sportwagen mit Winterreifen fahren. Es funktioniert, aber es ist nicht schön.

Der Hintergrund-Prozess: Cron ist keine Schallplatte

Nextcloud führt, wie viele Anwendungen, Aufgaben im Hintergrund aus: das Einlegen eingehender E-Mails, das Scannen neuer Dateien, das Bereinigen von temporären Daten und die Verarbeitung von Vorschauen. Standardmäßig wird dabei der AJAX-Modus verwendet, der immer dann aktiv wird, wenn ein Benutzer die Seite öffnet. Das ist bequem, aber unzuverlässig. Wenn keiner die Oberfläche verwendet, bleiben die Aufgaben liegen – ein klassisches Henne-Ei-Problem. Die offizielle Empfehlung lautet daher, einen Cron-Job einzurichten, der jede fünf Minuten die Skriptdatei cron.php aufruft. In der Nextcloud-Administrationsoberfläche wird unter Einstellungen der Modus „Cron“ gewählt, anschließend legen Sie im System den Timer an:

*/5 * * * * php -f /var/www/html/nextcloud/cron.php

Wichtig ist, dass der Cron-Job als Benutzer ausgeführt wird, der auch die Dateien besitzt – also www-data oder derjenige, der die Installation durchgeführt hat. Ein Fehler, der gerne gemacht wird, ist das Einrichten der Aufgabe als Root. Die resultierenden Dateien im Datenverzeichnis haben dann eindeutig falsche Besitzer. Das führt zu Verwirrung und gelegentlichen Zugriffsproblemen.

Für große Installationen mit vielen Benutzern gibt es noch einen besseren Weg: den systemd-Dienst. Statt Cron können Sie einen Timer einrichten, der minütlich läuft und die Cron-Datei ausführt. Dabei können Sie die Prozesse besser überwachen und, wenn nötig, die Log-Ausgaben kontrollieren. Ein kleiner Vorteil für Administratoren, die gerne wissen, was passiert. Wer die Systemd-Einheit schreibt, sollte darauf achten, dass der Dienst nach der Fertigstellung aktiviert und gestartet wird. Es gibt nichts Peinlicheres als einen gut konfigurierten Timer, der nie gestartet wurde.

Die Daten: Wo liegen sie eigentlich?

Während die Dateien der Anwendung unter /var/www/html/nextcloud liegen, werden die eigentlichen Daten an einem anderen Ort gespeichert – dem Datenverzeichnis. Die Standardkonfiguration legt es unter /var/www/html/nextcloud/data ab. Das ist funktional, aber semantisch nicht optimal. Bei einem echten Betrieb sollten Sie das Datenverzeichnis auf eine separate Partition oder auf ein anderes Laufwerk legen. Die Trennung von Anwendung und Daten erleichtert Backups, Migrationen und schützt vor versehentlichem Überschreiben bei Updates. Bei einem Upgrade wird nämlich das gesamte Anwendungsverzeichnis ersetzt – und wenn dort auch die Daten liegen, kann das schiefgehen, falls der Prozess unterbrochen wird.

Nextcloud unterstützt außerdem die Anbindung externer Speicher. Von S3-kompatiblen Objektspeichern bis zu SMB-Freigaben und FTP-Servern lässt sich vieles einbinden. Das ist ein mächtiges Werkzeug, aber wiederum eines, das mit Bedacht eingesetzt werden sollte. Externe Speicher sind oft langsamer als lokale, und wenn das Netzwerk ausfällt, werden sie schlicht zur Qual. Was bleibt, ist die Erkenntnis: Die externe Speicherung in Nextcloud funktioniert, aber sie ersetzt keine konsistente Backup-Strategie. Wer sich auf S3 verlässt, weil der Anbieter das verspricht, mag sich am Ende ärgern. Ich habe es selbst erlebt, als ein S3-Bucket samt aller Versionen gelöscht wurde, weil eine IAM-Rolle falsch konfiguriert war – und Nextcloud brav die Löschung übernommen hat.

Ein anderer Aspekt ist die Verschlüsselung der Daten auf dem Server. Nextcloud kann Daten serverseitig verschlüsseln, aber das ist kein Allheilmittel. Es schützt vor dem physischen Diebstahl der Festplatte, nicht vor einer kompromittierten Installation. Ein Angreifer, der die Anwendung durch einen Fehler in der Konfiguration übernimmt, erhält die Schlüssel in der Regel mit. Insofern ist die Server-Verschlüsselung eher als eine Frage der Compliance und der Beruhigung zu betrachten. Der gesunde Menschenverstand sagt: Wer sensible Daten hat, nutzt Client-seitige Verschlüsselung oder zumindest eine starke Transportverschlüsselung.

Sicherheit: Mehr als eine Firewall

Das Thema Sicherheit ist bei Nextcloud ein weites Feld. Auf einem Ubuntu-System kommt zunächst die Systemebene: Die Firewall ufw sollte den Zugriff auf die notwendigen Ports erlauben – SSH, HTTP und HTTPS. Wenn die Nextcloud nur im internen Netzwerk gebraucht wird, sollte man den Zugriff von außen konsequent blockieren. Das ist so simpel wie effektiv. Wer die Cloud in einem Rechenzentrum betreibt, sollte über einen Reverse-Proxy nachdenken, der als schützende Instanz vor dem Applikationsserver sitzt. Dieser kann DDoS-Muster erkennen, HTTP-Header manipulieren oder die Verbindung zwischen Client und Server mit einer zusätzlichen Schicht absichern.

Auch das Betriebssystem selbst sollte gepflegt sein. Ubuntu bringt automatische Sicherheitsupdates mit, aber es schadet nicht, einmal pro Woche manuell zu prüfen, ob alle Pakete aktuell sind. Eine Nextcloud, die mit veraltetem PHP läuft, ist wie ein Auto mit offenem Dach: Es fährt, aber es zieht. In der Praxis kommt es darauf an, dass PHP und MariaDB auf dem aktuellen Stand sind. Die Ubuntu-Pakete werden normalerweise von Canonical aktualisiert, wenn ein Sicherheitsleck bekannt wird. Daher sollte man das Kernel-Update nicht aufschieben, nur weil das System „gerade so gut läuft“.

Die nächste Ebene ist die Anwendung selbst. Nextcloud bietet in den Einstellungen eine Reihe von Sicherheitsoptionen: Zwei-Faktor-Authentifizierung, Gerät-Sessions, Passwort-Richtlinien, Beschränkung der Login-Versuche. Für einen professionellen Betrieb ist die Zwei-Faktor-Authentifizierung nicht mehr optional. Der Grund ist einfach: Das Passwort ist nicht mehr das schwache Glied, sondern der Angriffsweg über Phishing und Credential-Stuffing. Die Kombination aus Passwort und einer zeitbasierten TOTP-Lösung ist bei Nextcloud gut umgesetzt. Ob die TOTP- oder die WebAuthn-Variante zum Einsatz kommt, hängt vom Budget und der Geräteausstattung der Nutzer ab. TOTP ist einfacher fürs Einrichten und funktioniert auch mit kleinen Apps. WebAuthn (also Hardware-Keys) ist eine Option für große Organisationen, die ein hohes Sicherheitsniveau erreichen wollen.

Fail2ban ist ein Werkzeug, das in den meisten Nextcloud-Setups fehlt. Das Programm überwacht Logdateien und kann verdächtige IP-Adressen für eine bestimmte Zeit sperren. Es ist kein Wundermittel, aber es erhöht die Hürde für Brute-Force-Angriffe erheblich. Die Konfiguration für Nextcloud ist schnell gemacht. Es lohnt sich, die verschiedenen Module zu testen, damit man nicht aus Versehen sich selbst aussperrt. Einen Vorgeschmack bekommt man, wenn man die Logdatei des Apache-Servers per tail -f verfolgt und zuschaut, wie viele Anfragen von unbekannten Rechnern reinkommen, die nichts mit Ihnen zu tun haben. Es ist ein unbehagliches Gefühl – und gleichzeitig der Beweis, dass die Welt da draußen nicht nur aus braven Nutzern besteht.

Apps, Integrationen und der gelegentliche Kollateralschaden

Was Nextcloud von anderen Cloud-Lösungen abhebt, ist die Erweiterbarkeit über die App-Verwaltung. Für fast jeden Bedarf gibt es ein Drittanbieter-Modul: für die Anbindung an Office-Dokumente, für die Verwaltung von Büchern oder für den Datenaustausch mit externen Diensten. Das Tolle daran ist, dass man alles direkt in der Weboberfläche installieren und deaktivieren kann. Das Problematische daran ist, dass man dabei den Überblick verlieren kann. Jede App zieht neue Abhängigkeiten nach sich, die gegebenenfalls spezielle PHP-Module oder Datenbankänderungen verlangen. Und nicht jede App ist gut gepflegt.

Apkauf von OnlyOffice und Collabora Online ist etwas für Fortgeschrittene. Beide Systeme sind nicht einfach nur Plugins, sondern eigenständige Dienste, die parallel laufen und mit Nextcloud über REST-Schnittstellen kommunizieren. OnlyOffice gibt es in einer kostenpflichtigen Enterprise-Version, aber auch als Community-Edition, die sich in einem Docker-Container betreiben lässt. Die Einrichtung ist nicht schwer, aber sie erfordert Geduld, denn die Anbindung über die WebSocket-Kommunikation will sauber konfiguriert sein. Ein Fehler im SSL-Handshake oder eine nicht aufgelöste FQDN kann dazu führen, dass die Dokumente zwar geladen, aber nicht gespeichert werden können. Es gibt kaum etwas Lohnenderes, als den eigenen Nextcloud-Server zum Laufen zu bringen. Aber wenn man es fertig hat, merkt man erst, wie voraussetzungsvoll die Administration geworden ist.

Ein interessanter Aspekt ist die Entwicklung der Apps im Bereich Künstliche Intelligenz. Nextcloud hat mit „Nextcloud Assistant“ eine eigene Lösung vorgestellt, die mithilfe von maschinellem Lernen automatische Zusammenfassungen von Texten erstellt oder Sprachaufzeichnungen verschriftlichen kann. Das funktioniert lokal auf dem Server oder über externe LLM-Schnittstellen. Ich gebe zu, dass ich anfangs skeptisch war, ob das ein sinnvolles Feature für eine On-Premise-Lösung ist. Aber schon nach wenigen Tests habe ich gemerkt, wie gut die Option in den Workflow passt. Es ist eine der wenigen Plattformen, die KI-Funktionen nicht nur als Marketing-Hype behandeln, sondern tatsächlich in die vorhandene Unternehmensstruktur integrieren lassen.

Die Aktualisierung: Ein Tanz auf dem Vulkan

Updates sind das Schicksal jedes Administrators. Bei Nextcloud gibt es dafür den Updater in der Weboberfläche – der allerdings in der Praxis nicht immer zuverlässig arbeitet, was zahlreiche Forenbeiträge belegen. Warum? Weil die Update-Prozedur Dateien ersetzt und dabei bestimmte Rechte- und Eigentumsverhältnisse voraussetzt. Wenn die Installation nicht sauber mit eigenen Rechten läuft, kann der Updater keinen Fortschritt verzeichnen. Die vielleicht wichtigste Empfehlung lautet daher: Vor jedem Update ein komplettes Backup erstellen. Das klingt banal, aber die Zahl derer, die sich erst dann Gedanken machen, wenn das Update schiefgelaufen ist, ist erstaunlich groß.

Die Alternative und eigentlich elegantere Methode ist die Aktualisierung über die Kommandozeile. Das Skript updater.phar kann direkt im Anwendungsverzeichnis aufgerufen werden und führt die Aktualisierung Schritt für Schritt durch – mit der Möglichkeit, bei Fehlern zurückzurollen. Noch komfortabler wird es, wenn man die occ-Befehle verwendet. Dieses Konsolen-Werkzeug ist das Schweizer Taschenmesser für Nextcloud. Damit lassen sich Benutzer verwalten, Dateien prüfen, Apps installieren und Konfigurationen ändern. Wer mit occ arbeitet, hat eine weitaus bessere Kontrolle als über die grafische Oberfläche. Ein erfahrener Admin führt Updates gerne wie folgt durch: erst die nächste Version als Archiv herunterladen, dann das komplette Verzeichnis austauschen (inklusive der config– und data-Verzeichnisse), danach in der Kommandozeile die Datenbankmigration mit occ maintenance:mode --on anstoßen und schließlich die Wartungsmodus auf off setzen. Das klingt aufwendig, ist aber überschaubar.

Bei Ubuntu ist der Updater con Snap mitsamt seinem Update-System noch einmal eine andere Geschichte. Snaps aktualisieren sich in der Regel automatisch, was bequem ist, aber auch Überraschungen bereithält. Es kommt vor, dass ein Sna-Update eine neue Nextcloud-Version einspielt, die inkompatibel zu bestimmten Drittanbieter-Apps ist. Der Snap hat manchmal eine eigene Konfiguration der PHP-Erweiterungen, die nicht auf dem System außerhalb des Snaps gespiegelt wird. Die Diagnose ist dann zeitaufwendig, weil man nicht sofort erkennt, welche Umgebung tatsächlich läuft. Man muss also abwägen: Bequemlichkeit gegen Erkenntnistiefe. Für mich überwiegt die Erkenntnistiefe.

Migrationen und Spezialfälle

Der Umzug einer Nextcloud auf einen anderen Server gehört zu den Aufgaben, die einen ruhigen Blutdruck fordern. Das Grundprinzip ist einfach: Dateien übertragen, Datenbankdump erstellen, Zielsystem einrichten und dann die Instanz wieder verbinden. Die Fallstricke liegen im Detail. Zum Beispiel muss die URL identisch bleiben – oder zumindest in der config.php entsprechend angepasst werden. Sonst meldet die Anwendung, dass sie auf einen fremden Zugriff stößt und die Sicherheitsrichtlinie verletzt. Die Verwendung von occ maintenance:mode ist während der Migration ein unverzichtbares Werkzeug, um zu verhindern, dass Benutzer Änderungen machen, während die Datenbank kopiert wird.

Ein Spezialfall ist der Umzug von einer Installation im Snap zur manuellen Installation. Der Snap verwendet ein verschachteltes Dateisystem und eine eigene interne Datenbankkonfiguration. Manchmal sind die Daten im Snap nur schwer zugänglich. Es gibt Wege, sie zu exportieren, aber keiner davon ist gerade elegant. Der übliche Weg ist, eine frische Installation zu erstellen und die Dateien über das Webinterface oder die externen Storage-Ordner neu zu kopieren. Das ist im Klartext: richtig viel Arbeit. Und doch lohnt es sich, wenn man langfristig flexibler bleiben möchte. Die Frage, ob man von Snap auf manuell wechselt, ist also keine Frage des Kurzzeit-Handlings, sondern der Zukunft: Wenn in drei Jahren das Snap-Update nicht mehr funktioniert, weil nicht mehr genug Ressourcen sind, steht man wieder vor demselben Ärgernis.

Neben der Migration ist auch das Thema Skalierung relevant. Nextcloud skaliert für gewöhnlich bis in den Bereich von wenigen tausend Benutzern auf einem einzelnen Server, wenn man die Performance-Parameter richtig wählt. Ab einer gewissen Größe werden Dinge wie die Verwendung eines separaten Datenbankservers und das Aufteilen der Dateiablage in verschiedene Storage-Buckets relevant. Wer von Anfang an mit mehreren Servern plant, sollte unbedingt auf eine saubere Trennung achten. Ich habe Systeme gesehen, die in eine Sackgasse gewachsen sind, weil der Speicher einfach am bestehenden Server dranhing. Der Umbau im Livebetrieb ist dann ein heikles Manöver – möglich, aber ungeliebt.

Backup: Die spannende Frage, die keiner hören will

Das Thema Backup ist inzwischen ein in vielen Unternehmen gut geöltes Räderwerk. Man hat heute das Drei-2-1-Prinzip, die Storage-Snapshots und den Wiederherstellungstest, der einmal pro Quartal durchgeführt werden sollte. Bei Nextcloud sieht das etwas anders aus. Die Anwendung hat eine hohe Komplexität, weil sie Dateien, Datenbanken und Konfigurationen konsistent sichern muss. Wenn nur die Datenbank importiert wird, aber die Dateien auf dem Stand von gestern sind, entstehen Inkonsistenzen. Die Lösung liegt darin, ein konsistentes Backup zu erstellen, indem der Wartungsmodus aktiviert wird oder zumindest ein Datenbank-Dump mit mysqldump erstellt wird, während die Dateiablage im Moment des Dumps eingefroren ist.

Für ein einfaches Setup mit kleiner Benutzerzahl reicht in der Praxis ein wöchentlicher mysqldump plus ein rsync der Datenverzeichnisse. Im Falle eines Wiederherstellens installiert man die Basissoftware neu, stellt die Dateien wieder her und importiert den Datenbank-Dump. Das funktioniert erstaunlich gut, sofern die Versionsnummern zusammenpassen. Wer auf Nummer sicher gehen will, testet die Wiederherstellung in einer virtuellen Maschinen-Umgebung. Das ist ein Tag Arbeit, aber ein sehr lehrreicher. Man erkent, wo die Konfiguration zerbrechlich ist und welche Abhängigkeiten die Installation hat.

Ein cleverer Ansatz ist übrigens die Verwendung von Btrfs-Snapshots, falls das Luks- oder Btrfs-Dateisystem auf dem Ubuntu-Server genutzt wird. Btrfs erlaubt die Erstellung von Snapshots bei laufendem Betrieb, die kaum Speicherplatz kosten. In Kombination mit einem periodischen Snapshot vor dem Update kann man jedes Update gefahrlos ausprobieren und bei Problemen sofort zurückrollen. Das ist einer der komfortabelsten Wege, Upgrades zu überleben. Allerdings sollte man bedenken, dass Btrfs-Snapshots kein externes Backup ersetzen. Ein RAID-Defekt oder ein Stromausfall kann beide, das Original und die Snapshots, gleichermaßen betreffen.

Monitoring und Logs: Das Ohr an der Schiene

Um den Zustand einer Nextcloud-Instanz zu beurteilen, muss man nicht nur die Weboberfläche beobachten, sondern auch in die Logdateien schauen. Die relevanten Daten liegen in /var/log/apache2/ oder unter /var/log/nginx/ sowie in den Nextcloud-eigenen Logs, die im Datenverzeichnis gespeichert werden. Das Log-Format von Nextcloud ist gut lesbar, aber es schwillt bei größeren Installationen schnell an. Es ist ratsam, ein Logging-Werkzeug wie Fail2ban oder einen Log-Agenten einzurichten, der nach bestimmten Mustern sucht.

Das Monitoring der Systemressourcen gehört ebenfalls zu den Aufgaben, die man nicht unterschätzen sollte. Nextcloud ist speicherhungrig, und ein Server mit 2 Gigabyte RAM kann schnell an seine Grenzen stoßen, wenn der PHP-Prozess mehrere Module lädt und Redis hinzukommt. Ein Blick auf htop sollte Ihnen bereits sagen, ob der Server ruhig unter Last arbeitet oder im Dauerstres. Wer noch einen Schritt weitergehen will, nutzt ein Werkzeug wie Netdata oder Prometheus, um die Leistung im Zeitverlauf zu beobachten. Wichtig ist, dass Sie nicht nur die durchschnittliche CPU-Last messen, sondern auch die Auslastung des Speichers und die Anzahl der PHP-Prozesse. Eine Nextcloud, die bei jedem Aufruf eine große Anzahl von PHP-FPM-Prozessen spawnet, kann einen harmlos wirkenden Server in die Knie zwingen.

Einer der häufigsten Fehler im Betrieb ist die unvollständige Konfiguration der Hintergrund-Jobs. Wenn Sie in den Einstellungen sehen, dass Cron seit Tagen nicht gelaufen ist, dann stimmt etwas mit dem Scheduler nicht. Das wirkt sich schleichend auf die Leistung aus, denn die Dateien, die hochgeladen werden, sind nicht sofort im Dateisystem indexiert. Suchen nach Dateien dauern dann deutlich länger als nötig. Es gibt ein simples Kommando, um die Queue zu leeren:

sudo -u www-data php occ background:cron --verbose

Damit lässt sich feststellen, ob der Mechanismus funktioniert. Wenn nicht, sollte man den systemd-Timer oder die Crontab überprüfen. Es sind die kleinen Dinge, die den Unterschied zwischen einer reibungslos laufenden Cloud und einer ständig kränkelnden Installation machen.

Benutzerverwaltung und direkte Dateizugriffe

Die Benutzerverwaltung in Nextcloud wirkt auf den ersten Blick einfach, hat aber ihre Tücken. Im Standardfall sind die Benutzer in der Nextcloud-Datenbank gespeichert. Wer eine Organisation betreibt, möchte jedoch häufig die Benutzer aus der bestehenden LDAP- oder Active-Directory-Anbindung übernehmen. Die Integration von LDAP ist eine der Stärken von Nextcloud, aber sie erfordert ein genaues Verständnis der Verzeichnisstruktur. Die Zuordnung von Filtern und Attributen ist nicht schwer, aber es ist leicht, sich zu verwirren, wenn verschiedene OU- und Gruppenstrukturen existieren. Ein Tipp: Zuerst die LDAP-Suche in der Vorschau testen, dann erst aktivieren. Und besser nicht vergessen, die Gruppenbereiche zu beschränken, damit nicht alle Adressen der Welt in der Cloud landen.

Ein weiteres Thema ist der direkte Dateizugriff. Nextcloud kann per WebDAV auf die Daten zugreifen, was die Anbindung an den Kartendateimanager erleichtert. Unter Windows funktioniert das über den Explorer, unter Ubuntu über den Dateimanager Nautilus. Wenn diese Verbindung langsam ist, liegt es oft an der WebDAV-Konfiguration des Webservers. Apache ist hier meist deutlich schneller als Nginx, aber beide können es richtig konfiguriert sein. Wichtig ist, dass die PHP-Memory-Limits nicht zu niedrig sind. Sonst werden große Dateien abrupt abgebrochen, und der Benutzer schreibt böse Mails an den Support – also an Sie.

Auch das Hochladen großer Dateien ist ein Klassiker: PHP hat standardmäßig eine Begrenzung von 2 MB für Uploads. Diese Einstellung müssen Sie in der php.ini anpassen, wenn Sie mehr erlauben wollen. Die Parameter upload_max_filesize und post_max_size sollten auf einen Wert gesetzt sein, der im Rahmen der Hardware liegt. Eine 100-MB-Datei in die Cloud zu laden, sollte möglich sein. Wer dauerhaft mit 10-GB-Dateien arbeitet, sollte jedoch über das Konzept der Datei-Upload-Streams nachdenken. Nextcloud hat dafür mittlerweile eine Methode, die die Serverressourcen schont. Aber anfangs ist es einfacher, die Limits schrittweise zu erhöhen und zu testen.

Ein Blick in die Zukunft

Nextcloud hat in den letzten Jahren bewiesen, dass eine Open-Source-Plattform nicht nur mit proprietären Angeboten mithalten kann, sondern oft auch funktionale Vorteile bietet. Der Fokus auf Datenschutz und die Möglichkeit, alle Komponenten im eigenen Rechenzentrum zu betreiben, macht die Plattform für Unternehmen in Datenschutz-relevanten Branchen ungemein attraktiv. Doch auch die Technik entwickelt sich rasant. Die Entwickler arbeiten an einer engeren Integration von Talk mit der Benutzerverwaltung, an der Verbesserung der Datei-Expert-Ansichten und an einer besseren Unterstützung für synchronisierte Ordner. Das kann man alles beobachten – und man sollte es auch tun, denn die Roadmap der Software ist lang.

Für Admins, die mit Ubuntu arbeiten, heißt das: Nextcloud ist eine Daueraufgabe. Sie ist keine Software, die man einmal einrichtet und dann vergisst. Sie ist ein System, das sich an die Bedürfnisse der Nutzer anpasst, das gepflegt, gehärtet und regelmäßig aktualisiert werden muss. Aber es ist eine Aufgabe, die sich lohnt. Nicht zuletzt, weil man am Ende eine Cloud betreibt, die nicht von einem Datenschutz-Vertrag mit einem US-Konzern abhängt, sondern von der eigenen Sorgfalt. Und das ist mehr, als man von vielen kommerziellen Produkten sagen kann.

Also: Benutzen Sie Nextcloud auf Ubuntu, aber vergessen Sie nicht, dass das eine Symbiose ist, die Aufmerksamkeit braucht. Der Server ist das Fundament, die Software ist der Rahmen – und die Administration ist die Hand, die das Ganze zusammenhält. Es gibt Zeiten, da fliegen einem die Probleme um den Kopf: Ein Update schlägt fehl, ein Benutzer beschwert sich über eine fehlende Datei, der Webserver stellt sich quer. Aber es gibt auch diese Momente, in denen man mit einem Kaffee auf dem Schreibtisch auf das Dach der kleinen, selbstgebauten Cloud schaut und denkt: Das ist meins. Und kein Anbieter der Welt kann es mir nehmen.