|

Como Hospedar o Plausible Analytics Usando o Docker

Plausible é uma excelente opção quando se deseja obter estatísticas de tráfego relevantes, sem necessariamente encaminhar cada visualização de página para a plataforma de publicidade do Google. Com a Community Edition, é possível executar a mesma aplicação central em seu próprio servidor, permitindo que você decida onde os bancos de dados e backups serão armazenados.

Plausible é uma análise web de código aberto que não utiliza cookies. Seu painel de controle inclui informações sobre visualizações de página, visitantes, referências, páginas de entrada e saída, localização geográfica, dispositivos utilizados, metas e eventos personalizados, sem tentar criar um perfil publicitário individual para cada visitante.

Plausible Analytics dashboard showing website traffic and referrer metrics
Imagem:
chsyys/KaboomPics

Em um servidor virtual privado Linux, a configuração consiste em utilizar Docker Compose junto com Nginx e Let’s Encrypt. A porta de aplicação será mantida no localhost e o procedimento será finalizado com a realização de atualizações e backups. Você será responsável pelos dados analíticos, enquanto eu cuidarei da manutenção do servidor.

O que é armazenado nos servidores do Plausible.

Plausible distribui suas informações em dois bancos de dados diferentes. Enquanto no PostgreSQL são guardadas as contas e configurações do site, no ClickHouse são mantidos os eventos analíticos. Conforme descrito na documentação de segurança e privacidade da Plausible, o processo de rastreamento padrão não faz uso de cookies, não armazena endereços IP brutos dos visitantes nem informações do User-Agent. Em vez disso, é gerado um identificador diário com um sal rotativo.

Esta abordagem de coleta de dados é menos pesada do que a análise de publicidade convencional, no entanto, o auto-hospedagem não garante automaticamente a compatibilidade de um site. Fatores como localização do servidor, registros do Nginx, configuração de eventos personalizados, retenção de dados, controles de acesso e política de privacidade ainda são importantes. Evite armazenar informações pessoais, como nomes, endereços de e-mail, IDs de conta, em propriedades personalizadas.

O ClickHouse estabelece os requisitos mínimos para o servidor. A versão comunitária recomendada do Plausible sugere que o servidor tenha no mínimo 2 GB de RAM e um processador com suporte SSE 4.2 ou NEON. Para websites pequenos, um servidor virtual privado KVM QDE com 2 GB de RAM é um ponto de partida adequado, oferecendo acesso root para o Docker. Se você espera ter sites movimentados, retenção de dados prolongada ou várias propriedades em um único servidor, é aconselhável começar com configurações mais robustas.

Antes de iniciar.

Fiquem prontos.

  • Um servidor recém-instalado com Debian, Ubuntu, CentOS Stream, Rocky Linux ou AlmaLinux.
  • Obter acesso root ou um usuário com permissões sudo.
  • No mínimo 2 gigabytes de memória RAM.
  • Um domínio ou subdomínio como possível.exemplo.com
  • DNS A e, se empregado, entradas AAAA que indicam o servidor.
  • Portas 80 e 443 devem estar desbloqueadas em qualquer firewall de um host ou provedor de serviços.

Utilizamos o plausible.example.com em todas as partes do manual. Substitua-o pelo seu nome de host real e aguarde a resolução do DNS antes de solicitar um certificado ao Certbot.

1. Configure os pacotes do sistema indispensáveis.

No sistema operacional Debian ou Ubuntu:

Nos sistemas CentOS Stream, Rocky Linux ou AlmaLinux:

Não há nada de extraordinário neste cenário: O Git gerencia o repositório, o curl faz o download do instalador do Docker e verifica os pontos de acesso locais, o OpenSSL cria as chaves de segurança e o pacote CA garante que os downloads HTTPS continuem funcionando.

Passos para configurar o Docker e o Docker Compose.

A maneira mais rápida de implementar o script de conveniência do Docker é inspecioná-lo inicialmente, se a política do servidor assim o exigir, e então executá-lo.

Em um servidor de produção com restrições mais rígidas sobre os pacotes, é recomendado seguir as instruções específicas para a instalação do Docker Engine conforme o guia de instalação da distribuição utilizada.

Caso não esteja logado como root, inclua seu usuário atual no grupo docker.

A alteração de grupo será aplicada após o login e o retorno. Se desejar permanecer na sessão atual, inicie um novo terminal com:

Recomenda-se considerar a adesão ao grupo do Docker como ter permissão de superusuário, pois é o que isso realmente significa. Adicione apenas contas de administrador de confiança. O Docker fornece orientações detalhadas sobre esse assunto em seu manual de pós-instalação para Linux.

