# ☁️ 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). ---