docs: add all untracked content
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
---
|
||||
title: Nextcloud auf Raspberry PI5
|
||||
description: Meine Installation
|
||||
published: true
|
||||
date: 2026-01-13T20:35:28.604Z
|
||||
tags: nextcloud, pi5, docker, traefik, hard piece of work
|
||||
editor: markdown
|
||||
dateCreated: 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-known` redirects).
|
||||
|
||||
### 4.3 Nextcloud `config.php` (Auszug)
|
||||
|
||||
Wichtige Parameter für den Betrieb hinter Traefik:
|
||||
|
||||
```php
|
||||
'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:
|
||||
|
||||
```bash
|
||||
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.php` und DB-Privilegien für `nextclouduser` korrigiert.
|
||||
* **Content Security Policy (CSP):** Login-Blockade gelöst durch Setzen der `overwrite`-Parameter in der `config.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?
|
||||
Reference in New Issue
Block a user