Nextcloud selbst hosten: Die Google-Drive-Alternative, die dir gehört
Dateien, Kalender, Kontakte, Fotos und Dokumente – Google Drive kann das alles, aber es gehört Google. Mit Nextcloud betreibst du dieselbe Funktionsvielfalt auf deinem eigenen Server: Installation, Client-Sync und eine Backup-Strategie, die wirklich trägt – inklusive der fünf Fehler, die wir beim ersten Mal gemacht haben.
Vorbereitung: Was du brauchst
- Ein Server mit Docker & Compose (Anleitung im Docker-Tutorial) – 2 GB RAM sind die realistische Untergrenze, 4 GB sind komfortabel
- Eine Domain (z. B.
cloud.example.org), deren DNS auf deinen Server zeigt - Ein Reverse Proxy für HTTPS – siehe unseren Proxy-Vergleich
Nextcloud besteht im Kern aus drei Komponenten: der App selbst, einer Datenbank (wir nehmen MariaDB) und Redis als Cache. Redis ist kein Luxus, sondern Pflicht – ohne ihn bremst Nextcloud bei größeren Bibliotheken spürbar und es kommt zu Lock-Fehlern.
Der Docker-Compose-Stack
services:
nextcloud:
image: nextcloud:stable
restart: unless-stopped
volumes:
- ./html:/var/www/html
- ./data:/var/www/html/data
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=SEHR_SICHERES_PASSWORT
- REDIS_HOST=redis
depends_on: [db, redis]
networks: [intern]
db:
image: mariadb:11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ROOT_PASSWORT
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=SEHR_SICHERES_PASSWORT
networks: [intern]
redis:
image: redis:alpine
restart: unless-stopped
networks: [intern]
networks:
intern:
Wichtig: Der Stack hat kein einziges öffentliches Port-Binding. Erreichbar ist
Nextcloud ausschließlich über den Reverse Proxy, der per externem Netzwerk
(docker network connect proxy nextcloud bzw. Label-Konfiguration) an den Container
angeschlossen wird. Daten liegen ausschließlich in den Ordnern ./html,
./data und ./db – genau die braucht dein Backup.
Ersteinrichtung & trusted_domains
Nach docker compose up -d öffnest du https://cloud.example.org und legst
ein Admin-Konto an. Die Installation übernimmt die Tabellen automatisch. Ein Klassiker-Fehler folgt
sofort: Öffnest du die Instanz über die IP oder eine zweite Domain, erscheint
Access through untrusted domain. Die Lösung steht in der
config/config.php:
'trusted_domains' =>
array (
0 => 'cloud.example.org',
1 => '192.168.0.10', // nur falls lokal nötig
),
💡 Tipp: Danach noch sudo -u www-data php occ maintenance:mode --off
ausführen, falls die Instanz in den Wartungsmodus gefallen ist, und die config per
chown -R www-data:www-data config korrekt berechtigen. Über die Admin-Oberfläche
(Einstellungen → Übersicht) siehst du außerdem, ob alle Sicherheitswarnungen abgearbeitet sind.
Clients, Sync & Apps
Nextcloud punktet mit nativen Clients für Windows, macOS, Linux, Android und iOS – die Desktop-App legt einen Ordner an, der permanent synchronisiert, inklusive Ende-zu-Ende-Verschlüsselung und selektivem Sync für Ordner, die du nur online halten willst.
Apps, die sich nach unserer Erfahrung lohnen:
- Kalender & Kontakte – CalDAV/CardDAV-Ersatz für Google Kalender
- Photos – automatischer Foto-Upload vom Handy (bewusst ohne Gesichtserkennung in der Cloud, falls dir das wichtig ist)
- Notes – Markdown-Notizen mit Sync
- Deck – Kanban-Boards im Stil von Trello
- Talk – verschlüsselte Video-/Text-Chats auf eigener Infrastruktur
Jede App ist ein Update- und Sicherheitsvektor mehr – installiere nur, was du wirklich nutzt.
Backup & Update – die richtige Reihenfolge
Ein Datei-Backup allein genügt nicht: Datenbank und Dateien müssen konsistent gesichert werden, sonst hast du nach der Wiederherstellung eine zerrissene Instanz. Die sichere Sequenz:
# 1. Wartungsmodus aktivieren
docker exec -u www-data nextcloud php occ maintenance:mode --on
# 2. Datenbank konsistent sichern (mysqldump im db-Container)
docker exec db mysqldump --single-transaction -u nextcloud -pSEHR_SICHERES_PASSWORT nextcloud \
> backup_nextcloud_$(date +%F).sql
# 3. Dateien kopieren (Ordner html/ und data/ des Stacks)
rsync -a ~/nextcloud/ /pfad/zum/externen-backup/
# 4. Wartungsmodus wieder aus
docker exec -u www-data nextcloud php occ maintenance:mode --off
Das Backup landet idealerweise per borgbackup auf einem zweiten Standort
(3-2-1-Regel aus unserer Härtungs-Checkliste).
Updates laufen danach entspannt:
docker compose pull nextcloud
docker compose up -d
docker exec -u www-data nextcloud php occ upgrade
Die 5 häufigsten Fehler
-
Dateirechte ignoriert
Nextcloud läuft alswww-data. Gehören Volumes Root, erscheinen undurchsichtige Fehler. Nach jedem manuellen Eingriff:chown -R www-data:www-data html data. -
trusted_domains vergessen
Wer nach Domainwechsel oder IP-Zugriff nur „untrusted domain“ sieht, hat die config nicht angepasst – nicht die Installation neu aufsetzen! -
Ohne Redis betrieben
Lock-Warnungen und lahme Syncs bei größeren Datenmengen sind fast immer das Symptom fehlender Redis-Cache-Server. -
HTTP statt HTTPS
Nextcloud ohne TLS im Reverse Proxy? Passwörter und Dateien gehen im Klartext über das Netz. Außerdem verweigern viele Apps den Sync ohne HTTPS. -
Backup ohne Datenbank
Nur die Dateien gesichert, die DB vergessen – nach der Wiederherstellung fehlen Metadaten, Freigaben und Versionen. Immer beide Teile sichern, in der richtigen Reihenfolge.
✅ Zum Mitnehmen: Nextcloud ist an einem Nachmittag aufgesetzt – der Betrieb ist die eigentliche Aufgabe: regelmäßige Updates in der richtigen Reihenfolge, konsistente Backups aus DB + Dateien, und nur Apps installieren, die du nutzt. Dann hast du eine Google-Drive- Alternative, deren Daten wirklich dir gehören – für 0 € Softwarekosten.