Nextcloud sauber installieren und zuverlässig betreiben

Es gibt Sätze, die man in IT-Abteilungen nur mit einer gewissen Vorsicht ausspricht. „Wir stellen unsere Cloud auf Nextcloud um“ gehört dazu. Das liegt nicht daran, dass Nextcloud ein schlechtes Produkt wäre – im Gegenteil. Es liegt daran, dass die Umstellung auf eine selbst gehostete Plattform nun einmal Arbeit bedeutet. Und Arbeit ist bekanntlich das größte Hindernis in Projekten, die nicht unmittelbar den nächsten Feature-Release ankündigen.

Dabei ist der erste Schritt, die Installation, oft der leichteste. Wer einmal verstanden hat, wie die Bausteine zusammenspielen, der verliert auch später nicht die Nerven, wenn mal etwas nicht auf Anhieb funktioniert. Die eigentliche Herausforderung beginnt nach dem ersten Login: Updates, Backups, Performance, App-Auswahl, Sicherheit. Und genau darum soll es in diesem Artikel gehen – um Nextcloud als Ganzes, mit einem deutlichen Schwerpunkt auf der Frage, wie man Nextcloud sauber installiert, ohne sich dabei in Details zu verlieren, die nur in der Theorie bestehen.

Wer jetzt denkt, das sei wieder so eine Anleitung für Schnellstarter, der sei beruhigt: Im Folgenden geht es nicht darum, irgendwelche Befehle stumpf abzutippen, sondern darum, die Zusammenhänge zu verstehen. Denn Nextcloud ist keine einfache Webanwendung, sondern ein Ökosystem aus PHP, Datenbanken, Webservern, Caching-Diensten und unzähligen Apps, die alle harmonieren müssen. Und diese Harmony ist fragil.

Warum Nextcloud? Und warum nicht einfach Google Drive?

Die Frage nach dem Warum stellt sich heute anders als noch vor ein paar Jahren. Früher war das Argument für selbst gehostete Software oft ein ideologisches: Man wollte eben nichts bei Dritten speichern, keine Datenprofile füttern, keine Abhängigkeit zu US-Konzernen aufbauen. Heute ist es oft ein handfestes Compliance-Thema. Die DSGVO hat das Bewusstsein dafür geschärft, dass Datenströme kontrollierbar sein müssen. Und spätestens seit dem Urteil zum Privacy Shield wissen auch Unternehmen, die sich nicht groß mit Juristerei beschäftigen wollen, dass ein „Cloud-Umzug“ nach Amerika rechtlich nicht mehr ohne Weiteres tragfähig ist.

Nextcloud bietet hier eine Möglichkeit, die viele als Ausweg sehen: die eigene Cloud, betrieben auf dem eigenen Server oder bei einem lokalen Rechenzentrum. Dass die Software dabei Open Source ist, spielt für viele Entscheider eine untergeordnete Rolle – es ist eher ein Hygienefaktor. Entscheidend ist, dass der Betrieb in der eigenen Hand liegt. Und dass man nicht auf Gedeih und Verderb von den AGBs eines Anbieters abhängig ist, der morgen die Preise erhöht oder Funktionen streicht.

Interessant ist dabei, dass Nextcloud ursprünglich ein Fork von ownCloud ist. Das ist 2016 passiert, und wer die Hintergründe kennt, weiß, dass dieser Schritt viele Beteiligte in eine unangenehme Lage brachte. Fakt ist: Das Projekt hat sich prächtig entwickelt. Mit dem Hub-Modell liefert das Unternehmen heute weit mehr als eine Dateiablage: Nextcloud Talk, Nextcloud Office, Groupware, Integration von externen Speichern – das alles sind Bausteine, die in alten ownCloud-Zeiten kaum denkbar gewesen wären.

Für Administratoren bedeutet das aber auch: Der Funktionsumfang ist gewachsen, und mit ihm die Komplexität. Eine Nextcloud-Instanz mit zehn Benutzern ist prinzipiell einfach zu betreiben. Eine Instanz mit hundert Benutzern, eingebunden in eine Active-Directory-Umgebung, mit OnlyOffice oder Collabora Online, mit externen Speichern und verschlüsselten S3-Buckets, ist ein anspruchsvolles Stück Infrastruktur, das man nicht mal eben am Freitagmorgen aufsetzt.

