Durchscheinende Wolke über einem kleinen weißen NAS, umgeben von Foto-, Dokument- und Ordnersymbolen, verbunden durch feine Lichtlinien

Nextcloud einrichten: Meine eigene Cloud mit Nextcloud All-in-One auf dem NAS

Nextcloud ist bei uns die Familien-Cloud. Jeder hat seine eigenen Ordner und kommt von Handy, Notebook, Mac und iPad dran. Dazu gibt es gemeinsame Ordner, in denen wir zusammen arbeiten. Und was unser Multifunktionsdrucker einscannt, landet automatisch in den passenden Nextcloud-Ordnern.

Nextcloud gibt es in vielen Varianten. Ich nutze Nextcloud All-in-One, kurz AIO. Dabei startest du nur einen einzigen Container, den sogenannten Mastercontainer. Der richtet über eine Weboberfläche alles Weitere ein: Nextcloud selbst, Datenbank, Redis, auf Wunsch Office und Talk, dazu Updates und Sicherungen. Das ist deutlich weniger Bastelei als ein eigenes Compose mit fünf Diensten.

Kurz vorweg: So läuft Nextcloud AIO bei mir, Stand Oktober 2026. AIO ändert sich regelmäßig, prüf vor dem Nachbauen die offizielle Doku. Die Einrichtung erfolgt auf eigene Verantwortung. Wenn du schon Daten auf dem NAS hast, sichere sie, bevor du Ordner einbindest oder Rechte änderst.

Hinweis: Ich zeige hier, wie es bei mir läuft. Nachbau auf eigene Gefahr: Mach vorher ein Backup deiner Daten und Einstellungen. Für Schäden oder Datenverlust übernehme ich keine Haftung.

Was du brauchst

  • Docker auf dem NAS oder einem Linux-Server, bei mir verwaltet mit Portainer
  • eine eigene Domain oder Subdomain, z. B. cloud.example.com, die auf deine öffentliche IP zeigt
  • einen Reverse Proxy, bei mir der Nginx Proxy Manager
  • genug Platz für die Daten, bei mir auf dem RAID 5 des Ugreen DXP4800 Plus

Schritt 1: Erst den Proxy, dann Nextcloud

AIO bringt eigentlich einen eigenen Webserver mit, der die Ports 80 und 443 haben will. Die belegt bei mir aber schon der Nginx Proxy Manager. Für diesen Fall gibt es in der AIO-Doku eine eigene Anleitung: Nextcloud lauscht dann auf einem anderen Port, und der Proxy reicht die Anfragen weiter. Die Doku empfiehlt dafür Port 11000.

Die Reihenfolge ist wichtig: erst den Proxy Host anlegen, dann AIO starten. Sonst schlägt später die Prüfung der Domain fehl.

Im Nginx Proxy Manager lege ich einen neuen Proxy Host an:

  • Domain: cloud.example.com
  • Ziel: http, IP des NAS, Port 11000
  • Websockets Support: an
  • SSL: Let’s-Encrypt-Zertifikat, „Force SSL“ an

Unter „Advanced“ kommen zwei Zeilen aus der AIO-Doku dazu:

# AIO bricht lange Anfragen standardmäßig nach 3600 Sekunden ab.
# Der Proxy wartet 10 Sekunden länger, damit Nextcloud zuerst abbricht.
proxy_read_timeout 3610s;

# 0 heißt: keine Größenbegrenzung beim Hochladen
client_max_body_size 0;

Laut AIO-Doku dürfen PUID und PGID im Compose des Nginx Proxy Managers nicht gesetzt sein oder müssen 0 sein.

Schaubild: Geräte der Familie greifen über den Nginx Proxy Manager auf Nextcloud All-in-One auf dem NAS zu, Scans kommen über einen Windows-Rechner dazu, gesichert wird wöchentlich aufs TrueNAS

Schritt 2: Den Mastercontainer als Portainer-Stack

