Ich zeige euch hier, wie ihr Nextcloud All in One (AIO) in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
| Datum | Änderungen |
|---|---|
| 24.01.2023 | Erstellung dieser Anleitung |
| 24.03.2023 | Telefonregion hinzugefügt. Danke an @pkirsche |
| 29.05.2023 | Anpassung an neue Traefik Anleitung |
| 21.07.2023 | Docker Compose angepasst. Domain Check Skip. Danke an @alexn |
| 28.08.2023 | Kapitel 9 – Hinweis auf Log Datei hinzugefügt. Danke an @schlehmil |
| 23.06.2024 | getestet mit Version 9.0.1, UFW Regel hinzugefügt. Danke an @retoineichen |
| 18.10.2024 | Anpassung an neue Traefik v3 Anleitung |
| 19.06.2025 | Kapitel 4, Kapitel 10 angepasst |
| 08.12.2025 | Kapitel 4 angepasst |
| 11.01.2026 | Kapitel 4 angepasst. Danke an @mrfab @retoineichen |
0. Unterschied zwischen Nextcloud und Nextcloud All in One?
Der Unterschied zwischen den beiden Nextcloud Versionen ist, dass in der All in One Version zusätzlich noch folgendes enthalten ist:
- Nextcloud
- Nextcloud Office
- High performance backend for Nextcloud Files
- High performance backend for Nextcloud Talk
- Backup solution (based on BorgBackup)
- Imaginary
- ClamAV
- Fulltextsearch
Wenn ihr nur Nextcloud installieren wollt, dann könnt ihr euch diese Anleitung anschauen.
1. Grundvoraussetzungen
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik ab v3.6 mit CrowdSec installieren und konfigurieren
2. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/nextcloud-aio
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.

Je nach Performance eures Servers, kann dies nun 5 bis 10 Minuten oder länger dauern. Anschließend seht ihr dieses Fenster. Hier seht ihr, dass der Nextcloud / Apache Container noch nicht gestartet sind. Dies hat bei mir wieder ca. 10 Minuten gedauert, bis alles grün war.

Ihr könnt auf auf “Running” klicken um euch die Container Ausgabe anzeigen zu lassen.

Wenn alles fertig ist, sollte es so aussehen. Wichtig ist, dass ihr euch hier noch euer Nextcloud Passwort sichert.

Mit einem Klickt auf “Open your Nextcloud” könnt ihr eure Nextcloud öffnen. Nachdem ihr euch dort angemeldet habt, könnt ihr ganz normal eure Nextcloud nutzen.

7.1 Telefonregion hinzufügen
Mit folgendem Befehl könnt ihr Deutschland als Standard Telefonregion festlegen, damit ihr dazu keine Fehlermeldung mehr seht. Vielen Dank an @pkirsche für den Hinweis.
docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="DE"Code-Sprache: JavaScript (javascript)
8. Backup durchführen
Um ein Backup zu erstellen geht ihr wieder in die Nextcloud All in One Weboberfläche:
https://<eureIP>:8080Code-Sprache: HTML, XML (xml)
Hier seht ihr nun folgendes:

Gebt dort einen Pfad ein und klickt auf “Submit”. Anschließend bekommt ihr das Passwort für euer Backup angezeigt. Dies müsst ihr euch merken.

Klickt nun auf “Create backup”.

Nun werden alle Container gestoppt und das Backup wird erstellt.

Wenn das Backup fertig ist, solltet ihr folgende Meldung sehen.

Nun könnt ihr die Container wieder starten mittels “Start containers”.
9. Log Datei für CrowdSec (optional)
@schlehmil hat herausgefunden, dass die Log Datei für CrowdSec hier gespeichert wird:
/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.logCode-Sprache: JavaScript (javascript)
Mithilfe dieser Datei und folgender Anleitung (müsst ihr leicht anpassen) könnt ihr CrowdSec für Nextcloud AIO einrichten.
10. FAQ
Es gibt einen offiziellen FAQ Bereich des Projekts, wo die wichtigsten Fragen geklärt werden. Diesen findet ihr hier: https://github.com/nextcloud/all-in-one?tab=readme-ov-file#faq