Die Qual der Wahl: Installationswege im Überblick

Bevor man mit der eigentlichen Installation beginnt, muss man sich für einen Weg entscheiden. Wer danach sucht, „Nextcloud installieren“ zu können, wird schnell feststellen, dass es nicht den einen offiziellen Weg gibt. Es gibt mindestens fünf sinnvolle Varianten, und jede hat ihre Vorzüge und Macken.

Die erste und bequemste ist der offizielle Web-Installer, der auf nextcloud.com/install bereitsteht. Man lädt eine einzelne PHP-Datei herunter, legt sie auf den Webserver und ruft sie im Browser auf. Das Skript prüft die Umgebung, lädt die benötigten Dateien nach und führt einen Assistenten durch die Einrichtung. Das klingt verlockend, hat aber einen Haken: Das Skript setzt voraus, dass der Server bereits sauber konfiguriert ist – PHP-Module, Datenbank, Webserver, Konto-Rechte. Wer hier blind draufklickt, landet oft in einem Zustand, in dem Nextcloud zwar installiert ist, aber nicht richtig funktioniert. Das gilt besonders für Umgebungen mit Nginx, denn der Web-Installer erwartet gewisse `.htaccess`-Regeln, die Nginx nicht interpretiert.

Die zweite Variante ist die manuelle Installation. Man entpackt das heruntergeladene ZIP-Archiv in das Webverzeichnis, legt die Datenbank an, passt die Webserver-Konfiguration an und führt einige Konsolenbefehle aus. Das klingt methodisch, ist es auch, und es gibt einem maximale Kontrolle. Für Neulinge ist es aber eine steile Lernkurve, gerade wenn etwas mit den Rechten nicht stimmt oder ein PHP-Modul fehlt.

Dann gibt es noch die Docker-Welt. Das offizielle nextcloud-Image auf Docker Hub zieht sich leicht in Betrieb ein. Aber Achtung: In vielen offiziellen Konfigurationen steckt ein Apache mit PHP-FPM, und wenn man nicht aufpasst, manövriert man sich in eine Falle, weil die Container auf Ebene der Datenbank oder des Reverse-Proxy spezielle Eigenheiten aufweisen. Ich empfehle, statt des puren Images eine Docker-Compose-Konfiguration zu verwenden, die Redis, Datenbank und Nextcloud sauber verzahnt. Dafür braucht man ein wenig Einarbeitung, aber es ist der Weg, der später am wenigsten Überraschungen bereithält.

Seit einiger Zeit gibt es außerdem das Modell „Nextcloud All-in-One“ (AIO). Das ist ein Docker-basiertes Gesamtpaket, das von den Entwicklern selbst gepflegt wird und einen Großteil der Umgebung automatisch aufsetzt: Reverse-Proxy, Datenbank, Redis, Collabora oder OnlyOffice inklusive Fail2ban, Netdata und Imaginary. Es ist ein Kompromiss aus Bequemlichkeit und Flexibilität. Wer ein schnelles Testsystem braucht oder einen kleinen Familienverbund betreibt, für den ist AIO eine echte Alternative. Wer aber Nextcloud in eine bestehende, stark regulierte Infrastruktur integrieren muss, der wird mit dem Alleinstellungsanspruch von AIO nur bedingt glücklich werden, weil der Container-Stack gerne die Kontrolle übernimmt.

Nicht unerwähnt bleiben soll der Snap. Nextcloud gibt es als Snap-Paket, das alle Abhängigkeiten bündelt und die Installation auf Ubuntu-Systemen deutlich vereinfacht. Der Preis dafür ist eine weitgehende Verkapselung – und die Tatsache, dass viele Administratoren Snaps mangels durchsichtiger Update-Konfiguration misstrauen. Der Snap bringt sogar ein Auto-Update mit, das man nicht immer zuverlässig abstellen kann. Wer einen möglichst standardnahen Betrieb haben will, sollte also eher zu Docker oder zur manuellen Installation greifen.

Planung schlägt Aktion: Voraussetzungen schaffen

Bevor ich zu den Details der Installation komme, noch ein paar Worte zur Grundsatzentscheidung: Welche Hardware brauche ich? Wie viel Speicher? Und was kostet mich das Ganze?

