Projekte/Forum/Upgrade

Aus FunkFeuer Wiki
< Projekte‎ | Forum
Version vom 16. Mai 2020, 23:52 Uhr von Vchrizz (Diskussion | Beiträge) (Dokumentation zum Upgradeverlauf angelegt (MarkDown 1:1 aus Forum ins Wiki kopiert))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

1. Unter https://forum.funkfeuer.at/admin/backups ein Discourse-Daten-Backup erstellen und runterladen. (Download bricht im aktuellen Firefox Browser manchmal ab, da einfach auf einen anderen ausweichen.)

2. Mit einem Administrator/Moderator (jeder sollte SSH Zugang haben) abklären ob es ein aktuelles Systembackup mit State "Success" gibt: `sudo veeam` (falls der letzte Job nicht im State "Success" ist, bitte @vchrizz dazu kontaktieren, die Backups werden derzeit per SMB offsite auf seinen Server am Node "mh" abgelegt) ```

    Latest backup sessions:
     Job name                State          Started at             Finished at
     FunkfeuerForum          Success        2018-04-18 06:00:02    2018-04-18 06:01:50
     FunkfeuerForum          Success        2018-04-17 06:00:01    2018-04-17 06:14:05

```

3. Ein System-Upgrade durchführen: `sudo apt update` `apt list --upgradable` `sudo apt upgrade` (ggf. bei kernel-upgrade danach die VM neu starten: `sudo reboot`)

4. https://forum.funkfeuer.at/admin/upgrade aufrufen und upgrade durchklicken. 4.1. Falls das Forum nicht geladen wird, kann das Problem am Theme liegen. Versuche den [Safe-Mode](https://forum.funkfeuer.at/safe-mode). 4.2. Mittels Safe-Mode dann in der [Administration / Anpassen](https://forum.funkfeuer.at/admin/customize/themes/2) beim Default-Theme die beiden Theme-Komponenten Slick und Tiles entfernen. 4.3. Es könnte auch sein, dass eine Meldung kommt, dass das Upgrade per CLI gemacht werden muss: `sudo su` `cd /var/discourse` `git pull` `./launcher rebuild app`

5. Versuche am Forum mit LDAP einzuloggen, falls das fehlschlägt, obwohl Login-Details sicher korrekt eingegeben wurden, müssen folgende zwei Anpassungen angewendet werden:
5.1. LDAP fix 1 einspielen, damit das Plugin den OpenLDAP von Funkfeuer versteht: https://github.com/vchrizz/omniauth-ldap/commit/346d5c27e1dacb0fa6aeedf1f65e29bd9f1bb524 Dazu per ssh einloggen, und mittels folgendem Befehl in die Discourse Docker Instanz wechseln: `root@forum:/var/discourse# ./launcher enter app` Dort den oben verlinkten Git-Commit die zwei grün markierten Zeilen in diese Datei einpflegen: `/var/www/discourse/plugins/discourse-ldap-auth/gems/2.6.5/gems/omniauth-ldap-1.0.5/lib/omniauth/strategies/ldap.rb`
5.2. LDAP fix 2 einspielen, damit über LDAP authentifizierte User automatisch der Gruppe zugeordnet werden, die auf Funkfeuer-intern und Sub-Kategorien zugreifen kann: https://github.com/kaefert/discourse-ldap-auth/commit/b112b83640e7769daeb25043c9d12db8b011b29b Auf dem selben weg wie 5.1. diesmal in die Datei einfplegen: `/var/www/discourse/plugins/discourse-ldap-auth/plugin.rb`
5.3. LDAP Anpassungen aktiv bringen durch Restart von Discourse: (evtl. mit `logout` zuerst aus dem container wieder ausloggen) `docker restart app`

8. Prüfen ob beide (Discourse und mailserver) Docker Container wieder laufen: `docker ps` sollte in etwa so aussehen: (sonst im Zweifelsfall die VM neu starten, dauert nur wenige Minuten, die Container starten dann beide) ``` vchrizz@forum:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 72670824e10a local_discourse/app "/sbin/boot" 3 weeks ago Up 8 minutes app 5b64315e0a1e tvial/docker-mailserver:latest "/bin/sh -c 'supervi…" 6 weeks ago Up 8 minutes 0.0.0.0:25->25/tcp, 110/tcp, 0.0.0.0:143->143/tcp, 0.0.0.0:587->587/tcp, 0.0.0.0:993->993/tcp, 465/tcp, 0.0.0.0:995->995/tcp, 4190/tcp mail ```

Sollte es dennoch Probleme mit SSL geben: https://meta.discourse.org/t/setting-up-https-support-with-lets-encrypt/40709

        1. Manually reissue the cert

``` ./launcher enter app sv stop nginx /usr/sbin/nginx -c /etc/nginx/letsencrypt.conf LE_WORKING_DIR=/shared/letsencrypt DEBUG=1 /shared/letsencrypt/acme.sh --issue -d example.com -k 4096 -w /var/www/discourse/public LE_WORKING_DIR=/shared/letsencrypt /shared/letsencrypt/acme.sh --installcert -d example.com --fullchainpath /shared/ssl/example.com.cer --keypath /shared/ssl/example.com.key --reloadcmd "sv reload nginx" /usr/sbin/nginx -c /etc/nginx/letsencrypt.conf -s stop ```