User Tools

Site Tools


doc:appunti:linux:sa:matrix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:matrix [2026/09/03 10:59] – [Migrazione da virtual environment Python a container Docker] niccolodoc:appunti:linux:sa:matrix [2026/09/15 12:02] (current) – [Avvio del container Docker] niccolo
Line 415: Line 415:
 Gli oggetti da migrare sono: Gli oggetti da migrare sono:
  
-  * Directory **/etc/matrix-synapse/** +  * Directory **/etc/matrix-synapse/** che contiene i file di configurazione. 
-  * Directory **/var/lib/matrix-synapse/** +  * Directory **/var/lib/matrix-synapse/** che contiene il //media_store//. 
-  * PostgreSQL database **synapse** e relativo utente +  * PostgreSQL database **synapse** e relativo utente. 
-  * Configurazione **reverse proxy** Apache +  * Configurazione **reverse proxy** Apache. 
-  * **Nome a dominio** nel DNS+  * **Nome a dominio** nel DNS. 
 + 
 +Sulla macchina destinazione NON si esegue la configurazione iniziale, ma si crea il named volume che conterrà i file di configurazione e il media_store: 
 + 
 +<code> 
 +docker volume create synapse-data 
 +</code> 
 + 
 +Viene creata la directory **/var/lib/docker/volumes/synapse-data/_data/** che sarà la radice del volume. 
 + 
 +Nella radice di tale volume si devono copiare i file dalla vecchia installazione: 
 + 
 +  * **homeserver.yaml** 
 +  * **homeserver.signing.key** 
 +  * **log.yaml** 
 + 
 +È consigliabile rinominare il file **homeserver.signing.key** usando il **SYNAPSE_SERVER_NAME**, come farebbe la procedura  //generate// di Synapse, quindi qualcosa del tipo **matrix.example.org.signing.key**. Il nome del file deve essere correttamente indicato nel file di configurazione yaml dal parametro **signing_key_path**. 
 + 
 +Si devono copiare anche il media store e la directory uploads originali nella radice del volume Docker, con questo mapping: 
 + 
 +  * **/var/lib/matrix-synapse/media/** => **/data/media_store/** 
 +  * **/var/lib/matrix-synapse/uploads/** => **/data/uploads/** 
 + 
 +I parametri che è necessario aggiustare nel file homeserver.yaml sono: 
 + 
 +<file> 
 +log_config: "/data/log.yaml" 
 +media_store_path: "/data/media_store" 
 +uploads_path: "/data/uploads" 
 +signing_key_path: "/data/homeserver.signing.key" 
 +bind_addresses: 
 +  - '0.0.0.0' 
 +database: 
 +  name: "psycopg2" 
 +  args: 
 +    ... 
 +    host: host.docker.internal 
 +    port: 5432 
 +</file> 
 + 
 +Sulla macchina origine si esegue il dump del database: 
 + 
 +<code> 
 +su - postgres -c "pg_dump -Fc synapse" \ 
 +    > synapse-$(hostname)-$(date +%Y-%m-%d).dump 
 +</code> 
 + 
 +Quindi sulla macchina destinazione si esegue il restore: 
 + 
 + 
 +==== Permessi ==== 
 + 
 +Verificare che i file di configurazione siano leggibili solo dall'utente con UID 991 (nell'immagine Docker di matrix/synapse è l'utente utilizzato per eseguire il servizio): 
 + 
 +<code> 
 +cd /var/lib/docker/volumes/synapse-data/_data 
 +chown 991:991 homeserver.yaml homeserver.signing.key 
 +chmod 0600 homeserver.yaml homeserver.signing.key 
 +</code> 
 + 
 +FIXME Anche il media_store e la directory uploads devono essere sistemate. 
 + 
 +==== Avvio del container Docker ==== 
 + 
 +=== Istruzioni generiche === 
 + 
 +Le [[https://hub.docker.com/r/matrixdotorg/synapse|istruzioni]] per avviare un container Docker di Synapse prevedono anzitutto il download dell'[[https://hub.docker.com/r/matrixdotorg/synapse|immagine di Synapse]] e quindi l'esecuzione una tantum di un container per generare il volume e la configurazione: 
 + 
 +<code> 
 +docker run -it --rm \ 
 +    --mount type=volume,src=synapse-data,dst=/data \ 
 +    -e SYNAPSE_SERVER_NAME=my.matrix.host \ 
 +    -e SYNAPSE_REPORT_STATS=yes \ 
 +    matrixdotorg/synapse:latest generate 
 +</code> 
 + 
 +Questa prima esecuzione rimuove il container subito dopo averlo creato per via dell'opzione **%%--rm%%**. Quello che importa è che viene creato il volume **/data** e al suo interno viene creata la configurazione necessaria ad eseguire Synapse. La generazione della configurazione è dovuta al fatto che viene passato il comando **generate** all'immagine Docker di Synapse. 
 + 
 +Successivamente si crea il container definitivo, che conterrà l'istanza di Synapse in esecuzione: 
 + 
 +<code> 
 +docker run -d --name synapse \ 
 +    --mount type=volume,src=synapse-data,dst=/data \ 
 +    -p 8008:8008 \ 
 +    matrixdotorg/synapse:latest 
 +</code> 
 + 
 +Tale container usa lo stesso volume creato in precedenza (e quindi la configurazione in esso contenuta) e resta in esecuzione. Si possono usare i comandi docker standard per far sì che il container venga avviato automaticamente al bootstrap della macchina, ecc. 
 + 
 +=== Istruzioni specifiche per la migrazione === 
 + 
 +FIXME
  
 ===== Web References ===== ===== Web References =====
doc/appunti/linux/sa/matrix.1788425966.txt.gz · Last modified: by niccolo