Für Portainer empfiehlt die AIO-Doku, eine Compose-Datei als Stack zu nutzen. In Portainer unter Stacks, „Add stack“, kommt in den Web-Editor diese Datei. Sie folgt meinem Stack, mit Platzhaltern statt meiner Pfade und an drei Stellen an die aktuelle offizielle Vorlage (Lizenz AGPL-3.0) angeglichen, dazu gleich mehr:

services:
  nextcloud-aio-mastercontainer:
    image: ghcr.io/nextcloud-releases/all-in-one:latest
    init: true
    restart: always
    # Name nicht ändern, sonst funktioniert AIO nicht
    container_name: nextcloud-aio-mastercontainer
    volumes:
      # Nicht ändern, sonst geht die eingebaute Sicherung nicht
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      # Nur die AIO-Oberfläche, 80 und 8443 entfallen hinter dem Proxy
      - "8080:8080"
    environment:
      - APACHE_PORT=11000
      - APACHE_IP_BINDING=0.0.0.0
      # Nur beim allerersten Start setzen, danach nie mehr ändern
      - NEXTCLOUD_DATADIR=/pfad/zu/nextcloud/data
      # Ordner auf dem NAS, die Nextcloud als externen Speicher sehen darf
      - NEXTCLOUD_MOUNT=/pfad/zum/nas-volume/
      - SKIP_DOMAIN_VALIDATION=false
      - TALK_PORT=3478

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

Was die wichtigsten Zeilen bedeuten:

  • 8080:8080 macht die AIO-Oberfläche im Heimnetz erreichbar. Port 8080 bleibt intern, der wird nicht nach außen freigegeben.
  • APACHE_PORT=11000 ist der Port, auf den der Proxy zeigt.
  • APACHE_IP_BINDING=0.0.0.0 öffnet Port 11000 auf dem NAS, damit der Proxy über die NAS-IP drankommt. Nach außen gebe ich nur den Proxy frei, nicht Port 11000.
  • NEXTCLOUD_DATADIR legt fest, wo die Dateien landen. Das geht nur beim allerersten Start. Wer es später ändern will, muss umziehen. Lässt du die Zeile weg, landen die Daten in einem Docker-Volume.
  • NEXTCLOUD_MOUNT erlaubt Nextcloud den Zugriff auf einen Ordner des NAS. Den bindest du danach in Nextcloud über die App „External storage support“ ein (siehe Schritt 5).
  • SKIP_DOMAIN_VALIDATION=false lässt die Domain-Prüfung an. Auf true stellen sollte man das nur, wenn sicher alles richtig eingerichtet ist.
  • TALK_PORT ist der Port für Videoanrufe mit Nextcloud Talk, Standard 3478. Wer Talk von außen nutzen will, gibt 3478 zusätzlich als TCP und UDP im Router frei.
  • Der Docker-Socket wird eingebunden, weil der Mastercontainer die anderen Container selbst startet. Sie tauchen danach alle mit nextcloud-aio- am Anfang in Portainer auf. Der Zugriff auf den Socket entspricht praktisch vollen Rechten auf dem NAS, deshalb bleibt die AIO-Oberfläche im Heimnetz.

Gegenüber meinem Stack habe ich hier drei Dinge an die offizielle Vorlage angeglichen: das Image von ghcr.io/nextcloud-releases, das die Doku heute nennt (bei mir steht noch das ältere nextcloud/all-in-one), dazu init: true. Außerdem fehlt hier das Netzwerk proxy_net, das bei mir am Mastercontainer hängt. Für den Weg über die NAS-IP braucht es das nicht, und wer es nicht hat, bekäme sonst beim Start einen Fehler.

Wer den Proxy lieber über ein Docker-Netzwerk anbindet statt über die NAS-IP, setzt zusätzlich APACHE_ADDITIONAL_NETWORK=proxy_net und APACHE_IP_BINDING=127.0.0.1. Dann zeigt der Proxy Host auf nextcloud-aio-apache:11000. Das Netzwerk muss laut Doku vor dem Start von AIO existieren.

Ohne Portainer geht das Gleiche mit docker run. Den passenden Befehl findest du in der Reverse-Proxy-Doku von AIO.

