DokuWiki: Servidor Próprio Sem Banco de Dados

10 min de leitura Wikis e Documentação
DokuWiki: Servidor Próprio Sem Banco de Dados

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.

  1. Dados da Wiki: Defina o nome da sua wiki e o nome do administrador padrão.
  2. 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.
  3. 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.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000