Installation Nextcloud mit pgsql13 als Datenbank-Container

Version 32.1 von Jonas Mayer am 2022/05/20 12:34

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."

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.