Wer Nextcloud für dreißig Benutzer betreibt, sollte nicht mit 1 GB RAM geizen. Die Empfehlung lautet, grob gerechnet, 2–4 GB RAM für kleine Installationen, 8 GB und mehr, sobald Talk oder OnlyOffice im Spiel sind. Der Prozessor ist selten der Flaschenhals; wichtiger sind schnelle Datenträger und eine durchdachte Speicher-Layout. Nextcloud legt die Dateien im Verzeichnis data/ ab, und diese Verzeichnis sollte nicht aus einer kleinen Systemplatte bestehen. Aber das mag jeder für sich entscheiden.

Viel wichtiger als die Hardware ist die Frage des Einsatzes. Soll die Nextcloud-Instanz von außen erreichbar sein? Dann braucht es eine Domain, ein SSL-Zertifikat und einen sauberen Reverse-Proxy. Soll sie nur im internen Netz laufen? Dann ist der Konfigurationsaufwand geringer, aber man muss sich überlegen, ob die Clients später problemlos per VPN zugreifen können.

Ein Aspekt, der viel zu häufig untergeht, ist das Backup-Konzept. Nextcloud ist schnell installiert, aber die Daten – und dazu gehören nicht nur die Nutzerdateien, sondern auch die Datenbank und die gesamte Konfiguration – müssen gesichert werden. Ich habe schon mehrfach erlebt, wie jemand nach einem fehlgeschlagenen Update die Wiederherstellung aus einem mittelalten Dump versuchte und dabei feststellte, dass die Einstellungen in der config.php nirgendwo dokumentiert waren. Aus diesem Grund: Der Abschnitt „Backups“ muss bei der Planung eine führende Rolle spielen, nicht nachrangig.

Dazu kommt die Wahl des Betriebssystems. Nextcloud läuft auf vielen Systemen, aber der größte Teil der Dokumentation bezieht sich auf Ubuntu oder Debian. Andere Distributionen funktionieren ebenso, verlangen aber oft ein paar Extra-Handgriffe, weil Pfade, Paketnamen oder Systemd-Konfigurationen anders sind. Wer es sich einfach machen will, sollte zu Ubuntu 24.04 LTS greifen. Das ist kein Zeichen von Phantasielosigkeit, sondern von Pragmatismus – die Community-Tutorials und Troubleshooting-Foren sind voll von Beispielen, die auf dieser Plattform beruhen.

Ein konkreter Weg: Manuelle Installation mit Nginx, PostgreSQL und Redis

Ich will jetzt einen Weg durchgehen, der sich in der Praxis bewährt hat: die manuelle Installation auf einem frischen Ubuntu-Server mit Nginx, PostgreSQL und Redis. Dieser Weg ist nicht der einzige, aber er erlaubt es, die einzelnen Komponenten zu verstehen, und er hinterlässt ein System, das sich gut betreuen lässt.

Zunächst braucht der Server ein funktionierendes DNS-Setup. Die Domain, zum Beispiel cloud.example.com, sollte auf die IP-Adresse des Servers zeigen. Ein allzu häufiger Fehler ist, dass später die Nextcloud zwar läuft, aber der Browser eine Warnung wegen falscher Domain zeigt – dann hilft meist die Einstellung trusted_domains in der config.php.

Die ersten Schritte auf der Kommandozeile betreffen die Systemupdates: apt update && apt upgrade sollte vor jeder Installation sitzen. Danach installiert man die benötigten Pakete. Neben Nginx und PHP – in der aktuellen Version 8.3 – gehört die PostgreSQL-Datenbank sowie der Redis-Server dazu. Dazu kommen etliche PHP-Erweiterungen, von denen Nextcloud ein Dutzend oder mehr braucht: php8.3-cli, php8.3-fpm, php8.3-gd, php8.3-imagick, php8.3-intl, php8.3-mbstring, php8.3-pgsql, php8.3-zip, und wenn man Wert auf Vollständigkeit legt, auch php8.3-apcu, php8.3-bcmath und php8.3-gmp.

Der nächste Schritt ist das Anlegen der Datenbank. Ich verwende hier bewusst PostgreSQL, weil es bei gleichzeitigen Zugriffen und größeren Installationen etwas robuster arbeitet als MySQL/MariaDB. Wer sich mit MariaDB besser auskennt, kann dieses durchaus auch nehmen. Der Befehl sudo -u postgres psql öffnet die Datenbankkonsole. Dann legt man eine Datenbank namens nextcloud an, einen Benutzer mit einem sicheren Passwort und gibt diesem die Rechte. Das ist ein Schritt, den viele gern überspringen, wenn sie Nextcloud häufig als Test installieren – aber für den späteren Produktivbetrieb ist es entscheidend, dass die Datenbank nicht mit den höchsten Privilegien läuft.