Iniciar o Docker automaticamente e verificar se o Docker Engine e o plugin Compose estão instalados e funcionando corretamente.

Caso ocorra algum erro ao executar um comando de versão, é importante resolver as questões relacionadas ao Docker antes de prosseguir. As instruções subsequentes pressupõem que tanto o Motor quanto o Compose estejam operacionais.

3. Duplique a Edição Comunitária Plausível.

Faça uma cópia do repositório oficial e exiba o branch Git confirmado.

O ambiente de desenvolvimento recomendado utiliza um branch distinto para cada versão e ambiente. O arquivo yml especifica a versão do aplicativo correspondente. Ao clonar um repositório com o comando -b, o Git verifica qual branch está marcado como padrão no momento. Antes de prosseguir, compare o branch atual com o branch oficial mais recente. É importante lembrar o nome do branch, pois um pull git padrão não irá mudar para a próxima versão posteriormente.

O conjunto de recursos disponíveis no repositório abrange Plausible, PostgreSQL e ClickHouse, juntamente com configurações padrão para o ClickHouse. Para personalizar a configuração local, é recomendado utilizar os arquivos .env e compose.override.yml, mantendo o compose.yml intocado. Essa abordagem ajuda a evitar conflitos desnecessários durante as atualizações.

Preparar o ambiente.

Inicie com um arquivo de configuração sem conteúdo.

Insira o link público e, em seguida, crie chaves separadas para as informações de sessão e os dados TOTP criptografados.

A SECRET_KEY_BASE precisa ser mantida constante após a instalação, já que o Plausible a utiliza para sessões e outras informações secretas. O TOTP_VAULT_KEY é responsável por proteger segredos de autenticação de dois fatores enquanto estão inativos.

A chave TOTP é uma opção. Se não for utilizada, o Plausible cria uma chave a partir do SECRET_KEY_BASE com PBKDF2. Além disso, um valor aleatório adicional é definido. Certifique-se de fazer um backup seguro do arquivo .env e evite compartilhar segredos em tickets, chats ou capturas de tela.

Uma observação importante: o valor gerado para a atribuição TOTP_VAULT_KEY contém um sinal de igual antes do valor. Se o resultado do OpenSSL terminar com =, esse caracter pertence ao valor codificado em Base64.

A documentação de configuração oficial inclui as opções restantes, como configurações de registro, SMTP, geolocalização, URLs de banco de dados e segredos do Docker.

Conecte Plausible a localhost en el puerto 8000.

Por favor, indique a porta interna do HTTP no arquivo .env.

Paráfrase do texto: Tornar o endereço padrão para a porta 8000 é uma prática recomendada. Documentar essa informação facilita a associação entre o arquivo .env e a substituição necessária quando se retorna a essa configuração após vários meses.

Criar um arquivo compose.override.yml de modo que o Docker exponha essa porta apenas em 127.0.0.1.

As aspas ao redor de ‘EOF’ são essenciais para o funcionamento correto. Elas garantem que a variável ${HTTP_PORT} permaneça inalterada até que o Docker Compose leia o arquivo .env. Se as aspas não forem utilizadas, o shell pode expandir uma variável indefinida primeiro, resultando em um mapeamento de porta incorreto.

Permita que o Compose analise a configuração combinada antes de começar qualquer operação. Utilize a opção –quiet para examinar o arquivo sem exibir suas informações confidenciais.

Plausible agora estará configurado para escutar em 127.0.0.1:8000, garantindo que apenas o servidor possa acessá-lo. Nginx será responsável por gerenciar o tráfego externo.

Começar de forma convincente.

Retire as imagens do recipiente e comece a empilhá-las.

O início inicial não acontece imediatamente. Antes de Plausible configurar suas bases de dados, PostgreSQL e ClickHouse precisam passar por verificações de saúde. Aguarde um momento para que a pilha seja verificada.

Assim que os containers estiverem preparados, verifique o endpoint HTTP local.

Qualquer resposta HTTP indica que o host pode acessar Plausible. Se houver falha na conexão, verifique os logs do compose docker –tail=200 e resolva o problema do contêiner antes de integrar o Nginx.

Configurar o Nginx para atuar como um servidor proxy reverso.

Instale Nginx, Certbot y el plugin de Nginx de Certbot.

No sistema operacional Debian ou Ubuntu:

Em sistemas operacionais como CentOS Stream, Rocky Linux ou AlmaLinux:

