A coleta de dados de tráfego web é um pilar fundamental para qualquer estratégia digital moderna. No entanto, a dependência excessiva de soluções terceirizadas, como o Google Analytics, traz preocupações crescentes relacionadas à privacidade dos usuários, conformidade com regulamentações (como a LGPD no Brasil) e latência na carregamento das páginas. É nesse contexto que ferramentas self-hosted analytics, como o Plausible Analytics, ganham destaque. Elas oferecem uma alternativa leve, ética e completa ao Google Analytics, permitindo que administradores de sistemas e desenvolvedores mantenham o controle total sobre seus dados.
O Plausible destaca-se por ser extremamente leve, não utilizar cookies e focar na privacidade desde a arquitetura. Neste tutorial técnico, detalhamos o processo completo de instalação do Plausible em um servidor VPS utilizando Docker Compose. Este método garante portabilidade, facilidade de manutenção e isolamento de dependências, seguindo as melhores práticas da indústria para install plausible vps.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, é crucial garantir que o ambiente de servidor esteja preparado. A arquitetura do Plausible depende de três componentes principais: uma base de dados PostgreSQL, um sistema de filas Redis para processamento assíncrono e o próprio serviço da aplicação web. Para este guia, assumimos que você já possui acesso root ou com privilégios sudo a um servidor Linux (Ubuntu 22.04 LTS recomendado) e um domínio configurado apontando para o IP público do servidor.
O primeiro passo é instalar o Docker e o Docker Compose na sua máquina. O Docker permite empacotar todas as dependências necessárias em contêineres isolados, simplificando drasticamente a gestão de versões e atualizações. Execute os seguintes comandos para instalar as ferramentas essenciais:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Após a instalação, verifique se o serviço está rodando corretamente com sudo systemctl status docker. Além disso, é altamente recomendável configurar um firewall básico (como UFW) para permitir apenas portas essenciais (SSH, HTTP e HTTPS), mantendo as portas internas do banco de dados e Redis bloqueadas para o mundo exterior.
Estruturação do Projeto Docker Compose
A instalação eficiente do Plausible utiliza um arquivo docker-compose.yml que orquestra os contêineres. Crie um diretório dedicado para o projeto, por exemplo, /opt/plausible, e navegue até ele. Dentro desse diretório, criaremos o arquivo de configuração principal.
A estrutura do Docker Compose para o Plausible inclui definições para o banco de dados PostgreSQL, o cache Redis, o servidor web (Nginx ou Caddy para proxy reverso) e os serviços internos de ingestão de eventos. É vital definir variáveis de ambiente seguras, especialmente a SECRET_KEY_BASE, que criptografa sessões e tokens do sistema.
mkdir -p /opt/plausible
cd /opt/plausible
nano docker-compose.yml
O conteúdo do arquivo deve seguir a estrutura padronizada da comunidade. Abaixo, apresentamos um exemplo robusto que inclui o serviço principal e as dependências de infraestrutura:
version: '3'
services:
db:
image: postgres:14-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=super_secret_password_aqui # Mude isso!
- POSTGRES_USER=plausible
- POSTGRES_DB=plausible
redis:
image: redis:7-alpine
restart: always
volumes:
- redis-data:/data
plausible:
image: ghcr.io/plausible/analytics:v1.7.0 # Verifique a versão mais recente no GitHub
restart: always
depends_on:
- db
- redis
environment:
- TEMPLATES_BASE_DIR=/app/templater
- BASE_URL=seu-dominio.com.br
- SECRET_KEY_BASE=gerar_uma_chave_segura_longa_e_complexa_aqui
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=senha_clickhouse # Se usar ClickHouse, senão ignore
volumes:
- ./events:/data/events
volumes:
db-data:
redis-data:
Atenção Crítica: O exemplo acima é simplificado. A documentação oficial do Plausible recomenda o uso de um proxy reverso externo para gerenciar certificados SSL/TLS, pois o próprio contêiner do Plausible não gera certificados automaticamente em ambientes de produção complexos. Para este tutorial, focaremos na lógica de orquestração e integração com serviços externos.
Configuração do Banco de Dados e Segurança
A segurança da base de dados é primordial. Nunca exponha a porta 5432 (PostgreSQL) ou 6379 (Redis) diretamente na interface pública do servidor. O Docker Compose lida com isso através de redes internas por padrão, mas é importante garantir que as credenciais estejam definidas em variáveis de ambiente e não hard-coded no código-fonte.
Gere uma chave secreta forte para a variável SECRET_KEY_BASE. Essa chave é usada para assinaturas de cookies e sessões. Se você perder esta chave, terá que migrar manualmente os dados ou resetar as sessões dos usuários administradores. Utilize o comando abaixo no seu terminal local para gerar uma chave segura:
openssl rand -base64 32
Copie a saída e substitua o valor placeholder no seu arquivo docker-compose.yml. Da mesma forma, defina uma senha complexa para o usuário do PostgreSQL. A integridade dos seus dados de análise depende diretamente da robustez dessas credenciais.
Proxy Reverso e Certificados SSL (Nginx ou Caddy)
Para que o self-hosted analytics seja acessível via HTTPS e respeite os padrões modernos de segurança web, é necessário configurar um proxy reverso. O Nginx é a escolha mais comum em ambientes Linux, enquanto o Caddy oferece automação nativa de certificados Let's Encrypt.
Vamos utilizar o Nginx neste exemplo. Instale o Nginx e obtenha seus certificados SSL usando Certbot:
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d seu-dominio.com.br
O Certbot irá modificar a configuração do Nginx automaticamente para redirecionar HTTP para HTTPS. No entanto, precisamos adicionar uma localização específica para encaminhar as requisições de script de rastreamento e dados da API para o contêiner do Plausible.
server {
server_name seu-dominio.com.br;
# Configurações SSL geradas pelo Certbot...
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api/ {
proxy_pass http://localhost:8000/api/;
# Configurações similares acima...
}
}
Nota Técnica: A porta 8000 é a porta padrão exposta pelo serviço plausible no Docker Compose. Certifique-se de que o contêiner esteja mapeando essa porta para o localhost ou configure uma rede Docker compartilhada entre o Nginx e o Plausible para comunicação interna mais segura.
Inicialização e Verificação da Instalação
Com o arquivo docker-compose.yml configurado e as variáveis de ambiente preenchidas, é hora de iniciar os contêineres. Execute o comando abaixo na raiz do diretório do projeto:
docker compose up -d
O flag -d executa os contêineres em segundo plano (detached mode). O Docker irá baixar as imagens necessárias, criar os volumes de dados persistentes e iniciar os serviços na ordem definida nas dependências. Para verificar se todos os componentes estão rodando corretamente, utilize:
docker compose ps
Todos os serviços devem aparecer com o status "Up". Se algum serviço falhar, verifique os logs para diagnosticar problemas de conexão ou permissão:
docker compose logs -f plausible
Acesse https://seu-dominio.com.br em seu navegador. Você deverá ver a página de login do Plausible. O usuário padrão é [email protected] (ou o email definido na configuração inicial) e a senha será gerada automaticamente na primeira execução ou definida via variável de ambiente PLAUSIBLE_DEFAULT_USER_EMAIL dependendo da versão específica utilizada.
Integração com Sites e Coleta de Dados
Após o login, o próximo passo crítico é adicionar os sites que deseja monitorar. No painel do Plausible, navegue até "Adicionar Site" e insira o domínio alvo (ex: blog.exemplo.com). O sistema gerará um snippet de código JavaScript leve que deve ser inserido no cabeçalho (<head>) das páginas web desejadas.
Diferente do Google Analytics, o script do Plausible é extremamente otimizado. Ele não faz requisições a subdomínios terceiros (como .googletagmanager.com), o que evita bloqueios por extensions de privacidade e reduz a latência de rede. Além disso, como estamos rodando em um servidor próprio, você pode configurar o script para apontar diretamente para seu domínio, eliminando completamente a dependência externa.
<script async defer data-domain="blog.exemplo.com" src="https://seu-dominio.com.br/js/plausible.js"></script>
Com essa configuração, todo o tráfego passa pelo seu servidor. Isso garante que os dados fiquem armazenados no seu banco de dados PostgreSQL, sob sua custódia exclusiva.
Manutenção, Backups e Escalabilidade
A operação contínua de um sistema plausible analytics servidor próprio requer atenção aos backups. Os dados mais críticos residem no volume do banco de dados PostgreSQL e no volume de eventos (se estiver usando armazenamento local para arquivos de evento). Configure scripts de backup automatizados que realizem dumps periódicos do PostgreSQL e copiem os volumes de dados para um storage remoto ou outro servidor.
docker exec plausible_db_1 pg_dump -U plausible plausible > backup_plausible.sql
Para atualizações, o processo é simples. Atualize a imagem no Docker Compose e reinicie os contêineres:
docker compose pull
docker compose up -d
O Plausible gerencia migrações de banco de dados automaticamente durante o início do contêiner, garantindo compatibilidade entre versões. No entanto, é sempre uma boa prática realizar um backup completo antes de upgrades maiores.
Considerações Finais: Privacidade vs Funcionalidade
A escolha entre ferramentas como Matomo e Plausible muitas vezes gira em torno do equilíbrio entre recursos avançados e simplicidade. O Matomo oferece uma suíte completa de relatórios, heatmaps e gravações de sessão, mas é significativamente mais pesado em termos de consumo de recursos de CPU e RAM. O Plausible, por sua vez, foca no essencial: métricas de visitas, páginas vistas, fontes de tráfego e dispositivos, com um footprint mínimo.
Para administradores que valorizam a privacidade web e desejam uma solução "instale e esqueça", o Plausible é frequentemente a escolha superior. Ele atende às demandas da LGPD ao não coletar dados pessoais identificáveis (PII) e ao operar de forma transparente. Ao seguir este tutorial, você não apenas implementa uma ferramenta de BI, mas também reafirma o compromisso com a soberania de dados na sua infraestrutura digital.
Lembre-se de monitorar o uso de disco e memória do seu servidor VPS. Embora leve, picos de tráfego podem aumentar a carga no banco de dados. Ajustes finos nas configurações de retenção de dados (por exemplo, arquivar dados antigos para armazenamento frio) podem ser necessários à medida que sua base de usuários cresce.