Nextcloud mit Docker einrichten (All-in-One): die eigene Cloud
Nextcloud All-in-One per Docker einrichten: ein Mastercontainer, eine Weboberfläche, alle Dienste inklusive Office, Talk und Backup. Die eigene Cloud als Alternative zu Dropbox und Microsoft 365 auf Ihrem Server.
Geprüft am 14.10.2026 · für Nextcloud All-in-One 14.3.0
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Nextcloud All-in-One (AIO) ist die offizielle Installationsmethode für Nextcloud mit Docker. Ein einzelner Mastercontainer startet über den Docker-Socket alle weiteren Container: Nextcloud, PostgreSQL, Redis, den Webserver und auf Wunsch Office, Talk und das verschlüsselte Backup mit BorgBackup. Die Anleitung führt über die offizielle compose.yaml, das AIO-Interface sowie Backup und Wiederherstellung, getestet mit AIO v14.3.0 und Nextcloud 34.0.4.
Voraussetzungen
- Server: Linux auf x86_64 oder arm64, zum Beispiel Debian 12 oder Ubuntu 24.04, mit SSD.
- CPU und RAM: 2 Kerne und 4 GB RAM reichen für Nextcloud mit Imaginary, Talk oder Office. Laut AIO-Interface brauchen ClamAV, Volltextsuche oder Talk-Recording mindestens 3 GB, alle Zusatzdienste zusammen mindestens 5 GB RAM und 4 Kerne; das Projekt empfiehlt jeweils 1 GB mehr. Im Test belegte der Grundstack mit Imaginary im Leerlauf rund 520 MB RAM.
- Speicher: mindestens 40 GB für System und Container plus Platz für Ihre Dateien. Für das Backup eine zweite Platte oder ein entferntes Borg-Repository.
- Docker: Docker Engine mit Compose-Plugin aus den offiziellen Paketquellen. Die Snap-Variante von Docker unterstützt AIO nicht. Grundlagen: Docker Compose Grundlagen: Stacks sauber aufbauen.
- Domain und Ports: ein DNS-Eintrag (A oder AAAA, etwa
cloud.example.de), der auf den Server zeigt. Von außen erreichbar sein müssen 443/TCP (optional 443/UDP für HTTP/3), 80/TCP für das Zertifikat und 3478/TCP+UDP, falls Sie Talk nutzen. Port 8080 (AIO-Interface) geben Sie nicht ins Internet frei.
Schritt 1: Docker prüfen und compose.yaml anlegen
Prüfen Sie zuerst, dass Docker nicht als Snap installiert ist. Der Befehl darf nichts ausgeben:
docker --version
docker compose version
sudo docker info | grep "Docker Root Dir" | grep "/var/snap/docker/"
Legen Sie dann das Projektverzeichnis an und speichern Sie darin die compose.yaml. Die folgende Fassung entspricht der offiziellen Datei ohne die auskommentierten Optionen:
sudo mkdir -p /opt/nextcloud-aio
cd /opt/nextcloud-aio
sudo nano compose.yaml
name: nextcloud-aio
services:
nextcloud-aio-mastercontainer:
image: ghcr.io/nextcloud-releases/all-in-one:latest
init: true
restart: always
container_name: nextcloud-aio-mastercontainer
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- /var/run/docker.sock:/var/run/docker.sock:ro
network_mode: bridge
ports:
- "80:80"
- "8080:8080"
- "8443:8443"
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
Drei Werte dürfen Sie nicht ändern: den Containernamen nextcloud-aio-mastercontainer, den Volume-Namen nextcloud_aio_mastercontainer und den Mountpunkt /mnt/docker-aio-config. Updates des Mastercontainers und das integrierte Backup verlassen sich darauf. Das Tag :latest ist hier Absicht: AIO ist ein Kanal (alternativ :beta), die Versionen der eigentlichen Dienste steuert der Mastercontainer selbst.
| Eckdaten | Wert |
|---|---|
| Image | ghcr.io/nextcloud-releases/all-in-one:latest (Docker Hub: nextcloud/all-in-one) |
| Ports | 8080 AIO-Interface (selbstsigniert, nur per IP), 80 und 8443 Zertifikat und AIO-Interface per Domain, später 443 für Nextcloud |
| Volume | nextcloud_aio_mastercontainer (Konfiguration), weitere Volumes nextcloud_aio_* legt AIO selbst an |
| Wichtige Variablen | APACHE_PORT, APACHE_IP_BINDING, NEXTCLOUD_DATADIR, SKIP_DOMAIN_VALIDATION, TALK_PORT |
Verifizieren: docker compose config im Ordner /opt/nextcloud-aio gibt die Konfiguration ohne Fehlermeldung aus, und der Snap-Test oben liefert keine Zeile.
Schritt 2: Mastercontainer starten
cd /opt/nextcloud-aio
sudo docker compose up -d
sudo docker compose ps
Der Mastercontainer hat den Docker-Socket eingebunden. Das ist für AIO notwendig, gibt dem Container aber faktisch Root-Rechte auf dem Host. Betreiben Sie AIO deshalb auf einem Server, der nur dafür oder für vertrauenswürdige Dienste da ist.
Verifizieren: sudo docker compose ps zeigt nextcloud-aio-mastercontainer nach etwa einer Minute mit Status Up und (healthy). Im Test war das nach rund 40 Sekunden der Fall.
Schritt 3: AIO-Interface öffnen und Passphrase sichern
Öffnen Sie das AIO-Interface immer über die IP-Adresse, nicht über die Domain. Sonst kann HSTS den Zugriff später blockieren. Die Zertifikatswarnung ist an dieser Stelle erwartet, Port 8080 nutzt bewusst ein selbstsigniertes Zertifikat.
https://SERVER-IP:8080
Beim ersten Aufruf zeigt AIO eine Passphrase aus acht Wörtern. Sie wird nur ein einziges Mal angezeigt und ist Ihr Login für das AIO-Interface. Legen Sie sie sofort im Passwort-Manager ab und melden Sie sich dann über „Open Nextcloud AIO login“ an.

