Files
docker_nextcloud/README.md
2026-03-08 20:02:07 +00:00

117 lines
3.0 KiB
Markdown

# ☁️ Nextcloud Docker-Setup (LXC/Ubuntu)
Dieses Repository enthält ein vollständig optimiertes Docker-Setup für **Nextcloud Hub 9**. Es beinhaltet eine MariaDB-Datenbank, Redis für Caching, einen integrierten Cron-Container und den Nginx Proxy Manager für SSL/Zertifikatsverwaltung.
## Features
* **Performance:** Redis für File-Locking und APCu für lokales Caching.
* **Sicherheit:** Automatische Konfiguration von `trusted_domains` und `trusted_proxies`.
* **Apps:** Automatische Installation von Must-Have Apps (Calendar, Contacts, Deck, etc.).
* **Automatisierung:** `init-nextcloud.sh` für die schlüsselfertige Ersteinrichtung.
* **Mail:** Vorkonfigurierter SMTP-Versand über Umgebungsvariablen.
---
## Installation
### 1. Vorbereitung
Docker Installation:
```
wget -qO- https://get.docker.com | sudo sh
```
Klone das Repository oder erstelle das Verzeichnis:
```bash
mkdir -p /srv/docker/nextcloud && cd /srv/docker/nextcloud
```
### 2. Konfiguration
Erstelle eine `.env` Datei basierend auf der Vorlage:
```bash
cp example.env .env
vim .env
```
> **Wichtig:** Passe dort Passwörter, die `NEXTCLOUD_IP` und deine SMTP-Daten an.
### 3. Ersteinrichtung (Setup-Skript)
Das Skript fährt die Container hoch, wartet auf die Datenbank und führt alle Optimierungen (Indizes, Apps, Cron-Modus) automatisch aus:
```bash
chmod +x init-nextcloud.sh
./init-nextcloud.sh
```
---
## Struktur & Verzeichnisse
Die Daten werden lokal im Projektverzeichnis gespeichert, um Backups zu erleichtern:
* `data_nextcloud/`: Alle Web-Dateien und Benutzerdaten der Cloud.
* `data_db/`: Die MariaDB-Datenbankdateien.
* `data_npm_data/`: Konfiguration des Nginx Proxy Managers.
* `data_npm_letsencrypt/`: SSL-Zertifikate.
---
## ⚙️ Wichtige Befehle
**Container verwalten:**
```bash
docker compose up -d # Starten (Hintergrund)
docker compose down # Stoppen
docker compose logs -f # Logs in Echtzeit einsehen
```
**OCC-Befehle manuell ausführen:**
```bash
docker compose exec --user www-data app php occ [befehl]
```
---
## ⏰ Hintergrundaufgaben (Cron)
Nextcloud ist im Setup auf den **Cron-Modus** eingestellt. Ein dedizierter Container übernimmt die Aufgaben automatisch.
Um sicherzugehen, dass das Host-System den Cron triggert (optionaler Best-Practice), kann ein Crontab-Eintrag erstellt werden:
```bash
# Öffne Crontab
crontab -e
# Füge diese Zeile hinzu (alle 5 Min):
*/5 * * * * docker compose -f /srv/docker/nextcloud/compose.yml exec --user www-data app php -f /var/www/html/cron.php
```
---
## E-Mail Konfiguration
Die Mail-Einstellungen werden direkt über die `.env` gesteuert. Nach dem ersten Login unter:
`Einstellungen -> Grundeinstellungen -> E-Mail-Server` prüfen und eine Test-Mail senden.
---
## Fehlerbehebung
* **Header-Warnung (Trusted Proxies):** Diese wird durch die Variablen `TRUSTED_PROXIES_RANGE_1/2` in der `.env` gelöst.
* **Secure Connection Error:** Wenn `OVERWRITEPROTOCOL=https` gesetzt ist, muss der Zugriff zwingend über den Nginx Proxy Manager mit SSL erfolgen (nicht direkt über IP:8080).
---