Como fazer self-hosting do DokuWiki em 2026: armazenamento de ficheiros, ACLs e backups
Um guia prático para fazer self-hosting do DokuWiki, cobrindo Docker, portas, dados persistentes, TLS, segurança, backups e as falhas que impedem o uso em produção. Com verificações.
Trate o DokuWiki como um pequeno sistema, não como uma imagem Docker. O objetivo do DokuWiki para os utilizadores é claro: uma wiki baseada em ficheiros que não precisa de uma base de dados; a implementação só é aceitável quando consegue substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior.
Esta distinção deteta a falha que os operadores encontram depois dos testes locais: as permissões dos ficheiros impedem guardar páginas, apesar de a interface carregar. Também torna o plano de backup e atualização suficientemente específico para ser testado.
Portas, processos e serviços privados
Comece pelo namespace de rede do DokuWiki: o listener Web usa a porta 80, não uma porta do host copiada de um tutorial para um computador portátil. O requisito do runtime local é um volume de configuração persistente que contenha páginas, ficheiros multimédia e ACLs. Documente a capacidade esperada, as permissões e o modo de falha, em vez de deixar tudo como predefinição da imagem.
Depois de cumprir o requisito, execute o cenário completo — substitua as credenciais de configuração, edite uma página, carregue ficheiros multimédia, aplique uma ACL, consulte uma revisão e restaure uma versão anterior. Registe logs e medições dos metadados do sistema de ficheiros, do volume multimédia, da indexação de pesquisa e dos workers PHP. Estas evidências tornam-se a primeira arquitetura conhecida como funcional e permitem testar migrações posteriores entre o compute da Dockup e um servidor ligado.
Testes de falha do DokuWiki
Um container em estado saudável é necessário, mas não suficiente. O indicador de nível de serviço é a conclusão bem-sucedida de “substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior”, enquanto os sinais de pressão mais prováveis são os metadados do sistema de ficheiros, o volume multimédia, a indexação de pesquisa e os workers PHP.
O controlo de alterações é importante porque os plugins e templates podem ficar para trás em relação às versões do DokuWiki, apesar de os ficheiros de páginas simples continuarem legíveis. Preserve a imagem antiga, teste as migrações com uma cópia do estado e documente se o rollback é suportado depois de ocorrerem alterações ao schema. Se as permissões dos ficheiros impedirem guardar páginas, apesar de a interface carregar, diagnostique o primeiro limite que difere do ambiente funcional.
Registe uma implementação do DokuWiki conhecida como funcional
Um release candidate do DokuWiki conquista tráfego ao concluir um cenário fixo: substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior. Registe o digest da imagem, a configuração efetiva não secreta, a origem pública e os timestamps desse cenário. Os dados de teste devem ser descartáveis, mas suficientemente realistas para exercitar o mesmo percurso dos utilizadores.
Execute-o depois de substituir o runtime e, em seguida, reconstrua o serviço a partir de páginas, ficheiros multimédia, metadados, utilizadores, ACLs e plugins. A recuperação é bem-sucedida quando as páginas, revisões, ficheiros multimédia, utilizadores, ACLs e plugins regressam e a página protegida continua protegida. Compare as medições de recursos dos metadados do sistema de ficheiros, do volume multimédia, da indexação de pesquisa e dos workers PHP com a versão anterior e investigue desvios significativos antes da promoção.
Por fim, exercite esta falha controlada: envie dados inofensivos próximos do limite de recursos ou formato associado a este limite: as permissões dos ficheiros impedem guardar páginas, apesar de a interface carregar. Verifique se o DokuWiki explica a falha, não danifica o estado existente e retoma o funcionamento quando a condição válida regressa. Guarde um excerto de log sem dados sensíveis e o tempo de recuperação. Em conjunto, estas verificações abrangem comportamento, durabilidade e operabilidade, em vez de apenas a disponibilidade do processo.
Execute a primeira instância com características de produção
Use um comando que exponha todas as escolhas importantes. Esta configuração base associa o DokuWiki ao loopback do host, adiciona os mounts de dados conhecidos e fornece a primeira definição necessária. Confirme o requisito local antes de o expor: um volume de configuração persistente que contenha páginas, ficheiros multimédia e ACLs.
docker run -d \
--name dokuwiki \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v dokuwiki-data:/config \
lscr.io/linuxserver/dokuwiki:latest
Substitua tags flutuantes por uma versão ou digest testado. Depois do arranque, inspecione docker logs --tail 200 dokuwiki e confirme que o processo está a escutar na porta 80. Em seguida, execute a ação de aceitação do DokuWiki; uma resposta da página inicial não prova que o cenário completo funciona: substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior.
Os volumes são apenas a primeira camada de recuperação
Para o DokuWiki, a segurança da reimplementação começa pelas páginas, ficheiros multimédia, metadados, utilizadores, ACLs e plugins. Monte /config antes do bootstrap, escreva dados de exemplo inofensivos e substitua o container para provar que esse percurso é realmente persistente. Teste o percurso substituindo o container enquanto os dados de exemplo inofensivos existem; isto revela mounts apontados uma diretoria acima ou abaixo do necessário.
Em seguida, teste a recuperação de desastre num host vazio. Quando necessário, use uma exportação da base de dados consistente com a aplicação e verifique se as páginas, revisões, ficheiros multimédia, utilizadores, ACLs e plugins regressam e se a página protegida continua protegida. O guia de backups de bases de dados com restauração testada define um objetivo mais rigoroso do que simplesmente verificar se foi criado um ficheiro de arquivo.
Dê ao DokuWiki um endereço canónico
A emissão de TLS é apenas metade do percurso do DokuWiki. Sirva a wiki através de HTTPS e defina o seu URL base canónico. Envie o tráfego internamente para a porta 80 e reencaminhe o esquema externo para manter consistentes os URLs gerados e os cookies seguros.
Use o cenário completo do DokuWiki a partir de uma rede limpa, não apenas a página inicial. Um erro 502 ou uma falha de certificado pode ser isolado com a configuração automática de domínio e TLS. Se o tráfego chegar ao processo e as permissões dos ficheiros impedirem guardar páginas, apesar de a interface carregar, diagnostique essa condição no ponto onde ocorre, em vez de acumular redirecionamentos.
Feche o acesso temporário de configuração
Faça o threat modeling da ação executada pelo DokuWiki, não apenas do seu formulário de login. Neste caso, o erro de maior risco é deixar abertas as definições do instalador ou do registo. Implemente este limite: remova o acesso ao instalador, reveja o registo e preserve os ficheiros ACL juntamente com o conteúdo das páginas.
O DokuWiki não tem um segredo de bootstrap obrigatório nesta configuração base; proteja a conta de administrador real ou a autenticação a montante. Não resolva um erro de permissões executando o container como root ou montando o host de forma abrangente. Os limites de recursos também fazem parte do desenho de segurança quando os metadados do sistema de ficheiros, o volume multimédia, a indexação de pesquisa e os workers PHP podem ser acionados pelos utilizadores.
Use a Dockup para a camada de plataforma
Um template da Dockup deve codificar a imagem, a porta 80, os mounts, os tempos de health check, o domínio, o TLS e a entrega de secrets. A Dockup deve preservar as definições do runtime do DokuWiki enquanto o operador confirma este requisito local: um volume de configuração persistente que contenha páginas, ficheiros multimédia e ACLs. A mesma implementação pode ter como destino servidores da Dockup ou capacidade ligada do cliente.
Depois de o percurso estar ativo, aplique a definição pública e tente substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior. Faça backup das páginas, ficheiros multimédia, metadados, utilizadores, ACLs e plugins e mantenha o exercício de restauração no plano operacional; estas são responsabilidades do DokuWiki que continuam visíveis depois do aprovisionamento da infraestrutura.
Perguntas frequentes
O que é necessário para uma implementação do DokuWiki em produção?
Encaminhe o container do DokuWiki na porta 80 através de uma origem HTTPS. O requisito do runtime local é um volume de configuração persistente que contenha páginas, ficheiros multimédia e ACLs. Não considere o DokuWiki pronto até conseguir substituir as credenciais de configuração, editar uma página, carregar ficheiros multimédia, aplicar uma ACL, consultar uma revisão e restaurar uma versão anterior.
Que dados do DokuWiki devem fazer parte de um backup?
Persista /config e inclua páginas, ficheiros multimédia, metadados, utilizadores, ACLs e plugins no mesmo manifesto de recuperação. Uma restauração limpa do DokuWiki só é bem-sucedida quando as páginas, revisões, ficheiros multimédia, utilizadores, ACLs e plugins regressam e a página protegida continua protegida.
O DokuWiki precisa de HTTPS atrás de um reverse proxy?
Use HTTPS para a origem pública do DokuWiki e mantenha a porta 80 no percurso interno. Aplique corretamente a definição do DokuWiki: sirva a wiki através de HTTPS e defina o seu URL base canónico. No DokuWiki, o HTTPS protege as credenciais ou o conteúdo dos utilizadores durante o trânsito e mantém consistente o comportamento do cliente sensível à origem.
Como deve ser testada uma atualização do DokuWiki?
Restaure o estado atual do DokuWiki numa implementação isolada, aplique a versão candidata e repita a transação de aceitação. Tenha especial atenção porque os plugins e templates podem ficar para trás em relação às versões do DokuWiki, apesar de os ficheiros de páginas simples continuarem legíveis. Mantenha a imagem anterior do DokuWiki até compreender os limites da migração de dados e do rollback.
