Solução da comunidade

Matrix Synapse com problemas no CasaOS: guia de resolução no 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.

Se o Matrix Synapse no CasaOS indicar «o contentor não está saudável», comece pelos registos do contentor e pelo homeserver.yaml gerado, em vez de reinstalar sem verificar o problema. O Synapse tem uma imagem Docker oficial, mas um homeserver de produção também precisa de configuração e dados persistentes, de um nome de servidor adequado, de PostgreSQL e de planeamento para HTTPS/federação.

O SQLite é aceitável para testes, mas a documentação atual do Synapse recomenda PostgreSQL para quase todas as instalações reais. Um contentor pode arrancar e, ainda assim, não estar saudável se a configuração, a base de dados, as permissões ou a migração de arranque falharem.

Utilize a imagem oficial do Synapse

O atual guia de instalação do Synapse indica ghcr.io/element-hq/synapse como imagem oficial de contentor.

Gere a configuração inicial

Crie um diretório persistente e gere a configuração uma vez antes do arranque 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

Substitua o domínio de exemplo pelo nome do servidor Matrix que pretende manter.

Verifique por que motivo o contentor não está saudável

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

Procure erros de YAML, ficheiros em falta, falhas de permissões, erros de ligação à base de dados ou migrações que nunca são concluídas.

Utilize PostgreSQL em produção

O atual guia do PostgreSQL para o Synapse explica a configuração de base de dados suportada. Mantenha os dados do Postgres persistentes e faça cópias de segurança juntamente com o estado do Synapse.

Não altere o server_name mais tarde sem planeamento

Os seus IDs do Matrix são derivados do nome do servidor, como @user:example.com. Escolha o domínio definitivo antes de convidar utilizadores.

O HTTPS é necessário para uma utilização prática

O Synapse é normalmente escutado internamente por HTTP (geralmente na porta 8008). Use um proxy inverso com HTTPS para clientes e federação, em vez de expor publicamente a porta em bruto do contentor.

A federação implica mais requisitos de DNS e de proxy

Se quiser comunicar com outros servidores Matrix, configure corretamente o nome público do servidor, o HTTPS e a descoberta de federação. Um teste apenas local pode ser muito mais simples.

Faça cópias de segurança de mais do que o contentor

Preserve o homeserver.yaml, as chaves de assinatura, os ficheiros multimédia carregados e a base de dados PostgreSQL. Voltar a obter a imagem não restaura a identidade do servidor doméstico.

O guia de resolução de problemas do Docker apresenta o modelo geral de depuração de contentores.

Verifique a propriedade dos ficheiros na pasta de dados persistentes

Se o registo do contentor indicar «permissão negada» ao ler homeserver.yaml, as chaves de assinatura ou os ficheiros multimédia, corrija a propriedade do diretório de dados do Synapse associado, de acordo com o UID/GID esperado pela imagem. Evite tornar toda a árvore de dados do CasaOS gravável por todos.

Aguarde pelas migrações da base de dados antes de avaliar o estado de saúde

Após uma atualização ou a primeira ligação ao PostgreSQL, o Synapse poderá precisar de algum tempo para executar as migrações do esquema. Acompanhe os registos em vez de reiniciar o contentor repetidamente, pois as migrações interrompidas podem dificultar o diagnóstico.

Teste a API local antes do proxy inverso

Confirme que o endpoint HTTP interno do Synapse responde a partir do anfitrião CasaOS antes de adicionar HTTPS, DNS ou federação. Se a API local não estiver saudável, um proxy inverso não consegue resolver o problema.

Perguntas frequentes

Porque é que o Synapse não está saudável?

Consulte os registos e o estado de saúde para verificar erros de configuração, permissões, base de dados ou migração; o tópico original não indicava uma causa única comprovada.

Posso usar SQLite?

Para testes, sim. A documentação atual do Synapse recomenda PostgreSQL para quase todas as instalações de produção.

Que porta usa o Synapse internamente?

As configurações Docker mais comuns expõem a API do cliente/servidor na porta 8008, por trás de um proxy inverso.

Preciso do Element?

Não. O Synapse é o servidor doméstico; o Element é um possível cliente/interface web.