Danach entpackt man das offizielle Nextcloud-Archiv, das man vorab auf /var/www kopiert hat. Also: cd /var/www && tar xjf latest.tar.bz2. Eigentümer des Verzeichnisses muss der Nutzer des Webservers sein, bei Ubuntu zumeist www-data. Ein wichtiger Befehl lautet chown -R www-data:www-data /var/www/nextcloud. Dann noch einmal die Berechtigungen prüfen: Liest der Web-Server die Dateien? Hat er Schreibrechte im data-Verzeichnis? Sonst scheitert die Installation schon an der Erstellung der Konfigurationsdatei.

Jetzt kommt der Webserver ins Spiel. Für Nginx braucht es eine Server-Konfiguration, die PHP-FPM anbindet und Nextcloud dauerhaft verfügbar macht. Der Aufbau ist im Wesentlichen ein server-Block mit dem SSL-Zertifikat, einer Weiterleitung von HTTP auf HTTPS und ein paar speziellen Regeln für Nextcloud. Man sollte nicht versuchen, die Konfiguration aus dem Kopf zu schreiben; die Datei nginx.conf aus der Nextcloud-Dokumentation liefert eine gute Vorlage. Wichtig ist, dass die PHP-FPM-Konfiguration auf das richtige socket zeigt. Viele Fehler entstehen hier durch falsche Pools oder durch ein client_max_body_size, das für große Dateien zu klein eingestellt ist.

Dann geht es an die eigentliche Installation. Man ruft im Browser die Domain auf und wird durch den Einrichtungsassistenten geführt. Diesen kann man auch per Kommandozeile anstoßen, womit man den Ablauf etwas besser kontrollieren kann: sudo -u www-data php occ maintenance:install --database=shard1 --database-name=nextcloud --database-user=nextcloud --database-pass=geheim --admin-user=admin --admin-pass=einSichereresPasswort. Wer diesen Befehl nutzt, muss anschließend noch die trusted_domains setzen, die beim Web-Installer teils automatisch gesetzt werden. In der config.php trägt man die eigene Domain in das Schlüssel-Array unter trusted_domains ein; der Standardwert localhost ist sonst das einzige erlaubte Ziel, und die Installation zeigt Fehlermeldungen.

Danach sind ein paar Einstellpflichten zu erledigen. Nextcloud läuft ohne Redis, aber mit Redis wird das Locking der Dateien und der Cache deutlich besser. In der config.php werden die Redis-Server-Daten eingetragen, etwa so:

'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => [
    'host' => 'localhost',
    'port' => 6379,
],

Außerdem sollte man einen Hintergrund-Job für die Verarbeitung von Aufgaben einrichten. Standardmäßig setzt Nextcloud auf den AJAX- oder Webcron-Modus, was bei kleinen Installationen ok ist, bei wachsenden aber Probleme bereitet. Besser ist ein echter Cronjob, der jede fünf Minuten den Befehl php -f occ cron.php ausführt. Die Anlage erfolgt über die Crontab des Benutzers www-data:

*/5 * * * * su -s /bin/sh -c 'php /var/www/nextcloud/cron.php' www-data

Wenn man das nicht tut, läuft Nextcloud irgendwann in Verzögerungen, weil zum Beispiel das Speichern von Metadaten oder das Versenden von E-Mails am ausgebliebenen Cron hängt.

Die Docker-Variante: Nextcloud mit Compose betreiben

Die manuelle Installation ist nicht der einzige Weg, wie gesagt. Und für viele ist Docker die elegantere Lösung, gerade wenn man den Server ohnehin containerisiert. Ich will die Docker-Variante hier nicht ausführlich auseinandernehmen, aber ein paar Punkte sind erwähnenswert, weil sie immer wieder zu Verwirrung führen.

