// palaver · mehrere server aktualisieren

Einen Host mit mehreren Palaver-Servern aktualisieren

1. Hauptserver: Versionshinweise, Sicherung

Palavers UPDATE.md, Schritte 1–2; bleib im Arbeitsverzeichnis aus Schritt 2.

2. Weitere Server sichern

Zeige die weiteren Server an.

ls /opt/palaver/instances/

Sichere die Datenbank jedes Servers ins Arbeitsverzeichnis.

for NAME in $(ls /opt/palaver/instances/); do sudo -u "palaver-$NAME" pg_dump -Fc "palaver_${NAME//-/_}" > "palaver-$NAME-$(date +%F).dump"; done

Sichere ihre Konfiguration.

sudo tar -czf "palaver-instances-$(date +%F).tar.gz" -C /opt/palaver instances

Prüfe die Sicherungen; erwartet: keine leer.

ls -l palaver-*.dump

3. Hauptserver: das Update

Palavers UPDATE.md, Schritte 3–8.

  • /opt/palaver/web.old, /opt/palaver/bin/palaverd.old bis Schritt 6 behalten
  • Neustart von LiveKit: Gespräche auf allen Servern brechen ab
  • ändern die Versionshinweise Palavers Site (INSTALL.md, Schritt 10): auch jede /etc/nginx/sites-available/palaver-<name>, mit Port, Logs und Snippet dieses Servers

4. Web-Snippets

Prüfe und lade sie.

sudo nginx -t && sudo systemctl reload nginx

5. Weitere Server neu starten

Starte jeden weiteren Server neu; Datenbank-Update beim Start, Clients verbinden sich neu.

sudo systemctl restart 'palaverd@*'

Zeige ihren Zustand an; erwartet: jeweils active.

systemctl list-units --all 'palaverd*'

6. Prüfen

Führe doctor für jeden weiteren Server aus; erwartet: kein Befund.

for NAME in $(ls /opt/palaver/instances/); do echo "== $NAME"; sudo -u "palaver-$NAME" /opt/palaver/bin/palaverd -env "/opt/palaver/instances/$NAME/palaverd.env" doctor; done

Zeige die Version an, mit der jeder Server läuft.

/opt/palaver/bin/palaverd version

Öffne den Web-Client eines weiteren Servers und melde dich an.

Entferne /opt/palaver/web.old, /opt/palaver/bin/palaverd.old: Palavers UPDATE.md, Ende von Schritt 8.

Zurück zur vorigen Version

  • für: neue Version funktioniert nicht

Hauptserver: Palavers UPDATE.md, Zurück zur vorigen Version.

Starte jeden weiteren Server mit dem vorigen palaverd neu.

sudo systemctl restart 'palaverd@*'

Einmalig: mit palaver-host eingerichtete Hosts

  • für: mit palaver-host und dem install.sh des offenen Pakets eingerichtete Hosts
  • einmalig, nach Schritt 6
  • Altlasten: Werkzeug, gespeicherte Vorlagen, Protokoll, nginx-Sites mit eingebettetem Web-Client

Hauptserver

Palavers UPDATE.md, Einmalig: mit install.sh eingerichtete Server.

  • palaver.social: Landingpage unter /, nginx wie in docs/server.md von palaver-social
  • palaver.social: Wildcard-Zertifikat palaver.social, beide ssl_certificate-Zeilen korrigieren
  • Ubuntu 26.04: sudo-rs ohne sudoedit, als root bearbeiten
sudo nano /etc/nginx/sites-available/palaver

Destruktiv: Entferne die Zertifikatsnotiz von install.sh (/opt/palaver/etc/cert, eine Zeile).

sudo cat /opt/palaver/etc/cert
sudo rm /opt/palaver/etc/cert

Jeder weitere Server

Je Server: setze den Namen und lies seine Einstellungen.

NAME=guild
SRV_USER=palaver-$NAME
CONF=/opt/palaver/instances/$NAME
UNIT=palaverd@$NAME
DOMAIN=$(sudo sed -n 's#^PALAVER_PUBLIC_URL=https://##p' "$CONF/palaverd.env"); echo "$DOMAIN"
PORT=$(sudo sed -n 's/^PALAVER_LISTEN=.*://p' "$CONF/palaverd.env"); echo "$PORT"
CERT=$(sudo cat "$CONF/cert"); echo "$CERT"

Bewahre die alte nginx-Site außerhalb der nginx-Verzeichnisse auf.

sudo cp "/etc/nginx/sites-available/palaver-$NAME" "/root/nginx-palaver-$NAME-$(date +%F).conf"

Schreibe das Web-Snippet und die vollständige Site: Anleitung für mehrere Server, Schritt 11, Blöcke „Schreibe das Web-Snippet des Servers“ und „Schreibe die vollständige Site“.

Prüfe und lade sie.

sudo nginx -t && sudo systemctl reload nginx

Ergänze die Zeilen für doctor in der Konfiguration.

sudo tee -a "$CONF/palaverd.env" >/dev/null <<EOF
PALAVER_CTL="sudo -u $SRV_USER /opt/palaver/bin/palaverd -env $CONF/palaverd.env"
PALAVER_UNIT=$UNIT
PALAVER_ENV_FILE=$CONF/palaverd.env
EOF

Zeige die Kommentarzeilen von palaver-host in der Konfiguration an.

sudo grep '^#' "$CONF/palaverd.env"

Entferne sie.

sudo sed -i '/^#/d' "$CONF/palaverd.env"

Prüfe sie.

sudo -u "$SRV_USER" /opt/palaver/bin/palaverd -env "$CONF/palaverd.env" doctor

Destruktiv: Entferne die Zertifikatsnotiz von palaver-host ($CONF/cert, eine Zeile); steht jetzt in der Site.

sudo rm "$CONF/cert"

Der Host

Die Unit-Vorlage bleibt. Vergleiche sie mit Anleitung für mehrere Server, Schritt 5.

grep -v '^#' /etc/systemd/system/palaverd@.service

Zeige die aktiven Sites an. Mit palaver-catch-all: neu schreiben, Anleitung für mehrere Server, Optional: unbekannte Namen zum Hauptserver, ab „Schreibe die Catch-all-Site“.

ls /etc/nginx/sites-enabled/

Destruktiv: Entferne das Werkzeug (/usr/local/sbin/palaver-host).

sudo rm /usr/local/sbin/palaver-host

Destruktiv: Entferne die gespeicherten nginx-Vorlagen (/opt/palaver/hosting/templates/, zwei Dateien).

sudo rm -r /opt/palaver/hosting

Destruktiv: Entferne das Protokoll von palaver-host (/var/log/palaver-hosting.log).

sudo rm /var/log/palaver-hosting.log

Destruktiv: Entferne entpackte Pakete und Archive in deinem Home-Verzeichnis (palaver-server-*, palaver-hosting-*); erst auflisten, dann mit Rückfrage entfernen.

ls -d ~/palaver-server-* ~/palaver-hosting-*
rm -ri ~/palaver-server-* ~/palaver-hosting-*

Einmalig: der Rechner, auf dem palaver-ops lief

Destruktiv: Entferne palaver-ops (~/.local/bin/palaver-ops).

rm ~/.local/bin/palaver-ops

Destruktiv: Entferne seine Serverliste (~/.config/palaver-ops/servers.json).

cat ~/.config/palaver-ops/servers.json
rm -r ~/.config/palaver-ops