notes for nerds – pc, server, phones, apps

notes4nerds

— notes.h87.at —

Matrix Server Aktualisieren, Umzug, Backup

Um einen docker Container zu aktualisieren löscht man ihn und ladet den aktuellen container runter (recreate)

Wichtig ist das beim “ docker run“ command durch Volumes die configurations Dateien ausgelagert wurden um keine Daten zu verlieren.

Normalerweise muss kein Backup angelegt werden wenn die Daten sauber „ausgelagert“ wurden und der ursprüngliche „docker run“ command verwendet wird.

watchtower das auch in einem container läuft, überwacht und „recreated“ alle Dockercontainer (kann in kritischen Umgebungen risikoreich sein und mann kann auch angeben das es nur bestimmte container verwaltet)

Leider ist es nicht möglich mit einem Backup auf eine andere Domain umzuziehen

Wenn du zu einer neuen Domain wechselst, gelten die alten Chatverläufe und Räume als nicht mehr zugänglich, da die Domain Teil der Event-IDs ist, die die Nachrichten identifizieren.

1. Contaienr Update

Beim Update wird einfach per „recreate“ der container gelöscht und neu herunter geladen die Configuration bleibt erhalten und man benötigt kein Backup bis auf dem container „synapse-postgres“ da muss zuvor die datenbank aus dem container extrahiert werden und nach dem Updaten wieder eingespeilt werden.

öffne die portainer oberfläche und öffne der reihe nach alle container die du updaten willst und clicke auf den „recreate“ Button

Achtung!: recreate ist nicht der gleiche command als bei der erstellung des containers („docker run“), am besten schreibt man sich den ursprünglichen Befehl in einer *.sh datei auf und verwendet diesen nach löschen des contaienrs.

Update des „synapse-postgres“ containers

vor dem Update folgende Befehle ausführen: im den fall verwenden wir als username: robert und datenbank: synapse

docker exec -i synapse-postgres pg_dump -U robert synapse > ~/docker/postgres/database.synaptics.backup.sql

nun per „recreate Button“ updaten und dann das backup mit folgendem script wieder einspielen:

docker exec -i synapse-postgres psql -U robert postgres -c "DROP DATABASE synapse;"
docker exec -i synapse-postgres psql -U robert postgres -c "CREATE DATABASE synapse WITH OWNER kemi LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0;"
docker exec -i synapse-postgres psql -U robert synapse < ~/docker/postgres/database.synaptics.backup.sql

Fertig alle Container sind auf dem neuesten stand 🙂

2: Umzug

ein umzug ist nicht nötig wenn sich die Domain ändert da die sql datenbank dann nichtmehr zusammenpasst und eine neuinstallattion benötigt wird

zum erstellen einer testumgebung quasi ein clon kann mann schnell machen

dazu einfach vom der stable instllation folgendes Archiev erstellen:

tar -czvf docker.installation.tar.gz ~/docker

dann dass archiev auf die neue testumgebung kopieren:

scp docker.installation.tar.gz robert@192.168.0.XXX:~/

im Terminal der neuen Testumgebung dann

cd ~/
tar -xzvf docker.installation.tar.gz

somit ist die ordnerstruktur mit allen configurationsdateien instlliert.

jetzt noch alle „docker run“ Befehle ausführen die zur „matrix container“ installation verwendet wurden

und noch das SQL backup einspielen

Fertig

3. optional BACKUP des Matrix Servers

zunächst stoppen wir alle 4 Container auf der portainer-weboberfläche (synapse, synapse-postgres, nginx-revers-proxy, synapse-admin)

Backup der Postgresql Datenbank

docker exec -i POSTGRES-DOCKER-CONTAINER pg_dump -U BENUTZERNAME DATENBANKNAME > ~/docker/postgres/database.synaptics.backup.sql

zbsp.:

docker exec -i synapse-postgres pg_dump -U norbert synapse > ~/docker/postgres/database.synaptics.backup.sql

Backup von Mediendateien

angenommen du hast ein Volume für die Mediendaten beim installeiren des contaienrs folgenmdermasen angegeben:

--mount type=bind,source=/media/FESTPALTTE/matrix/media_store,target=/data/media_store

dann macsht du ein backup mit folgendem befehl:

tar -czvf mediendatenbackup.tar /media/FESTPALTTE/matrix/media

Backup von Synapse – Admin

der container benötigt kein Backup da nur der SYNAPSE_ACCESS_TOKEN zur neuerstellung benötigt wird

diesen sollte man sich bei der ursprünglichen erstellugn des contaienrs aufgeschrieben haben.

alternativ kann man ihn sich mit folgendem befehl anzeigen lassen:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"type": "m.login.password", "user": "admin", "password": "somePasswd"}' \
  http://localhost:8008/_matrix/client/r0/login

Backup aller configurationsdateien

am besten einfach ein Archiv es gesammten ~/docker ordners machen

~/ steht dabei für das homeverzeichnisses des aktuellen Benutzers zbsp: „/home/robert“

tar -czvf docker.tar.gz ~/docker

SOMIT IST DAS BACKUP ERLEDIGT


Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar