Solução do Discord

O Obsidian LiveSync CouchDB falha no CasaOS: o que configurar

A CasaOS user repeatedly failed to install or start an Obsidian LiveSync CouchDB app, while replies disagreed on whether the BigBear image itself was broken.

Conclusão principal: não considere a imagem avariada apenas com base no erro de instalação. O LiveSync autoalojado requer credenciais CouchDB funcionais, armazenamento persistente com permissões de escrita, inicialização, CORS e um ponto final acessível. Um modelo de aplicação de um clique pode continuar a exigir esses valores.

Captura de ecrã de uma falha na instalação do CouchDB do Obsidian LiveSync na CasaOS
Utilize a configuração e os registos do contentor gerado para identificar a camada onde ocorre a falha.
Erro do contentor CouchDB numa configuração Obsidian LiveSync da CasaOS
O erro exato do contentor determina se deve corrigir as credenciais, o armazenamento, a inicialização ou a rede.

Definir as variáveis obrigatórias do CouchDB

As variáveis do CouchDB do LiveSync atuais do projeto upstream requerem credenciais de administrador e um nome de base de dados:

COUCHDB_USER=admin
COUCHDB_PASSWORD=strong-random-password
COUCHDB_DATABASE=obsidiannotes

Leia os registos do contentor antes de editar aleatoriamente

docker ps -a | grep -i couch
docker logs --tail 200 <container-name>

Procure variáveis em falta, erros de permissões, falhas na montagem da configuração, falhas de inicialização ou conflitos de portas.

O armazenamento persistente tem de permitir escrita

A configuração do armazenamento CouchDB do projeto upstream indica que os diretórios de dados/configuração podem pertencer ao UID 5984. As permissões de proprietário incorretas podem impedir o arranque do contentor.

Verificar o CouchDB antes do Obsidian

curl -u admin:YOUR_PASSWORD http://SERVER_IP:5984/_up

O teste de integridade do CouchDB do projeto upstream espera um estado saudável antes da configuração do plugin.

Inicializar a base de dados LiveSync

Um processo CouchDB em execução não constitui toda a configuração. Execute o processo de inicialização atual do projeto upstream para que os valores necessários de base de dados/configuração existam antes de ligar o plugin Obsidian.

A sincronização remota requer uma rota HTTPS segura

O projeto upstream disponibiliza agora perfis para Caddy, Tailscale e Cloudflare. Utilize apenas HTTP simples para testes locais; a sincronização remota/móvel deve utilizar uma rota HTTPS suportada.

Atualmente, a BigBear disponibiliza um pacote Obsidian LiveSync baseado em CouchDB. Compare a composição gerada com as variáveis do projeto upstream, em vez de presumir que um dos lados está correto.

O catálogo de aplicações do ZimaOS inclui cargas de trabalho relacionadas com o Obsidian, e a configuração Docker do CasaOS ajuda a explicar as definições do modelo face às definições em execução.

O ZimaBoard 2 é suficiente para esta carga de trabalho de base de dados leve; a durabilidade do armazenamento é mais importante do que o poder de processamento bruto.

Compare o modelo com a configuração compose atual do upstream

A configuração compose atual do upstream inicia o CouchDB com as variáveis obrigatórias de nome de utilizador/palavra-passe, dados persistentes e um ficheiro de configuração dedicado do LiveSync. Se um modelo da comunidade for diferente, identifique a diferença antes de classificar a imagem do contentor como defeituosa. A imagem, o modelo compose e a configuração da aplicação são três camadas distintas.

Não force casualmente o utilizador do contentor CouchDB

A configuração compose atual do upstream avisa explicitamente contra a definição de um valor fixo utilizador: valor, porque o entrypoint do CouchDB começa com privilégios suficientes para escrever a sua configuração e depois muda para o UID do CouchDB. Um modelo que substitua este comportamento pode criar falhas de permissões durante o arranque.

Verifique o CORS depois de o endpoint de estado funcionar

Um estado saudável /_up a resposta prova que o CouchDB está em execução, mas não que os clientes Obsidian o possam utilizar. Teste os cabeçalhos da resposta com uma origem Obsidian e confirme que a configuração do LiveSync permite as origens esperadas para computador e dispositivos móveis.

Mantenha a base de dados fora da Internet aberta

A porta 5984 do CouchDB é um endpoint de base de dados, não uma página de partilha para consumidores. Para a sincronização remota, prefira os padrões HTTPS suportados pelo upstream — Caddy, Tailscale ou Cloudflare — em vez de um simples encaminhamento do router para a porta 5984.

Siga esta ordem de resolução de problemas

  1. O contentor mantém-se em execução.
  2. /_up devolve um estado saudável com as credenciais.
  3. Os dados persistentes sobrevivem ao reinício.
  4. A inicialização é concluída.
  5. O CORS está correto.
  6. O endpoint HTTPS funciona remotamente.
  7. O URI, o utilizador, a palavra-passe e a base de dados do plug-in Obsidian correspondem aos valores do servidor.

Avançar diretamente para as definições do plug-in antes dos passos 1–5 torna a resolução de problemas muito mais difícil.

FAQ

A imagem BigBear está definitivamente defeituosa?

A discussão de origem não provou isso. Compare primeiro a configuração com os requisitos atuais do upstream.

Porque é que o CouchDB pode funcionar enquanto o Obsidian falha?

A inicialização da base de dados, o CORS, as credenciais, o nome da base de dados e o URL do endpoint têm de continuar a corresponder.