Installation Nextcloud mit pgsql13 als Datenbank-Container

Zuletzt geändert von Clemens Dörfler am 2023/05/15 13:16

Mit den nachfolgenden Schritten können Sie eine neue Nextcloud Instanz auf einem Server mit dem Datenbank-Container pgsql13 installieren.

1. Stellen Sie sicher dass ihr LogoDIDACT Server mindestens die Puppet-Version 1.4.0 besitzt. Dies ist für eine Aktivierung des Datenbank-Containers pgsql13 notwendig.

2. Aktivieren Sie die Container nextcloud-g1 ,  pgsql13 und falls gewünscht den collabora-g1 Container in der guest.conf im Puppeteer Container:

root@ldhost:~ # lxc-ssh -n puppeteer
root@puppeteer:~ # vim /etc/logodidact/hosts/ldhost/guest.conf

Ergänzen Sie die guest.conf um folgende Einträge:

[Guest nextcloud-g1]
Ensure running

[Guest pgsql13]
Ensure running

# Falls gewünscht
[Guest collabora-g1]
Ensure running

# Falls noch nicht vorhanden und Nextcloud
# im Internet freigeschaltet werden soll
[Guest rev-proxy]
Ensure running

Übernehmen Sie die Änderungen ins Git mit folgenden Befehlen:

root@puppeteer:~ # cd /etc/logodidact
root@puppeteer:/etc/logodidact # git add .
root@puppeteer:/etc/logodidact # git commit -am "Aktivierung von Nextcloud und Collabora in der guest.conf."

3. Kopieren Sie die Konfigurationsdateien nextcloud-g1.yaml und ggf. collabora.yaml aus dem Template-Verzeichnis:

Bei einer Nextcloud Nutzung mit Collabora kopieren Sie die beiden Dateien mit folgenden Befehl:

root@puppeteer: # cp /usr/share/doc/ld-puppet10/templates/cloud/with_collabora/custom.d/* /etc/logodidact/hiera/custom.d/

Sollten Sie nur die Nextcloud (ohne Dokumentenserver Collabora) nutzen wollen, führen Sie folgenden Befehl aus:

root@puppeteer: # cp /usr/share/doc/ld-puppet10/templates/cloud/without_collabora/custom.d/nextcloud-g1.yaml /etc/logodidact/hiera/custom.d/

4. (Führen Sie diesen Schritt nur durch, wenn Sie Collabora nutzen möchten) Bearbeiten Sie die collabora-g1.yaml und tauschen Sie in Zeile 2 den Platzhalter "ShortName" gegen den Shortname Ihrer Schule aus.

root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/collabora-g1.yaml
ld_collabora::config::allowed_hosts:
  - nextcloud.ShortName.logoip.de

5. Bearbeiten Sie die nextcloud-g1.yaml und fügen Sie die ersten beiden Abschnitte hinzu, um pgsql13 als Datenbank-Host festzulegen.

Passen Sie außerdem in den späteren Abschnitten die Platzhalter "ShortName" auf den Shortname Ihrer Schule an.

root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/nextcloud-g1.yaml
ld_nextcloud::install::params:
  admin-user: ncadmin
  database-host: &dbhost pgsql13
  database-name: &dbname nextcloud
  database-user: &dbuser nextcloud
  data-dir: /var/lib/nextcloud

ld_nextcloud::db:
  server: *dbhost

ld_nextcloud::config::system:
  trusted_domains:
      - nextcloud.ShortName.logoip.de

ld_nextcloud::config::app:
  richdocuments.wopi_url:
    value: 'https://collabora.ShortName.logoip.de'

6. Übernehmen Sie die Änderungen ins Git:

root@puppeteer:~ # cd /etc/logodidact
root@puppeteer:/etc/logodidact # git add .
root@puppeteer:/etc/logodidact # git commit -am "nextcloud-g1.yaml angepasst."

Damit die Nextcloud-Installation in nextcloud-g1 erfolgreich abgeschlossen werden kann muss davor ein prun in pgsql13 durchgeführt werden, damit dort eine nextcloud-Datenbank erstellt wird.