A forma de configurar varia de acordo com a distribuição. No caso do Debian ou Ubuntu, é necessário criar:

No CentOS Stream, Rocky Linux ou AlmaLinux, faça a seguinte criação:

Insira o bloco de servidor idêntico em qualquer documento.

O bloco /live/websocket pode ser facilmente ignorado, no entanto, é essencial para o funcionamento adequado do painel ao vivo. Os demais cabeçalhos enviam informações como o nome do host original, a cadeia do cliente e o esquema de solicitação para Plausible. Essa configuração segue as instruções do proxy reverso do Plausible e inclui os cabeçalhos encaminhados comumente utilizados.

No sistema Debian ou Ubuntu, habilite o site:

Se o link simbólico já está criado, não o altere.

Em sistemas como CentOS Stream, Rocky Linux ou AlmaLinux que contam com SELinux ativo, Nginx também requer autorização para acessar o upstream local.

Experimente as configurações, ative o Nginx para iniciar automaticamente e reinicie-o.

Pense em nginx -t como um ponto de verificação. Certifique-se de corrigir cada erro identificado antes de pedir um certificado.

8. Implementar a proteção HTTPS utilizando Certbot

Com a configuração do DNS e as portas 80 e 443 abertas, permita que o Certbot solicite e atualize o certificado, bem como o host virtual do Nginx.

Realize uma verificação adicional da configuração antes de reiniciar o Nginx.

Confira o ponto final visível na linha de comando.

Experimente atualizar o certificado imediatamente, aproveitando o momento em que a configuração está recente.

Estabelecer o usuário inicial e limitar a inscrição.

Acesse o site https://plausible.example.com e crie uma conta de usuário. Inclua o seu site no painel de controle e insira o código de rastreamento do Plausible entre as tags do seu site.

Possíveis diretrizes para registrar o convite somente após a conclusão da configuração da primeira conta. Também incluímos a definição do valor no arquivo .env, de modo que o comportamento desejado seja evidente na próxima leitura do arquivo.

Os usuários convidados ainda têm a possibilidade de se inscreverem com essa configuração. Utilize a opção DISABLE_REGISTRATION=true somente se desejar impedir a criação de novas contas, incluindo as geradas por convites.

Dê uma última revisada na pilha.

Atualizar Plausible significa realizar a atualização do Plausible.

O modelo de lançamento do Plausible pode ser confuso, pois cada versão tem seu próprio ramo e as correções de segurança não são aplicadas às versões mais antigas. Ao fazer um git pull ou docker compose pull, você pode permanecer na versão antiga do Plausible, mesmo que os comandos sejam executados com êxito.

Antes de realizar a atualização, é recomendável que você consulte a página de lançamento do projeto e revise o guia correspondente. Em certas versões, podem ser necessários passos adicionais para PostgreSQL ou ClickHouse. É fundamental fazer um backup dos dados antes de prosseguir e, em seguida, substituir o “vX.Y.Z” pelo ramo específico das notas de lançamento.

O comando docker compose pull não é obrigatório nesta situação. Ele faz a atualização de todas as imagens no novo arquivo Compose, mas é o comando git pull origin vX.Y.Z que escolhe a versão Plausible e atualiza a imagem relevante. Se houver um conflito relatado pelo Git, é importante parar e resolvê-lo, assim como em qualquer etapa adicional de migração mencionada nas notas de lançamento.

Confira os recipientes e o registro Plausible após a atualização.

Devido ao fato de que a configuração da porta local está presente no arquivo compose.override.yml, o arquivo de composição rastreada.yml permanece organizado e é menos propenso a conflitos durante o comando git pull origin vX.Y.Z.

Faça cópias de segurança em nível de aplicação.

Uma imagem do servidor é valiosa, no entanto, Plausible preserva dados cruciais nos volumes do PostgreSQL e ClickHouse. É essencial fazer backup dos dois bancos de dados, guardar uma cópia fora do VPS e realizar ao menos um teste de restauração. Identificar um backup incompleto após uma falha é algo que deve ser evitado a todo custo.

O serviço de proteção inclui backups diários de servidores virtuais privados, oferecendo mais uma opção de recuperação em caso de falhas no servidor. É importante considerá-los como uma medida adicional aos backups do banco de dados, e não como uma substituição.

Após garantir que as verificações foram bem-sucedidas, insira o código de rastreamento e espere pelas primeiras visitas. Depois disso, é importante realizar as práticas comuns de manutenção do servidor, como acompanhar as atualizações, armazenamento e backups.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *