Nextcloud im Homelab: Private Cloud selbst hosten
Deine eigene Cloud – unabhängig, sicher und komplett unter deiner Kontrolle
Warum Nextcloud?
Viele nutzen Google Drive, Dropbox oder iCloud, ohne sich Gedanken darüber zu machen, wer Zugriff auf die eigenen Daten hat. Nextcloud ist die führende Open-Source-Lösung für selbstgehosteten Cloud-Speicher und bietet dir die volle Kontrolle über deine Dateien.
Nextcloud vs. kommerzielle Cloud-Dienste
| Kriterium | Nextcloud | Google Drive | Dropbox |
|---|---|---|---|
| Datenschutz | Volle Kontrolle | Daten bei Google | Daten bei Dropbox |
| Speicherplatz | Unbegrenzt (eigene HDD) | 15 GB kostenlos | 2 GB kostenlos |
| Monatliche Kosten | Nur Strom (~3€/Monat) | Ab 2,99€/Monat | Ab 11,99€/Monat |
| Open Source | Ja | Nein | Nein |
| Erweiterbar (Apps) | 400+ Apps | Begrenzt | Begrenzt |
| DSGVO-konform | Ja (eigener Server) | Fragwürdig | Fragwürdig |
Mit Nextcloud bekommst du nicht nur Cloud-Speicher, sondern eine komplette Produktivitäts-Suite: Kalender, Kontakte, Notizen, Videokonferenzen und sogar ein eigenes Office – alles selbst gehostet.
Voraussetzungen
Bevor du loslegst, stelle sicher, dass du Folgendes bereit hast:
Hardware-Anforderungen
Minimum (1–3 Benutzer)
- CPU: 2 Kerne (z.B. Intel N100, Raspberry Pi 4)
- RAM: 4 GB (8 GB empfohlen)
- Storage: 64 GB SSD für System + separate Datenplatte
- Netzwerk: Gigabit Ethernet
Empfohlen (5–10 Benutzer)
- CPU: 4 Kerne (Intel N100 oder besser)
- RAM: 8–16 GB
- Storage: NVMe SSD für System + HDD/SSD für Daten
- Netzwerk: Gigabit Ethernet
Software-Voraussetzungen
- Linux-Server (Ubuntu 22.04/24.04, Debian 12 oder Proxmox LXC)
- Docker & Docker Compose installiert
- Domain (optional, aber empfohlen für SSL und externen Zugriff)
- Grundlegende Terminal-Kenntnisse
Tipp: Falls du Docker noch nicht installiert hast, folge unserem Docker Homelab Guide für eine vollständige Anleitung.
Nextcloud mit Docker Compose installieren
Wir verwenden Docker Compose, um Nextcloud zusammen mit MariaDB (Datenbank) und Redis (Caching) aufzusetzen. Das ist der zuverlässigste und wartungsfreundlichste Weg.
Schritt 1: Verzeichnisstruktur anlegen
Erstelle zuerst die Ordnerstruktur für Nextcloud:
mkdir -p ~/nextcloud/{db,data,config,redis}
cd ~/nextcloud
Schritt 2: Docker Compose Datei erstellen
Erstelle die Datei docker-compose.yml im Nextcloud-Verzeichnis:
version: '3.8'
services:
db:
image: mariadb:11
container_name: nextcloud-db
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=EinSicheresRootPasswort123!
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=EinSicheresDBPasswort456!
networks:
- nextcloud-net
redis:
image: redis:7-alpine
container_name: nextcloud-redis
restart: always
command: redis-server --requirepass EinSicheresRedisPasswort789!
volumes:
- ./redis:/data
networks:
- nextcloud-net
app:
image: nextcloud:latest
container_name: nextcloud-app
restart: always
ports:
- "8080:80"
volumes:
- ./data:/var/www/html/data
- ./config:/var/www/html/config
- ./custom_apps:/var/www/html/custom_apps
- ./themes:/var/www/html/themes
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=EinSicheresDBPasswort456!
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=EinSicheresRedisPasswort789!
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=DeinAdminPasswort!
- NEXTCLOUD_TRUSTED_DOMAINS=localhost 192.168.1.100 cloud.deinedomain.de
- OVERWRITEPROTOCOL=https
- PHP_MEMORY_LIMIT=1G
- PHP_UPLOAD_LIMIT=10G
depends_on:
- db
- redis
networks:
- nextcloud-net
cron:
image: nextcloud:latest
container_name: nextcloud-cron
restart: always
entrypoint: /cron.sh
volumes:
- ./data:/var/www/html/data
- ./config:/var/www/html/config
- ./custom_apps:/var/www/html/custom_apps
depends_on:
- app
networks:
- nextcloud-net
networks:
nextcloud-net:
driver: bridge
Wichtig: Ändere unbedingt alle Passwörter in der Datei! Verwende sichere, einzigartige Passwörter für die Datenbank, Redis und den Admin-Account. Trage bei NEXTCLOUD_TRUSTED_DOMAINS die IP-Adresse deines Servers und ggf. deine Domain ein.
Schritt 3: Container starten
docker compose up -d
Warte ca. 1–2 Minuten, bis alle Container vollständig gestartet sind. Prüfe den Status mit:
docker compose ps
docker compose logs -f app
Wenn alle Container als Up (healthy) angezeigt werden, ist Nextcloud bereit.
Erster Login und Grundeinrichtung
Öffne deinen Browser und navigiere zu http://DEINE-SERVER-IP:8080. Da wir den Admin-Account bereits über die Umgebungsvariablen konfiguriert haben, kannst du dich direkt einloggen.
Login-Daten
- Benutzername: admin (oder der Wert von
NEXTCLOUD_ADMIN_USER) - Passwort: Das von dir gesetzte Admin-Passwort
Erste Schritte nach dem Login
- Profil einrichten: Klicke oben rechts auf das Avatar-Symbol und gehe zu „Persönliche Einstellungen“. Lege deine E-Mail-Adresse, Sprache und Zeitzone fest.
- Weitere Benutzer anlegen: Unter „Benutzer“ kannst du Accounts für Familie oder Teammitglieder erstellen. Vergib individuelle Speicherlimits und Gruppenberechtigungen.
- Sicherheitseinstellungen prüfen: Gehe zu „Verwaltung“ und dann „Sicherheit“. Aktiviere die Zwei-Faktor-Authentifizierung (2FA) und setze Passwort-Richtlinien.
- E-Mail-Versand konfigurieren: Unter „Verwaltung“ > „Grundeinstellungen“ kannst du einen SMTP-Server eintragen, damit Nextcloud Benachrichtigungen und Passwort-Resets versenden kann.
Tipp: Prüfe die Verwaltungsübersicht unter „Verwaltung“ > „Übersicht“. Dort zeigt Nextcloud Warnungen an, falls Konfigurationen fehlen oder Sicherheitsprobleme bestehen.
Apps installieren
Nextcloud wird mit dem App Store zur echten Produktivitäts-Plattform. Hier sind die wichtigsten Apps, die du sofort installieren solltest:
Essenzielle Apps
Calendar
Vollwertiger CalDAV-Kalender, der sich mit jedem Gerät synchronisieren lässt. Ersetzt Google Calendar komplett.
Installation: Apps > Büro & Organisation > Calendar
Contacts
CardDAV-Kontaktverwaltung für alle deine Kontakte. Synchronisiert sich nahtlos mit Smartphones und E-Mail-Clients.
Installation: Apps > Büro & Organisation > Contacts
Notes
Markdown-fähige Notizen-App. Perfekter Ersatz für Google Keep oder Apple Notes.
Installation: Apps > Büro & Organisation > Notes
Nextcloud Talk
Videoanrufe, Chat und Bildschirmfreigabe – dein eigenes Zoom/Teams. Ende-zu-Ende-verschlüsselt.
Installation: Apps > Kommunikation > Talk
Nextcloud Office (Collabora)
Dokumente, Tabellen und Präsentationen direkt im Browser bearbeiten. Kompatibel mit Microsoft Office Formaten.
Installation: Apps > Büro & Organisation > Nextcloud Office
Weitere empfehlenswerte Apps
- Deck: Kanban-Board für Projektmanagement (Trello-Alternative)
- Maps: Kartenansicht für geogetaggte Fotos
- Memories: Fortschrittliche Fotoverwaltung (Google Photos-Alternative)
- Music: Musik-Player und Bibliothek
- Cookbook: Rezeptverwaltung mit Import-Funktion
Apps installierst du über die Web-Oberfläche unter dem Avatar-Menü > „Apps“, oder per OCC-Befehl im Container:
docker exec -u www-data nextcloud-app php occ app:install calendar
docker exec -u www-data nextcloud-app php occ app:install contacts
docker exec -u www-data nextcloud-app php occ app:install notes
docker exec -u www-data nextcloud-app php occ app:install spreed
docker exec -u www-data nextcloud-app php occ app:install richdocuments
Clients einrichten
Nextcloud bietet Clients für alle gängigen Plattformen. So synchronisierst du deine Dateien, Kalender und Kontakte auf allen Geräten.
Desktop-Client (Windows, macOS, Linux)
- Lade den Client von nextcloud.com/install herunter
- Gib die Server-Adresse ein (z.B.
https://cloud.deinedomain.de) - Melde dich mit deinem Nextcloud-Account an
- Wähle die Ordner, die synchronisiert werden sollen
Der Desktop-Client hält deine Dateien automatisch synchron – ähnlich wie Dropbox, aber auf deinem eigenen Server.
Mobile Apps (Android & iOS)
- Nextcloud App: Dateizugriff, automatischer Foto-Upload, Offline-Dateien
- Nextcloud Talk: Chat und Videoanrufe auf dem Smartphone
- DAVx5 (Android): Synchronisiert Kalender und Kontakte mit der Standard-Kalender/Kontakte-App
- iOS: Kalender und Kontakte lassen sich nativ über CalDAV/CardDAV einrichten
WebDAV-Zugriff
Für fortgeschrittene Nutzung kannst du Nextcloud auch per WebDAV einbinden. Die WebDAV-Adresse lautet:
https://cloud.deinedomain.de/remote.php/dav/files/BENUTZERNAME/
WebDAV funktioniert mit jedem Dateimanager (Windows Explorer, macOS Finder, Linux Nautilus) und ermöglicht den direkten Zugriff auf deine Nextcloud-Dateien wie auf ein Netzlaufwerk.
CalDAV & CardDAV Adressen
# CalDAV (Kalender)
https://cloud.deinedomain.de/remote.php/dav/calendars/BENUTZERNAME/
# CardDAV (Kontakte)
https://cloud.deinedomain.de/remote.php/dav/addressbooks/users/BENUTZERNAME/
Performance optimieren
Eine frische Nextcloud-Installation läuft bereits, aber mit ein paar Optimierungen wird sie deutlich schneller und reaktionsfreudiger.
Redis-Caching verifizieren
Da wir Redis bereits in der Docker Compose Datei konfiguriert haben, sollte das Caching automatisch aktiv sein. Prüfe es mit:
docker exec -u www-data nextcloud-app php occ config:list system | grep -A5 redis
Falls Redis nicht automatisch konfiguriert wurde, füge Folgendes in die Datei config/config.php ein:
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'redis',
'port' => 6379,
'password' => 'EinSicheresRedisPasswort789!',
),
PHP OPcache optimieren
OPcache speichert vorkompilierte PHP-Skripte im Arbeitsspeicher und beschleunigt dadurch die Seitenladezeiten erheblich. Erstelle eine eigene PHP-Konfiguration:
# Datei: ~/nextcloud/opcache.ini
opcache.enable=1
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1
Binde die Datei als Volume in den app-Service der docker-compose.yml ein:
volumes:
- ./opcache.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini
Cron-Jobs richtig konfigurieren
Nextcloud benötigt regelmäßige Hintergrundaufgaben für Dateiscans, Benachrichtigungen und Aufräumarbeiten. Unser Docker Compose Setup beinhaltet bereits einen separaten Cron-Container. Stelle sicher, dass Nextcloud auf „Cron“ eingestellt ist:
- Gehe zu „Verwaltung“ > „Grundeinstellungen“
- Wähle unter „Hintergrund-Aufgaben“ die Option „Cron (Empfohlen)“
Alternativ kannst du die Einstellung per Kommandozeile setzen:
docker exec -u www-data nextcloud-app php occ background:cron
Weitere Optimierungen
- Pretty URLs aktivieren:
'htaccess.RewriteBase' => '/'in config.php undphp occ maintenance:update:htaccess - Standardtelefonregion setzen:
'default_phone_region' => 'DE'in config.php - Upload-Limit erhöhen: Bereits in der Docker Compose Datei über
PHP_UPLOAD_LIMIT=10Gkonfiguriert
SSL mit Reverse Proxy
Für sicheren HTTPS-Zugriff und externen Zugang brauchst du einen Reverse Proxy mit SSL-Zertifikat. Hier zeigen wir zwei beliebte Optionen.
Option A: Caddy (Einfachste Lösung)
Caddy ist der einfachste Reverse Proxy, weil er automatisch kostenlose Let’s Encrypt SSL-Zertifikate beschafft und erneuert.
# Caddyfile
cloud.deinedomain.de {
reverse_proxy localhost:8080
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options "nosniff"
X-Frame-Options "SAMEORIGIN"
Referrer-Policy "strict-origin-when-cross-origin"
}
redir /.well-known/carddav /remote.php/dav 301
redir /.well-known/caldav /remote.php/dav 301
}
Starte Caddy als Docker Container oder installiere ihn direkt:
sudo apt install caddy
sudo systemctl enable --now caddy
Option B: Nginx Proxy Manager (Grafische Oberfläche)
Wenn du eine grafische Verwaltung bevorzugst, ist Nginx Proxy Manager ideal. Füge diesen Service zu deiner Docker Compose Datei hinzu:
nginx-proxy:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: always
ports:
- "80:80"
- "443:443"
- "81:81" # Admin Panel
volumes:
- ./npm/data:/data
- ./npm/letsencrypt:/etc/letsencrypt
networks:
- nextcloud-net
- Öffne das Admin-Panel unter
http://DEINE-IP:81 - Login:
admin@example.com/changeme - Erstelle einen neuen Proxy Host für deine Domain
- Aktiviere SSL mit Let’s Encrypt und „Force SSL“
Wichtig: Vergiss nicht, die Ports 80 und 443 in deinem Router weiterzuleiten und die NEXTCLOUD_TRUSTED_DOMAINS sowie OVERWRITEPROTOCOL=https in der Docker Compose Datei korrekt zu setzen.
Backup-Strategie für Nextcloud
Ohne Backup ist deine selbstgehostete Cloud ein Risiko. Hier ist eine bewährte 3-2-1-Backup-Strategie speziell für Nextcloud.
Was muss gesichert werden?
- Datenverzeichnis:
~/nextcloud/data/– alle Benutzer-Dateien - Konfiguration:
~/nextcloud/config/– Nextcloud-Einstellungen - Datenbank: MariaDB Dump der Nextcloud-Datenbank
- Custom Apps:
~/nextcloud/custom_apps/– installierte Erweiterungen
Backup-Skript
Erstelle ein Skript, das du per Cron täglich ausführen lässt:
#!/bin/bash
# nextcloud-backup.sh
# Tägliches Backup für Nextcloud
BACKUP_DIR="/mnt/backup/nextcloud/$(date +%Y-%m-%d)"
NC_DIR="$HOME/nextcloud"
mkdir -p "$BACKUP_DIR"
# 1. Wartungsmodus aktivieren
docker exec -u www-data nextcloud-app php occ maintenance:mode --on
# 2. Datenbank sichern
docker exec nextcloud-db mysqldump \
-u nextcloud -pEinSicheresDBPasswort456! \
nextcloud > "$BACKUP_DIR/nextcloud-db.sql"
# 3. Dateien sichern
rsync -a "$NC_DIR/data/" "$BACKUP_DIR/data/"
rsync -a "$NC_DIR/config/" "$BACKUP_DIR/config/"
rsync -a "$NC_DIR/custom_apps/" "$BACKUP_DIR/custom_apps/"
rsync -a "$NC_DIR/themes/" "$BACKUP_DIR/themes/"
# 4. Wartungsmodus deaktivieren
docker exec -u www-data nextcloud-app php occ maintenance:mode --off
# 5. Alte Backups entfernen (älter als 30 Tage)
find /mnt/backup/nextcloud/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;
echo "Backup abgeschlossen: $BACKUP_DIR"
Mache das Skript ausführbar und richte einen Cron-Job ein:
chmod +x ~/nextcloud-backup.sh
# Cron-Job für täglich um 3:00 Uhr
crontab -e
# Folgende Zeile einfügen:
0 3 * * * /home/DEINUSER/nextcloud-backup.sh >> /var/log/nextcloud-backup.log 2>&1
3-2-1-Regel umsetzen
- 3 Kopien: Originaldaten + lokales Backup + externes Backup
- 2 verschiedene Medien: SSD (Original) + externe HDD (lokales Backup)
- 1 Off-Site: Nutze
rcloneoderresticfür verschlüsseltes Backup auf einen günstigen VPS oder S3-kompatiblen Storage
Wiederherstellung testen
Ein Backup ist nur so gut wie die letzte erfolgreiche Wiederherstellung. Teste regelmäßig (mindestens einmal pro Quartal), ob du aus deinem Backup eine funktionierende Nextcloud-Instanz wiederherstellen kannst.
Selbsthosten zu viel Aufwand? Wenn du Nextcloud-Funktionen ohne Server-Wartung willst: IONOS Nextcloud Workspace (Affiliate-Link) bietet gehostete Nextcloud im DE-Rechenzentrum — gleiche Open-Source-Basis, ohne Docker, Backups oder Updates selbst zu betreuen.
Managed-Alternative aus der Schweiz: Wer privacy-fokussierten Cloud-Speicher will, aber keine eigene Nextcloud-Instanz pflegen möchte: Proton Drive (Affiliate-Link). End-to-End-Verschlüsselung, Server in CH/EU, Sync-Apps für alle Plattformen — ähnliche Idee wie Nextcloud, aber als fertiger Dienst.
Fazit
Mit Nextcloud im Homelab hast du eine leistungsfähige, private Cloud-Lösung, die kommerzielle Anbieter in vielen Bereichen übertrifft. Du behältst die volle Kontrolle über deine Daten, sparst monatliche Abo-Kosten und kannst das System beliebig erweitern.
Die wichtigsten Punkte nochmal zusammengefasst:
- Docker Compose macht Installation und Updates einfach
- Redis und OPcache sorgen für gute Performance
- SSL per Reverse Proxy ist Pflicht für sicheren Zugriff
- Regelmäßige Backups nach der 3-2-1-Regel schützen deine Daten
- Mit Apps wie Calendar, Contacts und Talk wird Nextcloud zur vollständigen Google-Alternative
Du brauchst kein teures NAS oder eine leistungsstarke Hardware – ein einfacher Mini-PC reicht völlig aus. Weitere Tipps für dein Homelab-Setup findest du in unseren verlinkten Guides.
Wer Nextcloud lieber bei einem Hoster betreibt, findet bei uns aktuelle Netcup Gutscheine mit 30% Rabatt aufs Webhosting.