Schritt 3: Die AIO-Oberfläche

Nach dem Start rufst du die Oberfläche über die IP-Adresse auf, nicht über die Domain:

https://IP-DEINES-NAS:8080

Der Browser warnt vor dem Zertifikat. Das ist hier normal, Port 8080 nutzt absichtlich ein selbst signiertes Zertifikat.

Dann geht es in dieser Reihenfolge weiter:

  1. Passphrase notieren. AIO zeigt einmal ein langes Kennwort für die Oberfläche an. Speicher sie sofort im Passwortmanager.
  2. Domain eintragen. AIO prüft, ob die Domain über den Proxy bei Nextcloud ankommt. Klappt das nicht, stimmt meist etwas am Proxy Host nicht.
  3. Zusatzdienste wählen. Zur Auswahl stehen unter anderem Collabora oder OnlyOffice für Dokumente im Browser, Talk für Videoanrufe, Imaginary für schnellere Vorschaubilder und ClamAV als Virenscanner.
  4. Starten. AIO lädt jetzt alle Container und zeigt danach das erste Admin-Passwort für Nextcloud an.

Ich würde mit wenig anfangen. Jeder Zusatzdienst ist ein weiterer Container, der Arbeitsspeicher braucht. Nachrüsten lässt sich alles später in der AIO-Oberfläche.

Schritt 4: Nach der Einrichtung

Nach dem ersten Anmelden lege ich für jedes Familienmitglied ein eigenes Konto an. Weil Nextcloud von außen erreichbar ist, lohnt sich die Zwei-Faktor-Anmeldung, die sich in Nextcloud als App nachrüsten lässt.

Gemeinsame Ordner lege ich einmal an und teile sie in Nextcloud mit den anderen. Auf Handy und iPad läuft die Nextcloud-App, auf Notebook und Mac der Desktop-Client, der die Ordner wie einen normalen Ordner im Dateisystem einbindet.

Schritt 5: Scans landen automatisch in Nextcloud

Unser Multifunktionsdrucker speichert Scans per SMB in eine Freigabe auf einem Windows-Rechner, der bei uns ohnehin dauerhaft läuft. Dieser Rechner lädt die Dateien dann in die passenden Ordner in Nextcloud. Für den Scanner ist das nur ein normales Netzlaufwerk, er muss von Nextcloud nichts wissen.

Das Hochladen erledigt der ganz normale Nextcloud-Desktop-Client. So ist es eingerichtet:

  1. Auf dem Windows-Rechner einen Ordner für die Scans anlegen und im Netzwerk freigeben. Für den Scanner lohnt sich ein eigener Windows-Benutzer, der nur dort schreiben darf.
  2. Im Scanner diese Freigabe als Ziel für „Scan to SMB“ eintragen.
  3. Den Nextcloud-Desktop-Client auf dem Windows-Rechner installieren und mit Nextcloud verbinden.
  4. Im Client eine Ordner-Synchronisation hinzufügen: links der Scan-Ordner auf dem Windows-Rechner, rechts der Zielordner in Nextcloud.

Ab dann taucht jeder Scan kurz danach in Nextcloud auf, auch auf dem Handy. Wichtig: Der Client gleicht in beide Richtungen ab. Wer einen Scan in Nextcloud löscht, löscht ihn auch im Ordner auf dem Windows-Rechner.

Wer keinen Rechner hat, der dauerhaft läuft, kann den Scan-Ordner auch direkt auf dem NAS anlegen und in Nextcloud als externen Speicher einbinden. Dafür ist die Zeile NEXTCLOUD_MOUNT in der Compose da:

  1. Unter Apps die App „External storage support“ aktivieren.
  2. In den Verwaltungseinstellungen unter „Externer Speicher“ einen neuen Speicher vom Typ „Lokal“ anlegen.
  3. Als Pfad den Scan-Ordner eintragen, genau so wie er auf dem NAS heißt, z. B. /pfad/zum/nas-volume/scans. AIO hängt ihn im Container unter demselben Pfad ein.
  4. Festlegen, welche Benutzer oder Gruppen den Ordner sehen dürfen.