Verifizieren: Nach dem Login erscheint die Seite „Nextcloud AIO v…“ mit dem Abschnitt „New AIO instance“. Ein erneuter Aufruf von /setup zeigt keine Passphrase mehr.
Schritt 4: Domain eintragen und Zusatzdienste wählen
Tragen Sie unter „New AIO instance“ Ihre Domain ein und klicken Sie auf „Submit domain“. AIO prüft dabei, ob DNS und Port 443 stimmen. Die Domain lässt sich danach nicht mehr ändern, ein Tippfehler bedeutet Neuinstallation.

Anschließend wählen Sie die Zusatzdienste. Immer enthalten sind Nextcloud, PostgreSQL, Redis, der Webserver (Apache und Caddy) und Client Push für schnelle Synchronisation. Optional sind:
| Dienst | Zweck | Hinweis |
|---|---|---|
| Office Suite | Dokumente im Browser bearbeiten | Euro-Office (vorausgewählt), Collabora Online oder keine; ONLYOFFICE ist als „deprecated“ markiert |
| Nextcloud Talk | Chat, Audio- und Videoanrufe | Port 3478/TCP+UDP muss offen sein |
| Imaginary | Vorschaubilder für HEIC, PDF, SVG, TIFF, WebP | nicht mit serverseitiger Verschlüsselung |
| ClamAV, Volltextsuche | Virenscan, Suche in Dateiinhalten | je rund 1 GB RAM zusätzlich |
| Whiteboard, HaRP | Zeichnen im Team, Proxy für ExApps | HaRP ersetzt den veralteten Docker Socket Proxy |
Speichern Sie die Auswahl mit „Save changes“, AIO übernimmt sie nicht automatisch. Im Test war nur Imaginary aktiv.

Die Zeitzone setzen Sie im selben Bildschirm unter „Timezone change“, etwa Europe/Berlin. Mit „Download and start containers“ lädt AIO alle Images und startet sie. Die Checkbox darüber entscheidet, ob die neueste Nextcloud-Hauptversion oder die vorherige installiert wird.
Verifizieren: Im AIO-Interface stehen alle Dienste auf „Running“, und sudo docker ps --format '{{.Names}}' | grep nextcloud-aio listet unter anderem nextcloud-aio-apache, nextcloud-aio-nextcloud und nextcloud-aio-database. Im Test dauerte der erste Start mit Image-Download rund drei Minuten.
Schritt 5: Bei Nextcloud anmelden und Clients verbinden
Laufen alle Container, zeigt das AIO-Interface den Benutzernamen admin und das initiale Passwort. Über „Open your Nextcloud“ öffnen Sie die Anmeldung unter Ihrer Domain.

