# Configurer TURN et postgresql dans synapse

:!: Cette page suppose que le contenu de la page [[matrix:creer_le_daemon_pour_docker-compose|Créer le daemon pour docker-compose]] a été complété sur le serveur.

# 1. TURN

Le serveur de relais VoIP est contenu dans l'image ''karthanistyr/coturn'' (voir [[matrix:installation_des_images_docker|Installation des images docker]]).

Instructions générales: [[https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.rst|matrix-org/synapse/blob/master/docs/turn-howto.rst]]

Instructions suivies ici: [[https://github.com/karthanistyr/matrix-riot-coturn-postgres-docker-compose#coturn-voip-configure-the-coturn-server-within-the-synapse-configuration-file|coturn-voip-configure-the-coturn-server-within-the-synapse-configuration-file]]

# Étape préliminaire conditonnelle

Si l'image ''karthanistyr/matrix-synapse'' n'a encore jamais été démarrée:

root@tempstest:/home/karth# systemctl start docker-compose-matrix
root@tempstest:/home/karth# systemctl stop docker-compose-matrix

Ceci a pour effet de créer et peupler les volumes docker prévus pour persister les données des conteneurs docker.

# Identifier le volume du conteneur matrix-synapse

root@tempstest:/home/karth# docker volume inspect matrix_synapse-data
[
    {
        "CreatedAt": "2018-04-07T05:14:32Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/matrix_synapse-data/_data",
        "Name": "matrix_synapse-data",
        "Options": {},
        "Scope": "local"
    }
]

# S'assurer que le conteneur matrix-synapse est down

root@tempstest:/home/karth# systemctl stop docker-compose-matrix

# Éditer le fichier de configuration

root@tempstest:/home/karth# vim /var/lib/docker/volumes/matrix_synapse-data/_data/synapse.config.yaml

Suivant les instructions, chercher et renseigner ''turn_uris'' et ''turn_shared_secret''. //Notez que le secret a été mentionné dans le log pendant le build de l'image// ''karthanistyr/coturn''.

turn_uris: ["turn:temptest.draak.fr:3478?transport=udp","turn:temptest.draak.fr:3478?tr
ansport=tcp"]
turn_shared_secret: "<shared_secret>"

# 2. postgresql

''postgresql'' est un backend plus robuste et rapide que ''sqlite''.

Instructions générales (suivies): [[https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst#synapse-config|synapse-config]]

Si l'image karthanistyr/matrix-postgres est utilisée, la base ''synapse'' est automatiquement créée et le mot de passe utilisateur a été communiqué dans le log de build (voir [[matrix:installation_des_images_docker|Installation des images docker]]).

Les étapes sont les mêmes que pour [[matrix:configurer_turn_et_postgresql#1. TURN|TURN]], jusqu'à l'édition du fichier de configuration synapse.

==== Éditer le fichier de configuration ====

root@tempstest:/home/karth# vim /var/lib/docker/volumes/matrix_synapse-data/_data/synapse.config.yaml

Selon les instructions, remplacer la section ''database:'' dans la configuration pour activer l'utilisation de ''postgresql''.

database:
  # The database engine name
  name: "psycopg2"
  # Arguments to pass to the engine
  args:
    user: synapse_user
    password: <db password>
    # Path to the database
    database: "synapse"
    host: postgres
    cp_min: 5
    cp_max: 10

La valeur ''host'' est ainsi à cause de docker-compose qui expose les conteneurs les uns aux autres à l'aide d'un alias.

Le conteneur postgresql est défini ainsi:

postgres:
    image: karthanistyr/matrix-postgres