117 lines
3.0 KiB
Markdown
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).
|
|
|
|
---
|
|
|