Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Cloud / Hosting 02.06.2026 · 10 min Lesezeit

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

Offener Serverschrank im hellen Büro mit Switch, blauen Patchkabeln, Speicherserver und kleinem Gerät

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.

EckdatenWert
Imageghcr.io/nextcloud-releases/all-in-one:latest (Docker Hub: nextcloud/all-in-one)
Ports8080 AIO-Interface (selbstsigniert, nur per IP), 80 und 8443 Zertifikat und AIO-Interface per Domain, später 443 für Nextcloud
Volumenextcloud_aio_mastercontainer (Konfiguration), weitere Volumes nextcloud_aio_* legt AIO selbst an
Wichtige VariablenAPACHE_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.

Nextcloud AIO, Seite All-in-One setup beim ersten Aufruf: Feld mit der Passphrase (1, hier unkenntlich gemacht) und Schaltfläche Open Nextcloud AIO login (2)
Erster Aufruf: 1 Passphrase notieren, 2 auf Open Nextcloud AIO login klicken und damit anmelden.

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.

Nextcloud AIO, Bereich New AIO instance: Eingabefeld mit der Domain cloud.example.de (1) und Schaltfläche Submit domain (2)
Domain hinterlegen: 1 Domain eintragen, 2 auf Submit domain klicken.

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:

DienstZweckHinweis
Office SuiteDokumente im Browser bearbeitenEuro-Office (vorausgewählt), Collabora Online oder keine; ONLYOFFICE ist als „deprecated“ markiert
Nextcloud TalkChat, Audio- und VideoanrufePort 3478/TCP+UDP muss offen sein
ImaginaryVorschaubilder für HEIC, PDF, SVG, TIFF, WebPnicht mit serverseitiger Verschlüsselung
ClamAV, VolltextsucheVirenscan, Suche in Dateiinhaltenje rund 1 GB RAM zusätzlich
Whiteboard, HaRPZeichnen im Team, Proxy für ExAppsHaRP ersetzt den veralteten Docker Socket Proxy

Speichern Sie die Auswahl mit „Save changes“, AIO übernimmt sie nicht automatisch. Im Test war nur Imaginary aktiv.

Nextcloud AIO, Liste Additional Optional Containers: nur Imaginary ist angehakt (1), ClamAV, Fulltextsearch, Talk und Whiteboard sind abgewählt
Optionale Dienste: 1 gewünschte Container anhaken (hier nur Imaginary), danach unter der Liste auf Save changes klicken.

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.

Nextcloud AIO nach dem Start: alle Container mit Status Running, initiales Admin-Passwort unkenntlich gemacht, Schaltfläche Open your Nextcloud (1)
Nach dem Start: alle Container laufen, 1 öffnet Nextcloud. Das initiale Passwort ist hier unkenntlich gemacht.

Ä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.

Nextcloud AIO, Bereich Backup and restore: Hinweis auf das Backup-Passwort (unkenntlich gemacht), Backup-Pfad /mnt/backup/borg und Schaltfläche Create backup (1)
Backup-Ziel gesetzt: Passwort sichern, dann 1 Create backup klicken. Das Passwort ist hier unkenntlich gemacht.

„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:8080 verwenden.
  • „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=true nur 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 pull erneuert. 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