Nextcloud ist die bekannteste selbstgehostete Cloud: Dateien synchronisieren wie mit Dropbox, Kalender und Kontakte wie bei Google oder iCloud, dazu Apps für Notizen, Aufgaben und vieles mehr. Diese Anleitung richtet eine schlanke, stabile Variante mit Docker Compose ein.
Du brauchst:
- einen Server mit Docker, mindestens 2 GB RAM für Nextcloud
- Caddy mit HTTPS und eine Adresse wie
cloud.meinhomelab.duckdns.org - ca. 45 Minuten
Alternative: Das Nextcloud-Projekt bietet mit Nextcloud All-in-One (AIO) auch ein offizielles Komplettpaket an, das Updates und Backups mitbringt. Die Kombination mit einem vorhandenen Reverse Proxy ist dort aber etwas aufwendiger – deshalb hier der klassische Weg.
Schritt 1: Ordner und Compose-Datei
mkdir -p ~/apps/nextcloud && cd ~/apps/nextcloud
nano docker-compose.yml
services:
db:
image: mariadb:11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: "BITTE-AENDERN-1"
MYSQL_PASSWORD: "BITTE-AENDERN-2"
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
volumes:
- ./db:/var/lib/mysql
redis:
image: redis:alpine
restart: unless-stopped
app:
image: nextcloud:stable
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- db
- redis
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: "BITTE-AENDERN-2"
REDIS_HOST: redis
NEXTCLOUD_TRUSTED_DOMAINS: "cloud.meinhomelab.duckdns.org"
OVERWRITEPROTOCOL: "https"
volumes:
- ./html:/var/www/html
networks:
- default
- proxy
networks:
proxy:
external: true
Beide Passwörter ersetzen – MYSQL_PASSWORD steht zweimal und muss gleich sein. Die Domain an deine anpassen.
Schritt 2: Caddy konfigurieren
nano ~/apps/caddy/Caddyfile
cloud.meinhomelab.duckdns.org {
redir /.well-known/carddav /remote.php/dav/ 301
redir /.well-known/caldav /remote.php/dav/ 301
header Strict-Transport-Security "max-age=31536000;"
reverse_proxy nextcloud-app:80
}
Die beiden redir-Zeilen sorgen dafür, dass Kalender- und Kontakte-Apps Nextcloud automatisch finden.
Schritt 3: Starten und einrichten
cd ~/apps/nextcloud && docker compose up -d
cd ~/apps/caddy && docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
Nach ein, zwei Minuten https://cloud.meinhomelab.duckdns.org öffnen:
- Admin-Benutzername und Passwort festlegen
- Die Datenbank ist dank der Einstellungen schon vorausgefüllt – Installieren
- Die vorgeschlagenen Apps kannst du installieren oder überspringen
Schritt 4: Reverse Proxy bekannt machen
Nextcloud muss wissen, dass Anfragen über Caddy kommen. Zuerst das Adressnetz des proxy-Netzwerks herausfinden:
docker network inspect proxy --format '{{ (index .IPAM.Config 0).Subnet }}'
Die Ausgabe (z. B. 172.18.0.0/16) dann eintragen:
docker exec -u www-data nextcloud-app php occ config:system:set trusted_proxies 0 --value="172.18.0.0/16"
Schritt 5: Hintergrundjobs per Cron
Nextcloud erledigt Aufräumarbeiten im Hintergrund. Zuverlässig klappt das per Cron auf dem Server:
crontab -e
Zeile ergänzen:
*/5 * * * * docker exec -u www-data nextcloud-app php -f /var/www/html/cron.php
Dann in Nextcloud unter Verwaltungseinstellungen → Grundeinstellungen → Hintergrund-Aufgaben auf Cron umstellen.
Schritt 6: Systemcheck
Unter Verwaltungseinstellungen → Übersicht prüft Nextcloud die Einrichtung und zeigt Warnungen an. Häufige Hinweise lassen sich mit occ beheben, z. B.:
docker exec -u www-data nextcloud-app php occ maintenance:repair --include-expensive
docker exec -u www-data nextcloud-app php occ db:add-missing-indices
docker exec -u www-data nextcloud-app php occ config:system:set default_phone_region --value="DE"
Nicht jede Warnung ist kritisch – wichtig ist, dass keine Sicherheitswarnungen übrig bleiben.
Schritt 7: Geräte verbinden
| Gerät | Was | Wie |
|---|---|---|
| Laptop/PC | Dateien | Nextcloud Desktop-App, Server-Adresse eintragen, Ordner wählen |
| Handy | Dateien, Fotos | Nextcloud-App aus dem App Store / Google Play / F-Droid |
| Android | Kalender, Kontakte | DAVx⁵ installieren, mit Nextcloud-Adresse anmelden |
| iPhone | Kalender, Kontakte | Einstellungen → Kalender → Accounts → Account hinzufügen → Andere → CalDAV (bzw. CardDAV für Kontakte), Server: deine Nextcloud-Adresse |
Tipp: Für Handys und Programme in Nextcloud unter Persönliche Einstellungen → Sicherheit eigene App-Passwörter erzeugen – dann musst du dein Hauptpasswort nirgends speichern.
Updates
cd ~/apps/nextcloud
docker compose pull && docker compose up -d
Wichtig: Nextcloud lässt sich nur eine Hauptversion nach der anderen aktualisieren. Regelmäßig updaten statt monatelang liegen lassen – und vorher ein Backup oder einen Snapshot anlegen.
Backup
Die Ordner html (Programm, Einstellungen, deine Dateien unter html/data) und db (Datenbank) enthalten alles. Am einfachsten sichert die Proxmox-Sicherung die komplette VM.