Plausible Analytics Self-Hosted: Privacidade e Controle Total

11 min de leitura Análise de Dados e BI
Plausible Analytics Self-Hosted: Privacidade e Controle Total

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.

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