Die oberste Datei in einem Docker-Setup ist ein docker-compose.yml, in dem die Dienste definiert werden. Üblich ist ein Stack aus Nextcloud-Image, PostgreSQL oder MariaDB, Redis und einem Reverse-Proxy wie Traefik oder Nginx Proxy Manager. Wichtig ist, dass die Datenvolumina sauber gemappt sind: Das nextcloud-Image speichert die Daten unter /var/www/html, und genau dieses Verzeichnis muss persistiert werden. Wer das vergisst, erlebt nach dem nächsten Container-Recreate ein böses Erwachen, weil die Instanz die Konfiguration vergessen hat.

Es ist auch wichtig, die Umgebungsvariablen im Compose-File richtig zu setzen. Wer Backups einspielen will, sollte vermeiden, die Instanz mit laufendem Container direkt zu kopieren – die Datenbank ist nicht in sich konsistent, wenn sie während des Kopierens beschrieben wird. Also: Container anhalten, oder besser, einen Dump der Datenbank erstellen, die Dateien sichern und dann alles zusammen zurückspielen.

Ein weiterer Stolperstein ist der Betrieb hinter einem Reverse-Proxy. Nextcloud muss dann wissen, dass die eingehenden Verbindungen bereits über TLS laufen und dass die Client-IP hinter dem Proxy von einem vertrauenswürdigen System stammt. Dafür setzt man in der config.php die Werte overwriteprotocol => 'https' und trusted_proxies => [...]. Ohne diese Einstellung kann Nextcloud keine korrekten Weiterleitungen und relativ geschützte Seiten erzeugen, und die Clients beschweren sich mit „Sie haben über einen nicht vertrauenswürdigen Domainnamen aufgerufen“ – einer der häufigsten Fehler überhaupt.

Ersteinrichtung: Mehr als ein Admin-Passwort

Sobald die Installation durch ist, meldet man sich als Admin an. Das Erste, was man tun sollte, ist die Erstellung von Benutzerkonten – oder besser: die Anbindung eines bestehenden LDAP- oder Active-Directory-Verzeichnisses. Das kann über die passende App geschehen, die man im App-Store von Nextcloud findet. Dabei zeigt sich schnell, wie gut sich Nextcloud in bestehende Infrastrukturen einbettet. Die Benutzerverwaltung ist sauber, aber anfangs ein wenig unübersichtlich, weil man zwischen Gruppen, Quota-Einstellungen und externen Speicherberechtigungen unterscheiden muss.

Für die alltägliche Nutzung sollte man die Standard-Apps sichten. Nextcloud enthält eine Reihe von vorinstallierten Apps, die nicht jeder braucht. Wenn man etwa die Talk-App nicht nutzt, kann man sie deaktivieren – das spart Ressourcen und reduziert die Angriffsfläche. Gleiches gilt für Apps wie „Fotos“, „Kalender“ oder „Kontakte“, die zwar nützlich sind, aber je nach Nutzungsprofil auch in den Hintergrund treten. In einer Firmenumgebung sind Kalender, Adressbuch und die Integration von Online-Office-Servern aber fast unverzichtbar.

Ein interessanter Aspekt ist die freie Wahl des Office-Produkts: Entweder man bindet Collabora Online an, das Nextcloud sehr ähnlich ist und in Docker leicht betrieben werden kann, oder man setzt auf OnlyOffice, das mehr Funktionen bietet, aber eine zusätzliche Lizenz für kommerzielle Nutzung ins Spiel bringt. Wer nur ab und zu ein Dokument im Browser betrachten möchte, kann auch die in Nextcloud integrierte Text-App nutzen, die ohne extra Server auskommt. Die Erfahrung zeigt allerdings: Sobald eine Gruppe von Benutzern regelmäßig Dokumente bearbeitet, wird die Installation eines Dokumenten-Servers unumgänglich. Das ist kein Luxus, sondern ein realistischer Bedarf.

Betrieb und Wartung: Die Pflichttermine eines Administrators

Die Installation ist abgeschlossen, der erste Sync läuft, und alles scheint fine. Jetzt beginnt die eigentliche Arbeit. Nextcloud erscheint in regelmäßigen Abständen mit neuen Versionen, die Sicherheitsupdates und neue Funktionen enthalten. Die Aktualisierung ist ein heikler Moment, denn Upgrades schlagen nicht immer fehlerfrei durch, besonders wenn Apps Drittentwickler im Spiel haben. Deshalb gilt die goldene Regel: Vor jedem Update ein Backup der Datenbank und der Dateien erstellen.