7. (Führen Sie diesen Schritt nur durch, wenn Sie Nextcloud und ggf. Collabora im Internet freigeben möchten) Damit die Nextcloud von außen erreichbar wird, müssen Sie den Rev-Proxy Container aktiviert haben und folgende Einträge in der revproxy.conf setzen:

Wechseln Sie in den Puppeteer:

root@ldhost:~ # lxc-ssh -n puppeteer

Fügen Sie folgende Zeilen in die revproxy.conf ein und tauschen die Platzhalter "SCHULKUERZEL" durch den jeweiligen Shortname Ihrer Schule:

root@puppeteer:~ # vim /etc/logodidact/hosts/rev-proxy/revproxy.conf
[ReverseProxy nextcloud.SCHULKUERZEL.logoip.de]
Url https://nextcloud

# Falls gewünscht
[ReverseProxy collabora.SCHULKUERZEL.logoip.de]
Url https://collabora

Übernehmen Sie die Änderungen ins Git:

root@puppeteer:~ # cd /etc/logodidact
root@puppeteer:/etc/logodidact # git add .
root@puppeteer:/etc/logodidact # git commit -am "revproxy.conf um Einträge für Nextcloud und Collabora ergänzt."

9. Nun sollten Sie Zertifikate für die Nextcloud und evlt. Collabora Adressen beantragen. Hier gibt es je nach verwendetem Programm (acmetool & acme.sh) zwei Wege:

acmetool

Wechseln Sie in den puppeteer Container:

root@ldhost:~ # lxc-ssh -n puppeteer

Fordern Sie die Zertifikate für die Nextcloud und Collabora Adressen mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):

root@puppeteer:~ # acmetool want nextcloud.SCHULKUERZEL.logoip.de

# Falls gewünscht
root@puppeteer:~ # acmetool want collabora.SCHULKUERZEL.logoip.de

Tipp: Sollte es bei der Nutzung des acmetools zu Problemen kommen, kann die Einrichtung von Split-DNS helfen. Eine Anleitung zur Einrichtung finden Sie unter folgender Adresse: Einrichtung Split-DNS

acme.sh

Wechseln Sie in den puppeteer Container:

root@ldhost:~ # lxc-ssh -n puppeteer

Wechseln Sie im puppeteer Container in die Umgebung für das Verwalten der Zertifikate:

root@puppeteer:~ # sle

Beantragen Sie ein neues Zertifikat mit folgendem Befehl (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):

le-acme@puppeteer:~ $ issue nextcloud.SCHULKUERZEL.logoip.de

# Falls gewünscht
le-acme@puppeteer:~ $ issue collabora.SCHULKUERZEL.logoip.de

10. Um Nutzern Zugriff auf die Nextcloud zu ermöglichen, muss in der LogoDIDACT-Console eine Rolle mit dem Namen "ld-sg-nextcloud" erstellen werden.

Fügen Sie Benutzer der Rolle ld-sg-nextcloud hinzu. Nur Nutzer in dieser Gruppe können sich später an der Nextcloud-Plattform anmelden. Es kann bis zu 5 Minuten dauern, bis die Aktivierung bei Änderungen vollzogen ist.

1652079923794-166.png

11. Zu guter Letzt können Sie die Anmeldung wie folgt überprüfen:

Rufen Sie in ihrem Browser folgende Adresse auf (Ersetzen Sie "SCHULKUERZEL" durch den Shortname):

https://nextcloud.SCHULKUERZEL.logoip.de/

Melden Sie sich mit einem zulässigen Benutzer an, der im vorherigen Schritt als Mitglied zur Gruppe ld-sg-nextcloud hinzugefügt wurde:

1652080106839-833.png

Nach geglücktem Login-Vorgang stehen im Reiter "Dateien" automatisch die Dateien & Freigaben des Servers zur Verfügung, um die persönlichen Dokumente zu erreichen.