README.md hinzugefügt

This commit is contained in:
2026-03-22 17:52:31 +01:00
parent 3a423d18cb
commit 0c9d567660

95
README.md Normal file
View File

@@ -0,0 +1,95 @@
```markdown
# ☁️ Enterprise Nextcloud Stack (Docker Compose)
Dieses Repository bietet eine schlüsselfertige, hochperformante Nextcloud-Umgebung. Der Stack ist speziell für die Zusammenarbeit in Teams optimiert und enthält vorkonfigurierte Dienste für Office, Kommunikation und Echtzeit-Benachrichtigungen.
## 📝 Projektbeschreibung
Dieses Setup transformiert eine Standard-Nextcloud in eine vollwertige Collaboration-Plattform. Durch die Trennung von Datenbank, Cache und Dokumentenserver erreichen wir eine Stabilität, die auch bei 20+ aktiven Nutzern flüssig bleibt.
### Kern-Komponenten:
* **Nextcloud Core:** Dateiverwaltung & Hub.
* **MariaDB 10.11:** Robuste SQL-Datenbank.
* **Redis:** In-Memory Cache für rasante Ladezeiten.
* **ONLYOFFICE Document Server:** Live-Editierung von Dokumenten.
* **Nextcloud Talk & Signaling:** Video-Telefonie ohne Verbindungsabbrüche.
* **Notify Push:** Websocket-Service für Benachrichtigungen in Millisekunden.
---
## 🚀 Deployment (Installation)
### 1. Verzeichnisse vorbereiten
Erstelle zunächst die notwendige Ordnerstruktur auf deinem Host-System, um die Persistenz der Daten zu gewährleisten:
```bash
mkdir nextcloud-system && cd nextcloud-system
mkdir -p data config db oo_data oo_log
```
### 2. Docker Compose Konfiguration
Erstelle die Datei `docker-compose.yml` und füge deine Konfiguration ein.
> [!CAUTION]
> **Wichtig:** Ersetze vor dem Start alle Platzhalter wie `DEIN_PASSWORT`, `JWT_SECRET` und deine Domain `cloud.deinedomain.de` durch deine individuellen Werte.
### 3. Cloudflare Tunnel (Networking)
Um den Stack sicher ohne offene Ports zu betreiben, konfiguriere deinen Cloudflare Tunnel mit folgenden Public Hostnames:
| Hostname | Interner Ziel-Port | Dienst |
| :--- | :--- | :--- |
| `cloud.deinedomain.de` | `http://localhost:8080` | Nextcloud (Hauptinstanz) |
| `office.deinedomain.de` | `http://localhost:8081` | OnlyOffice Server |
| `talk.deinedomain.de` | `http://localhost:8082` | Signaling Server |
| `cloud.deinedomain.de/push` | `http://localhost:7867` | High Performance Push |
---
## ⚙️ Post-Deployment Konfiguration
### 4. Nextcloud config.php Tuning
Damit Nextcloud hinter dem Cloudflare-Proxy korrekt funktioniert, editiere `./config/config.php` und füge folgende Zeilen hinzu:
```php
'trusted_proxies' => ['127.0.0.1'],
'overwriteprotocol' => 'https',
'overwritehost' => 'cloud.deinedomain.de',
'allow_local_remote_servers' => true,
```
### 5. Aktivierung der Dienste
#### **High Performance Push**
Installiere die App "Nextcloud Push" im App-Store und führe diesen Befehl aus:
```bash
docker compose exec -u www-data app php occ notify_push:setup [https://cloud.deinedomain.de](https://cloud.deinedomain.de)
```
#### **ONLYOFFICE Integration**
Installiere die App "ONLYOFFICE". Hinterlege in den Einstellungen:
* **Server-Adresse:** `https://office.deinedomain.de`
* **JWT-Secret:** Dein gewähltes `JWT_DEIN_PASSWORT`.
#### **Talk & Signaling**
Installiere die App "Talk". Konfiguration unter *Einstellungen -> Talk -> Signaling-Server*:
* **Server-URL:** `https://talk.deinedomain.de`
* **Shared Secret:** Dein gewähltes `SIGNAL_DEIN_PASSWORT`.
---
## 🛠️ Performance & Maintenance
### 6. System-Cron (Empfohlen)
Um Lags zu vermeiden, sollte die Hintergrundverarbeitung über das System laufen. Füge dies via `crontab -e` hinzu:
```bash
*/5 * * * * docker exec -u www-data nextcloud-system-app-1 php -f /var/www/html/cron.php
```
---
## 🔒 Sicherheit & A+ Rating
Dieses Setup ist darauf ausgelegt, im offiziellen Nextcloud Security-Scan ein **A+ Rating** zu erhalten. Durch den Einsatz von Cloudflare und den korrekten Headern werden Nutzerdaten optimal geschützt.
**Möchtest du das Rating prüfen?** Besuche nach der Installation [scan.nextcloud.com](https://scan.nextcloud.com).
*Hinweis: Die Implementierung zusätzlicher Sicherheits-Header (HSTS, X-Content-Type) verbessert den Schutz vor Cross-Site-Scripting und Man-in-the-Middle-Angriffen erheblich.*