O que é o DokuWiki e por que escolher uma solução sem banco de dados?
No cenário atual de gestão do conhecimento e documentação técnica, a escolha da plataforma correta pode definir a agilidade e a segurança das equipes. O DokuWiki se destaca como uma solução robusta, leve e, acima de tudo, extremamente confiável para quem busca um sistema de wiki sem a complexidade inerente ao gerenciamento de bancos de dados relacionais (como MySQL ou PostgreSQL).
A principal vantagem do DokuWiki reside em sua arquitetura flat-file. Isso significa que toda a documentação é armazenada em arquivos de texto simples (geralmente no formato DokuWiki, similar ao Markdown ou reStructuredText) dentro do sistema de arquivos do servidor. Essa abordagem traz benefícios tangíveis:
- Backup Simplificado: Fazer backup de uma wiki DokuWiki equivale a copiar uma pasta. Não há necessidade de exportar bancos de dados complexos ou gerenciar transações SQL.
- Portabilidade: Mover sua documentação para outro servidor (ou migrar para uma VPS mais potente) é tão simples quanto transferir os arquivos via SCP, rsync ou Git.
- Performance: Para a maioria dos casos de uso corporativo e técnico, a leitura de arquivos texto é extremamente rápida, eliminando a latência de consultas ao banco de dados.
- Segurança Reduzida: Sem banco de dados, elimina-se uma camada inteira de vetores de ataque comuns em aplicações web (como SQL Injection).
Este tutorial guiará você, passo a passo, pela instalação completa do DokuWiki em um ambiente Linux (Ubuntu/Debian), configurando o servidor web Nginx e garantindo que sua instância esteja pronta para uso profissional.
Pré-requisitos de Infraestrutura
Para seguir este guia, você precisará de acesso root ou sudo a um servidor Linux. Recomendamos as seguintes configurações mínimas para garantir boa performance:
- Sistema Operacional: Ubuntu 20.04 LTS ou superior (ou Debian 11+).
- Processador: 1 vCPU ou superior.
- Memória RAM: 512MB é suficiente para começar, mas 1GB é recomendado se houver muitas páginas com imagens.
- Armazenamento: SSD (para melhorar a velocidade de leitura dos arquivos).
- Servidor Web: Nginx (escolhido por sua eficiência e baixo consumo de recursos, ideal para VPS).
Se você ainda não possui um servidor configurado, certifique-se de que o firewall está permitindo tráfego nas portas 80 (HTTP) e 443 (HTTPS). Se estiver usando UFW no Ubuntu, execute:
sudo ufw allow 'Nginx Full'
Passo 1: Preparação do Ambiente
O primeiro passo é atualizar o sistema operacional e instalar as dependências necessárias. O DokuWiki é desenvolvido em PHP, portanto, precisamos garantir que o interpretador PHP e os módulos necessários estejam instalados.
Inicie a atualização dos pacotes:
sudo apt update && sudo apt upgrade -y
Agora, instale o Nginx, o PHP (versão 8.1 ou superior recomendada) e as extensões necessárias para o funcionamento correto do DokuWiki, incluindo suporte a HTTPS e manipulação de arquivos:
sudo apt install nginx php-fpm php-cli php-xml php-mbstring php-zip php-curl unzip -y
Após a instalação, é crucial verificar se o serviço PHP-FPM está configurado para ouvir corretamente. O DokuWiki requer algumas extensões específicas que podem não estar habilitadas por padrão em instalações limpas. Vamos garantir que as extensões essenciais estejam ativas:
sudo phpenmod xml mbstring zip curl
Por fim, reinicie o serviço PHP-FPM para aplicar as configurações e inicie o Nginx:
sudo systemctl restart php8.1-fpm
sudo systemctl enable nginx
sudo systemctl start nginx
Passo 2: Download e Extração do DokuWiki
Agora que o servidor está pronto, vamos baixar a versão estável mais recente do DokuWiki. Evite usar pacotes diretamente do repositório do sistema operacional (apt), pois eles costumam estar desatualizados. A melhor prática é baixar diretamente do site oficial.
Crie um diretório dedicado para os arquivos da wiki e navegue até ele:
sudo mkdir -p /var/www/wiki
cd /var/www/wiki
Baixe o arquivo .zip mais recente. Você pode verificar a versão atual no site oficial, mas geralmente o comando abaixo funciona para baixar a última release estável:
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
Extraia os arquivos. Note que a extração criará uma estrutura de pastas interna. Vamos reorganizar isso para que o documento root aponte diretamente para os arquivos da wiki, facilitando a configuração do Nginx:
sudo tar -xzf dokuwiki-stable.tgz
cd dokuwiki-*
Mova todos os arquivos e pastas do diretório extraído para o diretório pai (onde estamos agora), removendo a pasta vazia da versão:
sudo mv ./* ../
sudo rm -rf dokuwiki-*
Agora, seu diretório /var/www/wiki contém os arquivos originais do DokuWiki. Vamos corrigir as permissões para que o usuário do Nginx (geralmente www-data) possa escrever nos diretórios necessários (data e conf).
cd /var/www/wiki
sudo chown -R www-data:www-data .
sudo chmod -R 755 .
Passo 3: Configuração do Nginx
Com os arquivos no lugar, precisamos configurar o Nginx para servir o DokuWiki corretamente. Criaremos um arquivo de servidor virtual dedicado.
Crie um novo arquivo de configuração:
sudo nano /etc/nginx/sites-available/dokuwiki
Insira a seguinte configuração. Esta configuração otimiza o envio de arquivos estáticos e garante que URLs limpas funcionem corretamente:
server {
listen 80;
server_name wiki.seudominio.com.br; # Substitua pelo seu domínio ou IP
root /var/www/wiki;
index index.php;
# Localização principal
location / {
try_files $uri $uri/ /dokuwiki/index.php?$args;
}
# Proteção de arquivos sensíveis
location ~ ^/(data|conf|bin|inc) {
deny all;
}
# Processamento PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Ajuste a versão do PHP se necessário
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Otimização de arquivos estáticos (CSS, JS, Imagens)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
# Redirecionamento HTTPS (opcional, mas recomendado)
server {
listen 443 ssl http2;
server_name wiki.seudominio.com.br;
# Certificados SSL (Configure com Let's Encrypt depois)
# ssl_certificate /etc/letsencrypt/live/wiki.seudominio.com.br/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/wiki.seudominio.com.br/privkey.pem;
root /var/www/wiki;
index index.php;
location / {
try_files $uri $uri/ /dokuwiki/index.php?$args;
}
location ~ ^/(data|conf|bin|inc) {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Salve o arquivo (Ctrl+O, Enter) e saia (Ctrl+X). Ative a configuração criando um link simbólico para a pasta sites-enabled e teste a sintaxe do Nginx:
sudo ln -s /etc/nginx/sites-available/dokuwiki /etc/nginx/sites-enabled/
sudo nginx -t
Se o teste for bem-sucedido, recarregue o Nginx:
sudo systemctl reload nginx
Passo 4: Instalação via Web e Segurança Inicial
Agora que a infraestrutura está pronta, abra seu navegador e acesse http://ip-do-seu-servidor/install.php. Você verá a tela de configuração inicial do DokuWiki.
Atenção: Siga os passos na tela cuidadosamente. O DokuWiki verificará as permissões de escrita. Se houver erros, verifique o passo de permissões do Passo 2.
- Dados da Wiki: Defina o nome da sua wiki e o nome do administrador padrão.
- Configurações: Mantenha as configurações padrão para "Licença", "Data Format" (pt_BR) e "Use RTL". Marque a opção "Enable ACLs" se quiser controlar quem pode editar o que.
- Criação de Conta: Defina uma senha forte para o usuário admin.
Ao finalizar, o DokuWiki gerará o arquivo local.php. Se tudo correr bem, ele informará que a instalação foi concluída com sucesso.
Ação Crítica de Segurança: Imediatamente após a instalação, remova o script de instalação. Deixá-lo acessível é um risco de segurança grave.
sudo rm /var/www/wiki/install.php
Passo 5: Configuração de HTTPS com Let's Encrypt
Nunca opere uma wiki corporativa sem criptografia. Vamos instalar o Certbot para obter certificados SSL gratuitos do Let's Encrypt.
sudo apt install certbot python3-certbot-nginx -y
Execute o Certbot e selecione a opção correspondente ao seu site DokuWiki:
sudo certbot --nginx -d wiki.seudominio.com.br
O assistente perguntará se deseja redirecionar todo o tráfego HTTP para HTTPS. Escolha a opção 2 (Redirecionamento). O Certbot atualizará automaticamente sua configuração do Nginx e recarregará o serviço.
Passo 6: Manutenção e Boas Práticas
Uma wiki sem banco de dados exige uma mentalidade diferente de manutenção. Como tudo é arquivo, a integridade dos dados depende da integridade do sistema de arquivos.
Backups Automáticos
Crie um script simples de backup ou use uma ferramenta como o Duplicati/Restic para fazer backup do diretório /var/www/wiki/data e /var/www/wiki/conf. O arquivo local.php contém suas senhas criptografadas, então ele deve ser tratado com a mesma sensibilidade dos dados.
# Exemplo de script de backup simples
sudo tar -czf /backup/dokuwiki-$(date +%F).tar.gz -C /var/www/wiki data conf local.php
Otimização de Performance
O DokuWiki possui um sistema de cache integrado. Certifique-se de que as permissões do diretório cache estejam corretas para que o PHP possa ler e escrever arquivos temporários, acelerando drasticamente a velocidade de carregamento das páginas.
Extensibilidade
A força do DokuWiki está em seus plugins. A maioria dos plugins requer apenas o upload de uma pasta para o diretório /var/www/wiki/lib/plugins/. Após baixar um plugin, sempre verifique se ele é compatível com sua versão do DokuWiki e atribua as permissões corretas:
sudo chown -R www-data:www-data /var/www/wiki/lib/plugins/novo-plugin
Conclusão
Instalar um Dokuwiki servidor próprio é uma decisão estratégica para organizações que valorizam a soberania dos dados e a simplicidade operacional. Ao eliminar a dependência de bancos de dados complexos, você ganha em resiliência, facilidade de backup e portabilidade.
Com a configuração de Nginx e HTTPS adequada, sua wiki sem banco de dados estará pronta para servir como a central de conhecimento da sua equipe. Lembre-se de monitorar o uso de disco, pois wikis muito ativas podem crescer rapidamente em número de arquivos, mas a performance permanecerá estável desde que o sistema de arquivos esteja saudável.
Agora você está pronto para documentar. Comece criando seu primeiro namespace e convide sua equipe para colaborar.