====== [Matrix]: instance sur ''troll3'' ====== ====== Conteneur LXC ====== * Nom: ''matrix'' * Ports de sortie: ''8448'' ====== Documentations ====== * [[https://github.com/matrix-org/synapse|Page officielle]] sur le serveur ''synapse'' * [[https://github.com/matrix-org/matrix-synapse-ldap3|Page]] sur le plugin officielle pour LDAP * [[https://github.com/matrix-org/synapse/blob/master/docs/federate.md|Page]] sur la configuration d'une fédération * [[https://github.com/vector-im/riot-web/|Page]] sur le client ''riot'' * [[https://github.com/matrix-org/matrix-appservice-irc|Page]] sur le bridge ''IRC'' * [[https://github.com/matrix-org/matrix-bifrost|Page]] sur le bridge ''XMPP'' (expérimental) ====== Installation et configuration du serveur 'synapse' ====== ===== Prérequis ===== * Suivre les instructions a partir du [[https://matrix-org.github.io/synapse/latest/setup/installation.html#debianubuntu|paragraphe de la procédure officielle]] ===== Installation des paquets ===== ''apt-get install matrix-synapse python-matrix-synapse-ldap3'' ==== Pendant l'installation du paquet 'matrix-synapse' ==== FIXME Procédure peut-être à revoir Mettre le nom du serveur conformement au parametre SRV. Le nom mis ici est ''parinux.org''. Voir le paragraphe concernant [[matrix#configuration-du-dns|la configuration du DNS]] pour plus de details. {{:si:configuration-synapse.png?200|}} Desactiver l'envoi de statistiques a l'attention des developpeurs. {{:si:configuration-synapse_desactiver-envoi-stats.png?200|}} ===== Configuration du serveur 'synapse' ===== Fichier de configuration: ''/etc/matrix-synapse/homeserver.yaml'' Paragraphe contenant les parametres pour LDAP: # password_providers: - module: "ldap_auth_provider.LdapAuthProvider" ===== Configuration de la base de donnée ===== Voir [[https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst|cette page]]. Paquets à installer: ''python-psycopg2 libpq-dev'' Modifier ensuite la section ''database'' dans ''/etc/matrix-synapse/homeserver.yaml'': database: name: psycopg2 args: user: synapse_user password: database: synapse host: cp_min: 5 cp_max: 10 ===== Configuration du DNS ===== La configuration est faite d'apres les instructions de [[https://github.com/matrix-org/synapse/blob/master/docs/federate.md|ce paragraphe]]. ==== Idéalement ==== Record SRV à mettre, en tenant compte que ''parinux.org'' est le nom utilise pour communiquer avec la fédération et ''synapse.parinux.org'' est l'adresse effective du serveur ''synapse'': _matrix._tcp.parinux.org 3600 IN SRV 10 0 8448 synapse.parinux.org. ==== Pour un test ==== Record SRV à mettre en attendant: _matrix._tcp.matrix.parinux.org 3600 IN SRV 10 0 443 matrix.parinux.org. Commande ''dig '' à faire passer pour voir le changement: dig @parinux.org -t srv _matrix._tcp.matrix.parinux.org ===== Reverse Proxy ===== D'après la [[https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md|doc officielle]], la configuration du reverse proxy s'effectue comme suit pour un ''nginx'': server { listen 443 ssl; listen [::]:443 ssl; server_name matrix.parinux.org; location /_matrix { proxy_pass http://:8448; proxy_set_header X-Forwarded-For $remote_addr; } } //En l'état actuelle, un utilisateur d'un serveur de la fédération ne peut pas joindre un salon de l'instance de parinux: ''Invalid signature for server matrix.org with key ed25519:auto: Unable to verify signature for matrix.org ''. Ce bug a déjà été [[https://github.com/matrix-org/synapse/issues/4858|constatée]]// ===== Configuration de la VoIP ===== Il faut d'abord installer [[https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.rst|un serveur TURN]]. ===== Demarrer le serveur ===== systemctl start matrix-synapse.service ===== Redirection de port ===== Redirection de port du reverse proxy sur le port ''8008'' du conteneur. ===== Procedure de debug ===== Voir cette [[https://github.com/matrix-org/matrix-synapse-ldap3#troubleshooting-and-debugging|page]]. Le fichier de debug est ''/etc/matrix-synapse/conf.d/ldap_debug.yaml''. ====== Installation et configuration du client 'riot' ====== Ajouter la ligne suivante dans le fichier ''/etc/apt/sources.list'' : deb https://packages.riot.im/debian stretch main FIXME Faire un paquet debian ''riot-webapp'' à partir des [[https://github.com/vector-im/riot-web/releases|releases github]]. Voir aussi le [[https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/riot|PKGBUILD]] d'Archlinux. Installation des paquets (serveur web): apt-get install nginx Mettre en place le répertoir ''webapps'' mkdir -p /opt/webapps/riot/versions Télécharger et importer de la clé publique wget https://packages.riot.im/riot-release-key.asc gpg --import riot-release-key.asc Télécharger l'archive, sa signature associée, puis vérifier wget https://github.com/vector-im/riot-web/releases/download/v1.2.2/riot-v1.2.2.tar.gz{.asc,} gpg --verify riot-v1.2.2.tar.gz{.asc,} Extraire la dernière version stable de l'archive issue de [[https://github.com/vector-im/riot-web/releases|cette page]] dans ''/opt/webapps/riot/versions'' tar -C /opt/webapps/riot/versions -xvf riot-v1.2.2.tar.gz Faire un lien symbolique ln -s /opt/webapps/riot/versions/riot-v1.2.2 /opt/webapps/riot/main Renommer le fichier ''config.json'' en ''config.matrix.parinux.org.json'' mv /opt/webapps/riot/main/{config.json,config.matrix.parinux.org.json} Activer le service systemctl status nginx Le fichier de configuration du client ''riot'' se trouve dans le fichier ''/etc/nginx/conf.d/riot.conf'' ====== Tests ====== ===== Fédération ===== Aller sur le site [[https://matrix.org/federationtester/|Federation Tester]] pour vérifier si la fédération est activée. ===== Clients ===== Prendre un [[https://riot.im/download/desktop/|client riot]] L'ouvrir, puis cliquer sur ''Changer'' {{:si:connexion1-indic.jpg?200|}} Modifier le champs ''URL du serveur d'accueil'' en ''https://matrix.parinux.org'', puis cliquer sur ''Suivant'' {{:si:connexion2-indic.jpg?200|}} Mettre ses identifiants LDAP en remplissant les champs ''Nom d'utilisateur'' et ''Mot de passe'', puis cliquer sur ''Se connecter'' {{:si:connexion3-indic.jpg?200|}} La fenêtre d'une connexion réussie ressemble à ça {{:si:connexion4-indic.jpg?200|}}