Hallo,
vielen Dank für die tolle Anleitung. Es läuft soweit alles wie es soll.
Ein Problem habe ich noch. Im Admin Account wir mir angezeigt:
Es gibt einige Fehler bei deiner Systemkonfiguration.
Your remote address was identified as “62.XX.XXX.XXX” and is bruteforce throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly. Further information can be found in the documentation ↗.In der Dokumentation stehen folgende Tipps:
Traefik 2Using Docker labels:
traefik.http.routers.nextcloud.middlewares: ‘nextcloud_redirectregex’
traefik.http.middlewares.nextcloud_redirectregex.redirectregex.permanent: true
traefik.http.middlewares.nextcloud_redirectregex.redirectregex.regex: ‘https://(.*)/.well-known/(?:card|cal)dav’
traefik.http.middlewares.nextcloud_redirectregex.redirectregex.replacement: ‘https://$${1}/remote.php/dav’
Using a TOML file:
[http.middlewares]
[http.middlewares.nextcloud-redirectregex.redirectRegex]
permanent = true
regex = “https://(.*)/.well-known/(?:card|cal)dav”
replacement = “https://${1}/remote.php/dav”
Leider habe ich da noch zu wenig Ahnung von traefik. Kann ich z. B. die Docker labels 1:1 in die docker-compose von nextcloud eintragen?
Danke und Gruß,
Stefan
Bis auf den Container nextcloud/aio-talk habe ich alles zum laufen bekommen – dieser wird als unhealthy angezeigt.
docker ps --format "table {{.Names}}\t{{.Status}}" NAMES STATUS nextcloud-aio-apache Up 7 minutes (healthy) nextcloud-aio-notify-push Up 7 minutes (healthy) nextcloud-aio-nextcloud Up 7 minutes (healthy) nextcloud-aio-docker-socket-proxy Up 7 minutes (healthy) nextcloud-aio-imaginary Up 7 minutes (healthy) nextcloud-aio-talk-recording Up 7 minutes (healthy) nextcloud-aio-fulltextsearch Up 7 minutes (healthy) nextcloud-aio-clamav Up 7 minutes (healthy) nextcloud-aio-redis Up 7 minutes (healthy) nextcloud-aio-database Up 7 minutes (healthy) nextcloud-aio-talk Up 7 minutes (unhealthy) nextcloud-aio-collabora Up 7 minutes (healthy) nextcloud-aio-mastercontainer Up 11 minutes (healthy)Aus den Logs vom Container werde ich aktuell nicht schlau. Habe ich was übersehen?
Erstmal vielen Dank für die Anleitung. Bisher hatte ich eigentlich keine Probleme mit euren Anleitungen, aber hier sitze ich jetzt seit Stunden und bekomme es leider nicht ans laufen.
Es funktioniert nur bis nach der Auswahl der gewünschten Apps. Wenn ich dann auf “Download and start containers” klicke, kommt nach kurzer Zeit eine Meldung: “Server error. Please check the mastercontainer logs for details. This page will reload after 10s automatically. Then you can check the mastercontainer logs.”. In den Logs steht dann folgendes:
Initial startup of Nextcloud All-in-One complete! You should be able to open the Nextcloud AIO Interface now on port 8080 of this server! E.g. https://internal.ip.of.this.server:8080 If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via: https://your-domain-that-points-to-this-server.tld:8443[0m [Wed Sep 6 00:17:05 2023] PHP 8.2.8 Development Server (http://127.0.0.1:9876) started [Wed Sep 06 00:17:05.850450 2023] [mpm_event:notice] [pid 119:tid 140318604467016] AH00489: Apache/2.4.57 (Unix) OpenSSL/3.1.2 configured -- resuming normal operations [Wed Sep 06 00:17:05.850856 2023] [core:notice] [pid 119:tid 140318604467016] AH00094: Command line: 'httpd -D FOREGROUND' {"level":"info","ts":1693959425.8773062,"msg":"using provided configuration","config_file":"/Caddyfile","config_adapter":""} [06-Sep-2023 00:17:05] NOTICE: fpm is running, pid 124 [06-Sep-2023 00:17:05] NOTICE: ready to handle connections NOTICE: PHP message: Slim Application Error Type: GuzzleHttp\Exception\ClientException 4 Message: Client error:POST http://localhost/v1.41/containers/create?name=nextcloud-aio-collaboraresulted in a404 Not Foundresponse: {"message":"No such image: nextcloud/aio-collabora:latest"} File: /var/www/docker-aio/php/vendor/guzzlehttp/guzzle/src/Exception/RequestException.phpEs handelt sich mittlerweile um Version 7.0.0.
Ich habe schon x-mal alles kontrolliert, Ordner und Volumes komplett gelöscht und alles neu installiert, aber es will einfach nicht…
Irgendjemand eine Idee?
Vielen Dank im Voraus!
Danke für die Anleitung. Frage die ich mir gerade Stelle: Wie komme ich an die nextcloud.log für crowdsec?
EDIT:
Habe in der docker-compose.yml die Umgebungsvariable NEXTCLOUD_DATADIR gesetzt. Daraufhin wurde dort während der Installation auch eine leere nextcloud.log angelegt. Leider wird diese aber nicht verwendet.
Was dann die Lösung gebracht hatte war im Nachhinein Nextcloud innerhalb vom Container die Logdatei nach /mnt/ncdata schreiben zu lassen.
docker exec -ti –user www-data nextcloud-aio-nextcloud php occ config:system:set logfile –value=”/mnt/ncdata/nextcloud.log”
EDIT#2:
Pfad zum Logfile wird bei Containerneustart wieder überchrieben. Stattdessen liegt /var/www/html in einem eigenen Volume und so kann direkt unter /var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log auf das Logfile zugegriffen werden.
Beste Grüße
Von mir auch ein dickes Dankeschön. Auf meinem externen Server hat alles hervorragend geklappt.
Ich bin allerdings daran gescheitert, das ganze auf meinem lokalen Server (ohne Traefik) zum Laufen zu bringen. Lokal habe ich die Labels komplett weg gelassen.
Beim Setup von NC-AIO habe ich dann meine Subdomain angegeben, die ich lokal via nginx proxy manager verwalte.
Meinem NPM-Cointainer habe ich das Docker-Netzwerk “nextcloud-aio” mit als zusätzliches Netzwerk freigegeben.
In der NPM-Konfiguration habe ich meinen Proxy auf http://nextcloud-aio-apache:11000 konfiguriert. Leider bekomme ich hier nur ein 502 🙁
Hat von Euch einer das schon lokal mit einem solchen Setup zum laufen bekommen?
Ich sehe leider gerade meinen Fehler nicht 🙁
Hallo Christian
ich bin ebenfalls deiner Anleitung gefolgt und habe zwei Probleme:
zum einen ist in meinen Augen ein Fehler in der docker compose für die nextcloud-aio in der Konfiguration für dem traefik service:
– traefik.http.routers.nextcloud.service=nextcloud@file <- Das @file sollte da nicht stehen; es sein denn es gibt das File.
Zum andern funktioniert der Redirekt auf die Domain nicht: das Setup kann die Domain nicht öffnen, wenn versucht wird die neue AIO Instance zu erzeugen.
Ein kurzer Check zeigt auch das ein Aufruf der Domain einen 502 ausgibt.
nextcloud.meinedomain.de –> Bad gateway.
Im traefik access.log findet sich dazu folgender Eintrag:
172.31.0.1 – – [11/Jul/2023:14:51:38 +0000] “GET / HTTP/2.0” 502 11 “-” “-” 905 “nextcloud@docker” “http://172.30.0.3:443” 10ms
Fehlt noch irgendetwas in der traefik config?
Beste Grüsse
Alex
Danke für die tolle Anleitung! Hab es direkt beim ersten mal hinbekommen.
Ich habe nur das Problem, dass Crowdsec ein bisschen zu eifrig beim Bannen ist. Ich wurde selbst einmal gebannt (kam einfach nur forbidden anstatt der Seite). Da habe ich mit mehreren Tabs zwischen admin und normalen Nutzern hin und her gewechselt und dachte es läge da dran.
Heute hat mir aber ein Benutzer das Gleiche berichtet. Gibt es da eine Möglichkeit das zu verhindern?
Hallo
Wie kann ich die Dockerversion von Bigbluebutton in Nextcloud einbinden?
Mfg
Smarty70
Hi,
könnte man mit einer bestehen Installation auf die AIO-Version umsteigen, oder zerstört es einem dann die Datenbank?
Vielen Dank für die top Anleitung, hat wie gewohnt alles auf Anhieb problemlos und extrem komfortabel funktioniert.
Um bei der automatischen Fehlerprüfung innerhalb der Administratoreinstellungen in nextcloud das Thema “Default phone region not set” noch beheben möchte, kann dies durch ausführen des folgenden Befehls auf der Shell des Servers erledigen: