Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Nextcloud

Inhaltsverzeichnis

Nextcloud
#

Status
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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
#

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.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin