Índice do diárioDockup / nota de campo
Note / self-host-wiki-js

Como hospedar o Wiki.js por conta própria em 2026: configuração do banco de dados, TLS e testes de restauração

Implante o Wiki.js com a porta correta, armazenamento persistente, TLS, autenticação e backups. Solucione problemas quando DB_HOST é localhost dentro do container em produção.

A maioria das instruções de instalação do Wiki.js termina no primeiro carregamento da página. Isso é cedo demais: DB_HOST é localhost dentro do container ou os cabeçalhos do proxy TLS estão ausentes. Um teste de produção útil é mais exigente — concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização.

A função do Wiki.js é simples: um wiki em Markdown com versionamento e um editor moderno. Seus limites operacionais abrangem mais do que o processo web, portanto a dependência, o estado armazenado e a rota pública precisam ser definidos explicitamente antes da chegada de dados reais.

Delimite a fronteira de execução do Wiki.js

A menor topologia responsável do Wiki.js contém um listener privado na porta 3000, uma rota de ingress e uma fronteira de estado documentada. O contrato de rede do Wiki.js é um banco de dados Postgres, MySQL, MariaDB, MSSQL ou SQLite acessível. Mantenha os endpoints privados no DNS interno, permita apenas as chamadas de saída necessárias e forneça ao Wiki.js uma credencial de serviço com escopo limitado.

Valide a topologia pedindo a um cliente limpo que conclua a configuração, crie e revise uma página, faça upload de mídia, procure-a e verifique o histórico de versões após uma reinicialização. Monitore o tempo de resposta do banco de dados, a indexação da busca, o armazenamento de mídia e a latência do provedor de autenticação durante a execução. O resultado mostra se a próxima melhoria deve ser feita na memória, no armazenamento, na rede ou em um worker separado, em vez de incentivar um dimensionamento arbitrário do container.

Planeje a restauração do Wiki.js antes do lançamento

Não se espera que haja estado gravável da aplicação dentro da imagem padrão do Wiki.js. Preserve o banco de dados, além de quaisquer uploads locais e assets personalizados, incluindo o digest fixado e a configuração de rota revisada, em vez de fazer backup de um filesystem vazio do container.

Crie o Wiki.js do zero em outro host e verifique se páginas, histórico, usuários, grupos, mídia e navegação são recuperados e se uma página conhecida continua pesquisável. Se um banco de dados separado, room server ou camada de autenticação for adicionado, atribua a esse componente seu próprio responsável explícito pela recuperação. O guia de repositório Git até produção mostra como um artefato reproduzível substitui um backup de container.

Registre o comando de reconstrução e o teste de saída esperada junto com o release. Um plano de recuperação stateless é bem-sucedido ao reproduzir o comportamento a partir de entradas confiáveis; ele não deve depender da cópia de um container em execução opaco.

Defina a fronteira de confiança do Wiki.js

Uma implantação segura do Wiki.js começa pela remoção de autoridade. Evite manter a tela de configuração exposta depois que o primeiro administrador existir; em vez disso, remova o acesso público à configuração, restrinja a administração e forneça ao banco de dados do wiki suas próprias credenciais.

Trate DB_PASS de acordo com sua função no Wiki.js: mantenha valores confidenciais fora do Git, documente os efeitos da rotação e nunca substitua um exemplo público em produção. Restrinja as rotas administrativas, use DNS privado para as dependências e revise cada bind mount. Quando os logs forem enviados para um serviço central, filtre segredos e conteúdo privado antes que deixem o servidor.

O que deve passar antes da chegada dos dados reais do Wiki.js

Um gate de produção do Wiki.js deve poder ser executado por alguém que não tenha criado a implantação. Forneça a essa pessoa a versão fixada, uma conta de teste não sensível e esta tarefa: concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização. Se as instruções exigirem acesso não documentado ao shell, o serviço ainda não está pronto do ponto de vista operacional.

Repita o gate substituindo apenas o container. Em seguida, restaure o banco de dados, além de quaisquer uploads locais e assets personalizados, em uma infraestrutura vazia e prove que páginas, histórico, usuários, grupos, mídia e navegação são recuperados e que uma página conhecida continua pesquisável. Meça o tempo de resposta do banco de dados, a indexação da busca, o armazenamento de mídia e a latência do provedor de autenticação durante ambas as execuções bem-sucedidas; diferenças inesperadas geralmente revelam a ausência de um cache, índice, worker ou mount de dados.

Adicione um failure drill: negue temporariamente à identidade de teste o acesso a um banco de dados Postgres, MySQL, MariaDB, MSSQL ou SQLite acessível. O Wiki.js deve emitir um erro útil, preservar o estado existente e se recuperar quando a condição válida retornar. Salve os timestamps e as linhas de log relevantes, com os segredos redigidos. Essas evidências se tornam a referência para a próxima alteração de imagem ou configuração.