Das Backup sollte niemals improvisiert sein. Ein typisches Setup verlangt ein Dump der PostgreSQL-Datenbank mit pg_dump und parallel dazu eine Sicherung des data/-Verzeichnisses sowie der config.php. Eine Option ist, den Datenbestand über rsync auf einen anderen Server zu spiegeln und den PostgreSQL-Dump in denselben Zielort zu legen. Für den Notfall muss die Wiederherstellung vorher einmal geübt werden; das klingt trivial, wird aber in der Realität allzu häufig vergessen. Wenn dann der Ernstfall eintritt, stehen alle da wie der berühmte Ochs’ vorm Berg.

Was die regelmäßige Prüfung angeht, sind die Logs das wichtigste Instrument. Nextcloud schreibt in das Verzeichnis data/ Logbuch-Einträge, die man entweder im Admin-Interface anschauen oder via occ log:file einschlägig auslesen kann. Auffällig sind neben Fehlermeldungen auch Warnungen zum Speicherplatz, zum Caching und zur PHP-Konfiguration. Der Befehl sudo -u www-data php occ status liefert den Zustand der Instanz und die Version. Wer es genauer will, kann die Vorschläge aus dem Admin-Cockpit befolgen; dort scannt Nextcloud regelmäßig Fehlkonfigurationen und weist auf veraltete PHP-Module hin.

Zur Performance gehört auch die richtige Einstellung der PHP-FPM-Pools. Bei kleinen Instanzen reicht ein einzelner Pool, bei vielen parallelen Zugriffen sollte man die Anzahl der Worker erhöhen. Ein langsamer Dienst kann aber auch an einer unzureichenden Opcache-Konfiguration liegen. Die Einstellung opcache.enable=1 und ein ordentliches Speicherlimit sind die Mindestanforderung. Ich habe einmal erlebt, wie eine Nextcloud-Instanz nach dem Aktivieren des Opcache um den Faktor drei schneller wurde, nur weil die Cache-Dateien nicht mehr bei jedem Request aus PHP interpretiert wurden.

Redis habe ich bereits erwähnt, und es lohnt sich, noch einmal darauf zu insistieren: Ohne Redis läuft die Instanz, aber die Synchronisation mehrerer Clients leidet. Das liegt am Datei-Locking, das bei reinem Cluster-Setup und mehreren Webservern nur mit einem gemeinsamen Memcache funktioniert. Redis ist hier die unkomplizierteste Wahl und in der Standard-Distribution schnell installiert. In der config.php sollte zudem 'filelocking.enabled' => true gesetzt sein, auch wenn dies bei neueren Versionen ab Werk aktiv ist.

Sicherheit: Ein Thema mit vielen Facetten

Nextcloud selbst ist eine sicherheitsfreundliche Software, aber nur, wenn sie richtig betrieben wird. Die Härtung beginnt beim Betriebssystem. Ein separater Benutzer für den Webserver ist eine Basismaßnahme, ebenso die Einrichtung einer Firewall, die nur die Ports 80 und 443 sowie eventuell SSH freigibt. Wer darunter auch noch Fail2ban einrichtet, kann viele Brute-Force-Angriffe im Keim ersticken. Nextcloud bringt zwar schon einen eigenen Schutz gegen zu viele Anmeldeversuche mit, aber der kombiniert mit Fail2ban ist deutlich effektiver.

Die Admin-Konten sollten zwingend mit einer Zwei-Faktor-Authentifizierung abgesichert werden. Nextcloud unterstützt hierbei TOTP, also die üblichen Authenticator-Apps, und für einzelne Benutzer auch WebAuthn-Lösungen mit Hardware-Schlüsseln. Das ist keine Schikane, sondern heute schlichte Notwendigkeit, wenn die Cloud von außen erreichbar ist. Die Benutzer mögen anfangs maulen, aber ein einmal eingerichteter Fluss ist schnell erklärt.

