No description
Find a file
2023-10-23 07:50:48 +02:00
defaults nextcloud: Remove unused variable 2023-10-22 20:51:20 +02:00
files nextcloud: Aktualisiere Variablen, automatische Versionsermittlung 2022-10-08 22:47:54 +02:00
handlers Update Nextcloud role to include Hiddenservice tasks 2023-05-21 23:01:31 +02:00
meta Update Nextcloud role to include Hiddenservice tasks 2023-05-21 23:01:31 +02:00
tasks Nextcloud: Re-enable configuration rollout 2023-10-23 07:50:48 +02:00
templates nextcloud: Fix typos, re-add hiddenservice-task 2023-10-22 21:41:16 +02:00
README.md nextcloud: Fix typos, re-add hiddenservice-task 2023-10-22 21:41:16 +02:00

Nextcloud

Diese Rolle installiert Nextcloud. Sie umfasst:

  • Einrichtung der Datenbank
  • Installation und Ersteinrichtung von Nextcloud
  • Anlegen eines Zertifikates + Konfigurarion des Reverse Proxies
  • Anlegen eines PHP-FPM-Master-Prozesses mit socket activation

Verfügbare Variablen

Zur Konfiguration von Nextcloud stehen zwei Dictionaries zur Verfügung. Unter groups_vars/all/nextcloud.yaml befinden sich im Dictionary default_occ_config die Default-Einstellungen für alle Instanzen.

Zur individuellen Konfiguration können weitere Variablen in den host_vars unter nextcloud_instaces als Dictionary occ_config angegeben werden. Beide Dictionaries werden beim Ausführen des Playbooks gemergt.

Die Struktur der Dictonaries muss dabei zwingend der Nextcloud-Syntax folgen. Diese lässt sich auf eine bestenden Instanz mit occ ausgeben:

occ config:list --private

Beispiel-Konfiguration:

default_occ_config:
  system:
    default_language: de
    default_locale: de_DE

nextcloud_instances:
  - name: coop.systemausfall.org
    user: nextcloud
    database: nextcloud
    hiddenservice: true
    occ_config:
      apps:
        core:
          backgroundjobs_mode: cron
      system:
        mail_from: noreply
        mail_domain: systemausfall.org

Ausführen der Rolle

Neue Nextcloud-Instanz anlegen

  • Trage die Informationen zur neuen Instanz in die entsprechende host_vars-Datei unter nextcloud_instances ein:
    Variable Wert Beschreibung
    name string Domain-Name der Instanz
    alias string Array mit weiteren Domain-Alias-Namen für diese Instanz
    user string Name eines anzulegenden Systemnutzers, der den PHP-FPM-Prozess ausführt
    database string Name der anzulegenden MariaDB-Datenbank
    hiddenservice bol Richtet für die Instanz einen Onion Service ein
  • Starte anschließend das Playbook:
    ansible-playbook playbooks/nextcloud.yml
    
  • Bei der Erstinstallation einer Nextcloud-Instanz gibt die Rolle anschließend die Anmeldeinformationen für den Admin-Zugang aus.

Tasks einzeln ausführen

Tasks können auch einzeln ausgeführt werden. Der Tasks configuration sollte immer mit hiddenservice ausgeführt werden (Reihenfolge ist wichtig):

ansible-playbook playbooks/nextcloud.yml --tags configuration,hiddenservice

Aktualisierung des Cores/ von Apps

Mit dem Skript nextcloud-updater können alle Nextcloud-Instanzen und die installierten Apps gleichzeitig aktualisiert werden.

Hinweise

Serverseitige Verschlüsselung

  • Bei der serverseitigen Verschlüsselung wird der Schlüssel im Klartext auf dem Server gespeichert. Sofern die Daten also nicht auf einem externen Speicher liegen, bringt dies keinen Sicherheitsgewinn.
  • In unseren Tests führte die serverseitige Verschlüsselung teilweise zu Problemen bei der Entschlüsselung.
  • Per occ lässt sich die Verschlüsselung wieder deaktivieren und alle Daten können in einem Schritt entschlüsselt werden.
    • Möglicherweise liegen dann immer noch Daten verschlüsselt vor (Dazu gibt es diverse Fehlerberichte). Mit dem PHP-Skript von Syseleven können die Daten entschlüsselt werden.