Inicie o Wiki.js sem esconder as partes móveis

Mantenha a invocação inicial do Wiki.js reproduzível o suficiente para ser revisada em um pull request.

docker run -d \
  --name wiki-js \
  --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -e DB_PASS=replace-with-a-long-random-value \
  -e DB_TYPE=postgres \
  -e DB_HOST=postgres.internal \
  -e DB_PORT=5432 \
  -e DB_USER=wiki \
  -e DB_NAME=wiki \
  ghcr.io/requarks/wiki:2

Não dependa de latest depois que houver dados reais. Registre o digest em funcionamento, o usuário do container e a propriedade dos mounts. Acompanhe o log da aplicação durante um teste completo — concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização — e anote quaisquer migrations antes de colocar a rota atrás do tráfego de produção.

Mantenha claras as URLs internas e externas

Trate a URL externa do Wiki.js como uma configuração que deve sobreviver aos redeploys. Primeiro, configure a URL do site depois de encaminhar o serviço por HTTPS; em seguida, direcione o hostname para a porta 3000 mantendo intactos o host e o scheme originais.

O checklist de reachability da implantação pode provar que as requisições entram no container. Depois disso, a falha conhecida — DB_HOST é localhost dentro do container ou os cabeçalhos do proxy TLS estão ausentes — deve ser investigada no Wiki.js, no estado dele ou no workload, e não na automação de certificados.

Monitore o workload, não apenas o container

Crie dashboards com base no tempo de resposta do banco de dados, na indexação da busca, no armazenamento de mídia e na latência do provedor de autenticação. Um gráfico de CPU sem o contexto desse workload não consegue explicar por que o Wiki.js está lento. Adicione uma verificação sintética ou agendada que tente concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização usando dados de teste inofensivos.

Antes de fazer upgrade, considere este risco específico da aplicação: as migrations do banco de dados do Wiki.js e os módulos de autenticação devem ser testados em staging antes da mudança para outra linha de release. Restaure um backup recente em uma implantação isolada, execute as migrations nela e compare o comportamento. Se DB_HOST é localhost dentro do container ou os cabeçalhos do proxy TLS estão ausentes, inspecione a fronteira envolvida — origem pública, armazenamento ou dependência — antes de alterar configurações não relacionadas.

Mantenha o Wiki.js explícito enquanto o Dockup cuida do roteamento

Roteamento, certificados, substituição de serviços e armazenamento anexado são alvos razoáveis para automação. O Dockup cuida disso para o Wiki.js e pode provisionar o banco de dados gerenciado relacionado ou conectar-se a serviços no servidor do próprio cliente.

O que ele não deve inventar é a política de confiança do Wiki.js. Após a implantação, configure a URL do site depois de encaminhar o serviço por HTTPS, aplique esta fronteira — remova o acesso público à configuração, restrinja a administração e forneça ao banco de dados do wiki suas próprias credenciais — e verifique o resultado deste cenário: concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização. O resultado é uma infraestrutura de um clique com um teste de aceitação específico da aplicação.

Perguntas frequentes

Do que o Wiki.js precisa para uma implantação de produção?

Direcione o container do Wiki.js na porta 3000 por meio de uma única origem HTTPS. O requisito de rede de suporte é um banco de dados Postgres, MySQL, MariaDB, MSSQL ou SQLite acessível. Não considere o Wiki.js pronto até conseguir concluir a configuração, criar e revisar uma página, fazer upload de mídia, procurá-la e verificar o histórico de versões após uma reinicialização.

Quais dados do Wiki.js devem fazer parte de um backup?

A imagem padrão do Wiki.js não possui um mount obrigatório de dados da aplicação. Preserve a configuração da implantação e faça backup de qualquer estado conectado separadamente; a recuperação será aprovada quando páginas, histórico, usuários, grupos, mídia e navegação forem recuperados e uma página conhecida continuar pesquisável.

O Wiki.js exige HTTPS atrás de um reverse proxy?

Use HTTPS para a origem pública do Wiki.js e mantenha a porta 3000 na rota interna. Aplique corretamente a configuração do Wiki.js: configure a URL do site depois de encaminhar o serviço por HTTPS. Para o Wiki.js, o HTTPS protege credenciais ou conteúdo de usuários em trânsito e mantém consistente o comportamento do cliente sensível à origem.

Como testar um upgrade do Wiki.js?

Restaure o estado atual do Wiki.js em uma implantação isolada, aplique a versão candidata e repita sua transação de aceitação. Preste atenção especial, pois as migrations do banco de dados do Wiki.js e os módulos de autenticação devem ser testados em staging antes da mudança para outra linha de release. Mantenha a imagem anterior do Wiki.js até compreender os limites de migração de dados e rollback.