Nextcloud #
Status #
Deployment #
Quelle #
Die Anwendung wird als generisches app-template Helm-Chart von BJW-S Labs bereitgestellt. Das verwendete Docker-Image ist ghcr.io/linuxserver/nextcloud.
Komponenten #
Diese Nextcloud-Instanz besteht aus mehreren Komponenten, die zusammenarbeiten:
- Nextcloud: Die Hauptanwendung, die die Dateihosting- und Kollaborationsfunktionen bereitstellt.
- MariaDB: Die relationale Datenbank, die zur Speicherung der Metadaten von Nextcloud verwendet wird.
- Redis: Ein In-Memory-Datenspeicher, der für Caching und Dateisperren verwendet wird, um die Leistung zu verbessern.
- ClamAV: Eine Antiviren-Engine, die hochgeladene Dateien auf Malware scannt.
- PhpMyAdmin: Ein webbasiertes Verwaltungstool für die MariaDB-Datenbank, verfügbar unter
/php.
Dokumentation #
- Nextcloud Documentation
- MariaDB Documentation
- Redis Documentation
- ClamAV Documentation
- PhpMyAdmin Documentation
Funktion #
Nextcloud ist die zentrale Plattform für das Datei-Hosting und die Zusammenarbeit. Sie besteht aus mehreren Diensten, die in einem Pod zusammengefasst sind:
- Nextcloud: Die Hauptanwendung (PHP), die die Weboberfläche und die APIs bereitstellt.
- MariaDB: Die Datenbank, in der alle Metadaten, Benutzerinformationen und Konfigurationen gespeichert werden.
- Redis: Dient als schneller In-Memory-Cache und für das Transactional File Locking, um die Leistung zu verbessern.
- ClamAV: Ein Virenscanner, der hochgeladene Dateien automatisch auf Malware überprüft.
- phpMyAdmin: Eine Weboberfläche zur Verwaltung der MariaDB-Datenbank wird ebenfalls bereitgestellt.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei.
Wichtige Einstellungen #
- Ingress: Der Zugriff auf die Weboberfläche wird über einen Ingress mit einem Hostnamen ermöglicht.
- Speicher: Alle persistenten Daten (Benutzerdateien, Konfiguration, Datenbank, Redis-DB, ClamAV-Signaturen) werden auf einem NFS-Share gespeichert.
- Virenscanner: Der integrierte ClamAV-Dienst ist so konfiguriert, dass er über einen Socket mit der Nextcloud-Anwendung kommuniziert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/nextcloud-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/nextcloud | kubectl apply -n nextcloud -f -
Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein konfigurierter Ingress-Controller (z.B. Traefik).
- Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
- Ein NFS-Server für persistente Speicherung.