Interessant ist dabei, dass Nextcloud selbst die Standard-Daten nicht verschlüsselt ablegt. Die Übertragung über das Netz läuft dank TLS, aber die Dateien liegen auf dem Server im Klartext. Wenn man eine Ende-zu-Ende-Verschlüsselung braucht, müsste man Server-Server-Encryption aktivieren oder spezielle Apps nutzen. Das ist aber nicht die Regel, denn viele Anwender wollen, dass der Admin im Notfall die Dateien wiederherstellen kann – sonst ist das Backup-Konzept gefährdet. Ich will die Debatte nicht an dieser Stelle ausführen, aber erwähnt sei, dass „Verschlüsselung“ in Bezug auf Nextcloud keineswegs einheitlich geregelt ist: Die externe Speicherung in S3-Buckets, die E2E-Verschlüsselung und die Transportverschlüsselung sind drei Paar Stiefel.

Bei der DSGVO-Betrachtung muss man differenzieren. Nextcloud kann so betrieben werden, dass alle Daten im eigenen Unternehmen oder im Rechenzentrum eines deutschen Providers liegen. Dann gelten die üblichen Auftragsverarbeitungsverträge, sofern man nicht selbst der „Herr der Daten“ ist. Die Software selbst verursacht keine Datenverarbeitung außerhalb des Servers, wenn man nicht nach außen gerichtete Apps wie Karten oder Integrationsdienste verwendet. Insofern ist Nextcloud ein Favorit für Datenschutzbeauftragte – sofern die Instanz sauber gepflegt wird.

Typische Stolpersteine nach der Installation

Es gibt eine Reihe von Problemen, die immer wieder auftauchen, nachdem Nextcloud installiert wurde. Der häufigste Fehler ist die bereits genannte Domain-Problematik: Man kommt per IP-Adresse auf die Seite, aber sobald man eine Domain einträgt, meldet Nextcloud „Sie sind über einen nicht vertrauenswürdigen Domainnamen aufgerufen“ – nicht selten, weil das trusted_domains-Array nicht angepasst wurde. Manche machen dann den Fehler, in der config.php falsche Werte einzutragen, wie etwa http://cloud.example.com anstatt nur den Hostnamen ohne Protokoll. Nach einer Einstellung erst die Zugriffsrechte der config.php prüfen, sonst kann der Webserver sie nicht schreiben.

Ein anderes Phänomen ist die Fehlermeldung in Bezug auf den Kalender oder das Adressbuch. Die Synchronisation von CalDAV/CardDAV schlägt fehl, weil der Webserver die Pfade falsch überträgt oder weil der Reverse-Proxy die Location-Header frisst. Auch hier helfen die trusted-proxies und die Korrektur der overwrite-Parameter. Manchmal liegt es auch an einer veralteten App, die auf der Serverseite noch auf alte DAV-Pfade lauscht. Dann hilft oft ein Update aller Apps, was im Admin-Bereich mit ein paar Klicks erledigt ist.

Ein leidiges Thema sind große Dateien. Nextcloud kann sie prinzipiell synchronisieren, aber der Datenbankspeicherplatz für die Chunk-Uploads muss groß genug sein, und der Webserver das benötigte Limit setzen. Wenn der Upload ab einer gewissen Dateigröße stillschweigend abgebrochen wird, liegt es fast immer an client_max_body_size beim Nginx. PHP hat ohnehin ein Standardlimit von 2 MB oder 8 MB, das man hochschrauben muss. Manchmal muss auch die max_execution_time erhöht werden, obwohl moderne Systeme bei Chunk-Uploads eigentlich nicht mehr davon betroffen sind.

Auch der Sync-Client selbst kann manchen Ärger bereiten. Wenn er bei Änderungen an einer Datei nicht mehr reagiert, kann der Cache auf dem Client helfen. Es ist aber auch bekannt, dass der Client bei Verwendung des Windows-Dateipfads mal einen Fehler wirft, wenn Dateien Sonderzeichen im Namen haben. Die bekannten Begrenzungen von FAT/NTFS gelten weiterhin. Hier muss man als Administrator eben die Grenzen des Produkts erklären und die Benutzer nicht allein lassen.

Das Ökosystem: Ist Nextcloud die eierlegende Wollmilchsau?

Der Blick über den Tellerrand lohnt. Nextcloud hat in den vergangenen Jahren ein beeindruckendes App-Ökosystem aufgebaut, das von Dateisynchronisation und Groupware über Videokonferenzen bis hin zur Integration von externen Speichern reicht. Dabei zeigt sich aber auch: Nicht alles, was im App-Store angeboten wird, ist für den Unternehmenseinsatz geeignet. Es gibt Apps, die über Jahre hinweg kaum gewartet wurden, und es gibt Anbieter, die gegen Bezahlung bestimmte Funktionen aktivieren. Das ist legitim, aber man sollte sich die Pflege der Apps vor einem produktiven Einsatz anschauen.

