4.2 KiB
title, description, published, date, tags, editor, dateCreated
| title | description | published | date | tags | editor | dateCreated |
|---|---|---|---|---|---|---|
| Nextcloud auf Raspberry PI5 | Meine Installation | true | 2026-01-13T20:35:28.604Z | nextcloud, pi5, docker, traefik, hard piece of work | markdown | 2026-01-13T20:33:57.688Z |
Systemdokumentation: Nextcloud auf Raspberry Pi 5
Dies ist eine umfassende Systemdokumentation deiner Nextcloud-Instanz, basierend auf der erfolgreichen Fehlerbehebung und Migration vom 4. Januar 2026.
1. Systemübersicht
Das System basiert auf einer Container-Architektur (Docker), die hinter einem Traefik Reverse Proxy betrieben wird. Die Konfiguration von Traefik erfolgt über den File Provider (dynamische YAML-Dateien).
Komponenten & Versionen
| Komponente | Image / Version | Zweck |
|---|---|---|
| Nextcloud | nextcloud:latest (32.0.3) |
Hauptanwendung (PHP-Apache) |
| MariaDB | mariadb:11.4 |
Datenbank (Speicherung von Metadaten) |
| Redis | redis:7-alpine |
In-Memory Cache (Locking & Performance) |
| Traefik | traefik:latest |
Reverse Proxy & SSL-Terminierung |
2. Infrastruktur & Netzwerk
Alle Container kommunizieren über ein externes Docker-Netzwerk namens traefik.
- Externes Netzwerk:
traefik(Zuständig für die Kommunikation zwischen Proxy und App). - IP-Adressbereich:
172.16.0.0/12(als Trusted Proxy in Nextcloud hinterlegt). - SSL-Zertifikate: Automatisiert via Let's Encrypt (DNS-01 oder HTTP-01 über Traefik).
3. Dateistruktur & Volumes
Die Daten liegen persistent auf einem externen Mount-Punkt (/mnt/data/).
| Pfad auf Host | Zweck |
|---|---|
/mnt/data/nextcloud/www |
Nextcloud Core-Dateien & Konfiguration |
/mnt/data/nextcloud/data |
Benutzerdaten (Dateien, Bilder, etc.) |
/mnt/data/nextcloud/db |
MariaDB Datenbank-Dateien |
/opt/compose/nextcloud/ |
Docker Compose & .secrets |
/opt/compose/traefik/dynamic/ |
Traefik Routing & Middleware Konfiguration |
4. Konfigurations-Details
4.1 Datenbank-Zugriff
Aufgrund der Migration eines bestehenden Dumps wurde der Datenbankbenutzer auf nextclouduser festgeschrieben. Die Authentifizierung erfolgt über Docker Secrets.
- DB-User:
nextclouduser - DB-Name:
nextcloud - Secrets: Pfade liegen unter
./.secrets/(db_user_pw,db_root_pw).
4.2 Traefik Routing (Dynamic Config)
Um Performance-Probleme und den Fehler 429 Too Many Requests zu vermeiden, wurde eine spezifische Middleware-Chain für Nextcloud erstellt.
Wichtige Middlewares:
chain-nextcloud: Beinhaltet Security-Headers und Kompression, verzichtet jedoch auf striktes Rate-Limiting.nextcloud-dav: Regelt die Weiterleitung für CalDAV/CardDAV (.well-knownredirects).
4.3 Nextcloud config.php (Auszug)
Wichtige Parameter für den Betrieb hinter Traefik:
'overwrite.cli.url' => 'https://cloud.da.home-webserver.de',
'overwritehost' => 'cloud.da.home-webserver.de',
'overwriteprotocol' => 'https',
'trusted_proxies' => ['172.16.0.0/12'],
'dbuser' => 'nextclouduser',
5. Wartung & Fehlerbehebung
Häufige Befehle (OCC)
Da Nextcloud in einem Docker-Container läuft, müssen occ Befehle mit dem User www-data ausgeführt werden:
- Indizes reparieren:
docker exec --user www-data nextcloud php occ db:add-missing-indices - Wartungsmodus aus:
docker exec --user www-data nextcloud php occ maintenance:mode --off - Upgrade durchführen:
docker exec --user www-data nextcloud php occ upgrade
Backup & Restore
Ein Datenbank-Import erfolgt über die Pipe-Struktur direkt in den Container:
cat backup.sql | docker exec -i nextcloud-db mariadb -u root --password=$(cat ./.secrets/db_root_pw) nextcloud
6. Bekannte gelöste Probleme (Historie)
- MIME-Type Fehler: Verursacht durch Traefik Rate-Limit (Status 429). Gelöst durch Entfernung des Rate-Limits für die Nextcloud-Domain.
- Datenbank-Login: Abgleich zwischen
config.phpund DB-Privilegien fürnextclouduserkorrigiert. - Content Security Policy (CSP): Login-Blockade gelöst durch Setzen der
overwrite-Parameter in derconfig.php.
Dokumentationsstand: 04. Januar 2026 Status: Aktiv / Stabil
Möchtest du, dass ich diesen Text in eine Datei namens README.md in deinem Projektordner schreibe?