Ändern Sie nach der ersten Anmeldung das Passwort, aktivieren Sie die Zwei-Faktor-Anmeldung und legen Sie unter „Konten“ eigene Benutzer und Gruppen an. Desktop- und Mobil-Clients verbinden Sie mit https://cloud.example.de; Kalender und Kontakte laufen über CalDAV und CardDAV.
Den Zustand der Installation prüfen Sie auf dem Server mit occ:
sudo docker exec -u www-data nextcloud-aio-nextcloud php occ status
Verifizieren: occ status meldet installed: true, maintenance: false und die Version (im Test 34.0.4), und curl -I https://cloud.example.de antwortet ohne Zertifikatsfehler mit 302 auf /login.
Schritt 6: Betrieb hinter einem vorhandenen Reverse-Proxy
Läuft auf dem Server schon ein Reverse-Proxy (Caddy, Nginx, Traefik), übernimmt dieser TLS. In der compose.yaml entfernen Sie dann die Ports 80 und 8443 und lassen den AIO-Webserver auf Port 11000 lauschen. So lief auch der Test:
ports:
- "8080:8080"
environment:
APACHE_PORT: 11000
APACHE_IP_BINDING: 127.0.0.1
APACHE_IP_BINDING: 127.0.0.1 passt, wenn der Proxy auf demselben Host läuft. Liegt er auf einem anderen Rechner, setzen Sie 0.0.0.0 und schützen Port 11000 per Firewall. Danach sudo docker compose up -d ausführen. Ein minimaler Caddyfile-Eintrag:
https://cloud.example.de:443 {
reverse_proxy localhost:11000
}
Für Nginx gibt die Reverse-Proxy-Doku von AIO eine vollständige Vorlage mit WebSocket-Headern vor. TLS mit Nginx allgemein: Nginx als Reverse-Proxy mit TLS einrichten.
Verifizieren: Das AIO-Interface meldet „reverse proxy mode“, curl -I http://127.0.0.1:11000 auf dem Server liefert HTTP/1.1 302 Found mit Location: https://cloud.example.de/login, und über den Proxy erscheint die Anmeldeseite.
Schritt 7: Backup einrichten und Wiederherstellung prüfen
Das integrierte Backup nutzt BorgBackup: inkrementell, komprimiert und verschlüsselt. Es sichert Datenbank, Dateien und die Konfiguration des Mastercontainers, aber keine über „Externe Speicher“ eingebundenen Ordner. Legen Sie zuerst das Zielverzeichnis an, am besten auf einer zweiten Platte:
sudo mkdir -p /mnt/backup
Tragen Sie im AIO-Interface unter „Backup and restore“ den Pfad /mnt/backup ein (beginnt mit /, endet ohne /) und bestätigen Sie mit „Submit backup location“. AIO zeigt jetzt das Backup-Passwort. Ohne dieses Passwort ist keine Wiederherstellung möglich, legen Sie es getrennt vom Server ab.