Der Vergleich zu anderen Lösungen fällt nicht immer zu Nextclouds Gunsten aus. Wer ausschließlich Dateien synchronisieren will, ist mit Seafile möglicherweise besser bedient – Seafile ist schneller, ressourcenschonender und bietet ebenfalls Client-seitige Verschlüsselung. Aber Seafile kann nicht mit Modulen für Online-Kollaboration oder Talk aufwarten. Auch Syncthing ist eine Überlegung wert, wenn man dezentrale Ordner ohne Serverstruktur bevorzugt. Aber Syncthing ist keine Cloud, die man zentral verwalten kann, und es fehlt die Einbindung in Enterprise-Strukturen.

Nextcloud hat also das Alleinstellungsmerkmal der Breite. Diese Breite kann aber zur Belastung werden, weil jede zusätzliche Funktion die Angriffsfläche vergrößert und die Wartung erschwert. Wer Nextcloud einsetzt, muss sich dazu bekennen, Zeit in die Betreuung zu investieren. Das ist kein Projekt für einmalige Installation; es ist ein Dauerbetrieb, der in einen modernen IT-Alltag gehört – wie das Überwachen von Exchange oder das Patchen von Webservern.

Zwei Anbieter-Strategien: Community vs. Enterprise

Für Unternehmen stellt sich oft die Frage, ob die kostenlose Community-Version ausreicht oder ob sie zu Nextcloud Enterprise wechseln sollen. Die Enterprise-Version bringt Support-Leistungen, zusätzliche Apps und vor allem einen garantierten Wartungszeitraum. Für ein Unternehmen, das im Zweifelsfall auf einen Ansprechpartner angewiesen ist, ist das ein Argument. Andererseits ist die Community-Edition keineswegs nur ein Abfallprodukt; sie wird aktiv von der Kern-Community weiterentwickelt und ist für viele kleinere Betriebe mehr als ausreichend.

Auch die Lizenzfrage ist nicht so einfach. Nextcloud selbst nutzt hauptsächlich die AGPLv3, aber einige Enterprise-Apps stehen nicht unter dieser Lizenz. Das ist insofern relevant, als Unternehmen ihre Instanz gelegentlich als Teil eines Produkts weitergeben oder umbauen möchten. Die Grenzen sind hier klar gesetzt, ein kurzer Blick in die Lizenzbestimmungen vermeidet spätere Überraschungen.

Die Zukunft: mit Nextcloud in die Cloud?

Beim Blick in die Zukunft zeigt sich, dass Nextcloud längst nicht mehr nur als Software für Eigenbetreiber wahrgenommen wird. Auch viele Hosting-Unternehmen bieten Nextcloud als Managed Service an. Das nimmt dem einzelnen Administrator die Last der Installation und des Updates, aber es verändert auch das Verhältnis zur Souveränität: Die Daten liegen dann wieder irgendwo. Allerdings lässt sich in der Praxis feststellen, dass professionelle Hosting-Partner sich eher an Standards halten als mancher Selbstbetreiber, der seine Nextcloud auf einem alten Raspberry Pi im Keller betreibt.

Die Installation bleibt dennoch der Einstiegspunkt. Man sollte die Gelegenheit nutzen, um sich mit der Umgebung, den Dateien und den Logs vertraut zu machen. Eine Nextcloud, die man nicht selbst installiert hat, ist wie ein Haus, das man nicht gebaut hat – man wohnt darin, aber man weiß nicht, wo die Wasserleitung verläuft. Früher oder später bricht die Leitung, und dann hilft nur, die Wand aufzureißen. Also: Wer es ernst meint mit der eigenen Cloud, der sollte auch den Weg der Installation wählen, der einem die meisten Einblicke verschafft. Das ist nicht immer der bequemste, aber in der Regel der Lernförderlichste. Und genau darum geht es am Ende –, um das Verständnis für ein System, das wir täglich nutzen wollen.

In diesem Sinne: Viel Erfolg bei der eigenen Nextcloud-Instanz. Oder anders ausgedrückt: Möge die Cloud mit Ihnen sein – aber unter Ihrer Kontrolle.