Die Rechte müssen passen, sonst sieht Nextcloud den Ordner nicht. Nextcloud arbeitet im Container mit der Benutzer-ID 33 (www-data), die muss lesen und schreiben dürfen. Gleichzeitig muss der SMB-Benutzer des Scanners weiter schreiben können. Ändere die Besitzer deshalb nicht pauschal mit chown -R auf dem ganzen Volume, sondern höchstens am Scan-Ordner, und mach danach einen Testscan.

Schritt 6: Zugriff von unterwegs absichern

Von außen sollten nur die Ports des Nginx Proxy Managers erreichbar sein, also 443 und für die Zertifikate 80. Die AIO-Oberfläche auf Port 8080 und Port 11000 bleiben im Heimnetz. Einzige Ausnahme ist Talk, dann kommt noch Port 3478 (TCP und UDP) dazu.

Schritt 7: Sicherung

AIO bringt eine eigene Sicherung auf Basis von BorgBackup mit. Das Ziel und die tägliche Sicherung stellst du in der AIO-Oberfläche ein, wiederherstellen geht dort ebenfalls. Wie lange alte Sicherungen aufgehoben werden, regelt die Variable BORG_RETENTION_POLICY in der Compose. Standard sind 7 Tage, 4 Wochen und 6 Monate. Die Sicherung sollte auf einem anderen Gerät liegen als die Daten selbst. Eine Netzwerkfreigabe hängst du dafür zuerst auf dem NAS ein und trägst diesen Ordner in AIO als Ziel ein. Ich nutze diese eingebaute Sicherung nicht, bei mir übernimmt das der Backup Manager.

Mein Docker Backup Manager sichert einmal pro Woche alle nextcloud-aio-Container aufs TrueNAS.

Ein Punkt aus der AIO-Doku, der für jede externe Sicherung gilt: Die Container sollten vorher sauber gestoppt werden. Sonst kann die Datenbank in der Sicherung unvollständig sein. Der Backup Manager hält die Nextcloud-Container deshalb bei mir vor dem Sichern kurz an und startet sie danach wieder.

Updates

Updates laufen bei AIO über die Oberfläche: Container stoppen, Sicherung machen, Mastercontainer aktualisieren, dann „Start and update containers“. Wenn du die tägliche Sicherung einschaltest, kann AIO danach auch automatisch aktualisieren.

Mein Fazit

Jeder hat seine eigenen Daten, und wo wir zusammen arbeiten, gibt es gemeinsame Ordner. Und dass die Scans automatisch in der Nextcloud landen, läuft richtig gut. Ich würde alles genauso wieder aufbauen.

Meine Fotos liegen übrigens nicht in Nextcloud, sondern in Immich. Wie ich das eingerichtet habe, steht in meiner Immich-Anleitung. Einen Überblick über alle Dienste auf dem NAS gibt es im Beitrag zu meiner Docker-Landschaft.

Wie es weitergeht

Als Nächstes will ich ein kleines Programm bauen, das die Post und alles andere, was gescannt wird, automatisch sortiert und im richtigen Ordner ablegt. Wenn das läuft, schreibe ich darüber einen eigenen Beitrag.

Titelbild KI-generiert.

Schreibe einen Kommentar

Kommentarregeln: Bleib sachlich und freundlich. Keine Beleidigungen, keine Werbung, keine Links zu fremden Shops, keine persönlichen Daten anderer und nichts Rechtswidriges. Ich behalte mir vor, Kommentare nicht freizuschalten, zu kürzen oder zu löschen. Rechtswidrige Inhalte kannst du mir über das Kontaktformular melden (bitte Link zum Kommentar und kurze Begründung). Ich prüfe Meldungen zeitnah.

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.

Mit dem Absenden werden Name, E-Mail-Adresse, Kommentar und IP-Adresse gespeichert. Name und Kommentar sind öffentlich sichtbar. Mehr dazu in der Datenschutzerklärung. Der erste Kommentar wird vor der Veröffentlichung von mir geprüft.

Nach oben scrollen