„Create backup“ stoppt die Container, sichert und meldet danach „Last backup successful“. Starten Sie die Container anschließend mit „Start containers“ wieder. Im Test brauchte das erste Backup 26 Sekunden. Erst danach lassen sich tägliche Backups mit optionalen automatischen Updates aktivieren. Die Integrität prüfen Sie per Schaltfläche „Check backup integrity“ oder per Skript:
sudo docker exec --env DAILY_BACKUP=0 --env CHECK_BACKUP=1 --env STOP_CONTAINERS=0 \
nextcloud-aio-mastercontainer /daily-backup.sh
sudo docker logs --tail 5 nextcloud-aio-borgbackup
Eine Wiederherstellung auf demselben Server läuft so: „Stop containers“, unter den Backup-Optionen den Zeitpunkt wählen, „Restore selected backup“, danach „Start containers“. Im Test war eine nach dem Backup gelöschte Markerdatei danach wieder im Benutzerordner. Auf einem neuen Server wählen Sie nach dem Login den Bereich „Restore former AIO instance from backup“ und geben Backup-Pfad und Passwort an. Das Archiv muss dort im Unterordner borg liegen. Eine feste Prüfroutine beschreibt Backup-Restore-Test als feste Routine etablieren.
Verifizieren: Das AIO-Interface zeigt „Last backup successful on …“, in /mnt/backup/borg liegt das Repository, und das Log der Integritätsprüfung endet mit Check finished successfully und „0 integrity errors“.
Schritt 8: Updates durchführen
Nextcloud, Datenbank und Zusatzdienste aktualisieren Sie nicht per docker pull, sondern im AIO-Interface: meldet es neue Container, klicken Sie „Stop containers“, erstellen ein Backup und starten mit „Start and update containers“. Neue Versionen des Mastercontainers meldet das Interface ebenfalls und spielt sie per Klick ein. Eine neue Nextcloud-Hauptversion bietet AIO als eigene Schaltfläche an (im Test „Upgrade to Nextcloud Hub 26 Summer“).
Nur wenn Sie Optionen in der compose.yaml ändern, erzeugen Sie den Mastercontainer neu. Daten gehen dabei nicht verloren, sie liegen in den Volumes:
cd /opt/nextcloud-aio
sudo docker compose up -d
Verifizieren: Das AIO-Interface zeigt „Your containers are up-to-date“, und occ status meldet die neue Version mit maintenance: false.
Typische Fehler
- AIO-Interface nicht erreichbar oder HSTS-Fehler: Es wurde über die Domain statt über die IP aufgerufen. Immer
https://SERVER-IP:8080verwenden. - „DNS config is not set for this domain“ oder Domainprüfung scheitert: Der DNS-Eintrag zeigt nicht auf den Server oder Port 443 ist nicht erreichbar.
SKIP_DOMAIN_VALIDATION=truenur setzen, wenn Proxy und DNS nachweislich stimmen. - Passphrase vergessen: Solange Sie noch angemeldet sind, ändern Sie sie unter „AIO passphrase change“. Sie ersetzt nicht das Backup-Passwort; beide getrennt ablegen.
- Container nach manuellem Update inkonsistent: Inhalts-Container wurden per
docker pullerneuert. Nur über das AIO-Interface aktualisieren. - Backup-Container startet nicht in LXC: FUSE ist im LXC-Container nicht freigegeben.
- Talk-Anrufe von außen scheitern: Port 3478/TCP+UDP ist nicht weitergeleitet.
Häufige Fragen
Brauche ich für Nextcloud AIO eine eigene Domain?
Ja, für den Betrieb mit gültigem Zertifikat. Ohne eigene Domain bietet das AIO-Interface eine kostenlose Subdomain über deSEC an.
docker run oder compose.yaml?
Beides startet denselben Mastercontainer. Die compose.yaml hält Ihre Optionen in einer Datei fest; das macht Änderungen und spätere Neuerstellung nachvollziehbar.
Entfernt docker compose down die ganze Installation?
Nein. Es entfernt nur den Mastercontainer. Die Dienst-Container, das Netz nextcloud-aio und die Volumes nextcloud_aio_* legt AIO selbst an. Zum vollständigen Entfernen stoppen Sie die Container im AIO-Interface und löschen diese Ressourcen danach gezielt, wie in der AIO-Doku unter „How to properly reset the instance“ beschrieben.
Gibt es eine Alternative ohne Docker-Socket?
Ja, das offizielle nextcloud-Image mit eigener Datenbank per Compose. Dann liegen TLS, Updates und Backup bei Ihnen. Eine schlankere Alternative ist OpenCloud (ownCloud-Nachfolger) mit Docker einrichten.
Fazit
Nextcloud AIO bringt mit wenigen Zeilen Compose eine vollständige Cloud mit Datenbank, Cache, TLS und verschlüsseltem Backup. Die wichtigsten Regeln: das AIO-Interface nur per IP öffnen, Passphrase und Backup-Passwort sicher ablegen, Updates ausschließlich über das Interface ausführen. Planen Sie das erste Backup samt Probe-Wiederherstellung direkt nach der Einrichtung ein, dann ist die Installation betriebsbereit.
Weiterführende Anleitungen und Quellen
- Docker Compose Grundlagen: Stacks sauber aufbauen
- Nginx als Reverse-Proxy mit TLS einrichten
- Backup-Restore-Test als feste Routine etablieren
- OpenCloud (ownCloud-Nachfolger) mit Docker einrichten
- Nextcloud All-in-One: offizielles Repository mit FAQ
- Offizielle compose.yaml von Nextcloud AIO
- AIO-Dokumentation zum Reverse-Proxy


