Solution communautaire

Matrix Synapse défaillant sur CasaOS : guide de dépannage Docker

A CasaOS user could not get a Matrix Synapse container healthy and had no clear diagnostic path; current Synapse docs provide an official Docker workflow.

Si Matrix Synapse sur CasaOS indique que « le conteneur est en état non sain », commencez par consulter les journaux du conteneur et le fichier homeserver.yaml généré au lieu de réinstaller sans discernement. Synapse dispose d'une image Docker officielle, mais un serveur d'accueil de production nécessite également une configuration et des données persistantes, un nom de serveur approprié, PostgreSQL, ainsi qu'une planification du HTTPS et de la fédération.

SQLite convient aux tests, mais la documentation actuelle de Synapse recommande PostgreSQL pour presque toutes les installations réelles. Un conteneur peut démarrer tout en restant en état non sain si sa configuration, sa base de données, ses autorisations ou sa migration de démarrage échouent.

Utilisez l'image officielle de Synapse

Le guide d'installation actuel de Synapse indique que ghcr.io/element-hq/synapse est une image de conteneur officielle.

Générez la configuration initiale

Créez un répertoire persistant et générez la configuration une fois avant le démarrage normal :

mkdir -p /DATA/AppData/synapse
docker run --rm -it   -v /DATA/AppData/synapse:/data   -e SYNAPSE_SERVER_NAME=matrix.example.com   -e SYNAPSE_REPORT_STATS=no   ghcr.io/element-hq/synapse:latest generate

Remplacez le domaine d'exemple par le nom du serveur Matrix que vous comptez conserver.

Vérifiez pourquoi le conteneur est en état non sain

docker ps -a | grep synapse
docker inspect synapse --format '{{json .State.Health}}'
docker logs --tail 200 synapse

Recherchez les erreurs YAML, les fichiers manquants, les problèmes d'autorisation, les erreurs de connexion à la base de données ou les migrations qui ne se terminent jamais.

Utilisez PostgreSQL en production

Le guide actuel de Synapse pour PostgreSQL explique la configuration de base de données prise en charge. Assurez-vous que les données Postgres sont persistantes et sauvegardez-les avec l'état de Synapse.

Ne modifiez pas server_name par la suite sans planification

Vos identifiants Matrix sont dérivés du nom du serveur, par exemple @user:example.com. Choisissez le domaine que vous comptez conserver à long terme avant d'inviter des utilisateurs.

HTTPS est nécessaire pour une utilisation pratique

Synapse écoute généralement en interne sur HTTP (généralement sur le port 8008). Utilisez un proxy inverse avec HTTPS pour les clients et la fédération, plutôt que d’exposer publiquement le port brut du conteneur.

La fédération implique davantage de contraintes liées au DNS et au proxy

Pour communiquer avec d’autres serveurs Matrix, configurez correctement le nom de serveur public, HTTPS et la découverte de la fédération. Un test en local uniquement peut être beaucoup plus simple.

Sauvegarder plus que le conteneur

Conservez homeserver.yaml, les clés de signature, les fichiers multimédias téléversés et la base de données PostgreSQL. Télécharger à nouveau l’image ne permet pas de restaurer l’identité d’un serveur domestique.

Le guide de dépannage Docker présente la méthode générale de débogage des conteneurs.

Vérifier la propriété des fichiers dans le dossier de données persistant

Si le journal du conteneur signale un accès refusé lors de la lecture de homeserver.yaml, des clés de signature ou des fichiers multimédias, corrigez la propriété du répertoire de données Synapse associé, en fonction de l’UID/GID attendu par l’image. Évitez de rendre l’ensemble de l’arborescence de données CasaOS accessible en écriture à tous.

Attendre la fin des migrations de la base de données avant d’évaluer l’état de santé

Après une mise à niveau ou une première connexion à PostgreSQL, Synapse peut avoir besoin de temps pour effectuer les migrations de schéma. Surveillez les journaux au lieu de redémarrer le conteneur à répétition, car interrompre les migrations peut compliquer le diagnostic.

Tester l’API locale avant le proxy inverse

Avant d’ajouter HTTPS, le DNS ou la fédération, vérifiez que le point de terminaison HTTP interne de Synapse répond depuis l’hôte CasaOS. Si l’API locale est en mauvais état de santé, un proxy inverse ne peut pas y remédier.

FAQ

Pourquoi Synapse est-il en mauvais état de santé ?

Consultez les journaux et l’état de santé pour repérer les erreurs de configuration, de permissions, de base de données ou de migration ; le fil de discussion source ne fournit pas de cause unique vérifiée.

Puis-je utiliser SQLite ?

Pour les tests, oui. La documentation actuelle de Synapse recommande PostgreSQL pour presque toutes les installations en production.

Quel port Synapse utilise-t-il en interne ?

Les configurations Docker courantes exposent l’API client-serveur sur le port 8008, derrière un proxy inverse.

Ai-je besoin d’Element ?

Non. Synapse est le serveur domestique ; Element est un client ou une interface web parmi d’autres.