Como Instalar Plausible Analytics no Ubuntu 22.04

Introdução

Plausible Analytics é uma aplicação de análise web de código aberto e auto-hospedada escrita em Elixir que se concentra na simplicidade e privacidade. Ele armazena dados sobre os visitantes do seu site em bancos de dados PostgreSQL e ClickHouse.

Neste tutorial, você irá instalar o Plausible usando o Docker Compose e, em seguida, instalar o Nginx para atuar como um proxy reverso para o aplicativo Plausible. Por fim, você habilitará conexões HTTPS seguras usando o Certbot para baixar e configurar certificados SSL da Autoridade de Certificação Let’s Encrypt.

Pré-requisitos

Para completar este tutorial, você precisará primeiro dos seguintes itens:

Observação: Essas etapas prévias podem ser ignoradas se você estiver usando a Imagem Docker de Um Clique da DigitalOcean. Essa imagem já terá o Docker, Docker Compose e UFW instalados e configurados.

Inicie uma nova imagem do Docker na região de sua escolha, depois faça login como o usuário root e prossiga com o tutorial. Opcionalmente, você pode omitir as partes do sudo de todos os comandos, mas não é necessário.

Por fim, para habilitar SSL, você precisará de um nome de domínio apontado para o endereço IP público do seu servidor. Isso deve ser algo como exemplo.com ou plausivel.exemplo.com, por exemplo. Se você estiver usando a DigitalOcean, consulte nosso Guia de Início Rápido de DNS para obter informações sobre como criar recursos de domínio em nosso painel de controle.

Quando tiver satisfeito todos os pré-requisitos, avance para Passo 1, onde você irá baixar e iniciar o software Plausible.

Passo 1 – Instalando o Plausible Analytics com Docker Compose

O Plausible criou um repositório Git com todos os arquivos de configuração necessários para hospedar o software. Seu primeiro passo será clonar este repositório para o seu servidor, atualizar dois arquivos de configuração e então iniciar os containers de aplicativo e banco de dados do Plausible.

Faça login no seu servidor agora.

Primeiro, use o comando cd para navegar até o diretório /opt:

  1. cd /opt

Depois, use o comando git para clonar o repositório do GitHub em um novo diretório dentro de /opt chamado plausible:

  1. sudo git clone https://github.com/plausible/hosting plausible

Isso irá baixar todos os arquivos de configuração necessários para /opt/plausible. Mova-se para o diretório recém-criado:

  1. cd plausible

O primeiro arquivo que precisamos editar é plausible-conf.env, um arquivo que possui algumas variáveis de configuração que precisamos definir.

Antes de abrir o arquivo para editá-lo, gere um novo hash aleatório:

  1. openssl rand 64 | base64 -w 0 ; echo

Isso usa o comando openssl para gerar 64 caracteres aleatórios, e o comando base64 para codificá-los em base64. Copie a saída para a área de transferência e depois abra o arquivo de configuração:

  1. sudo nano plausible-conf.env

O arquivo contém cinco variáveis que você precisará preencher:

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

Preencha o email, nome de usuário, senha e URL base e cole os caracteres aleatórios que você gerou com openssl.

Nota: A senha que você especificar aqui deve ter pelo menos seis caracteres de comprimento. Se estiver usando um endereço IP nu e não um nome de domínio, certifique-se de precedê-lo com http://.

Salve o arquivo (CTRL+O e depois ENTER no nano) e feche o seu editor (CTRL+X).

Há mais opções de configuração que você pode adicionar a este arquivo, mas este conjunto mínimo o ajudará a começar. Mais informações sobre a configuração do Plausible através de plausible-conf.env podem ser encontradas na documentação oficial de auto-hospedagem do Plausible Analytics.

Agora você precisa atualizar o arquivo docker-compose.yml. Este arquivo é o que o comando docker-compose usa para configurar e lançar vários containers do Docker. Precisamos mudar uma opção neste arquivo: o IP ao qual o Plausible se vincula.

  1. sudo nano docker-compose.yml

Encontre a seção que define o container Plausible. Ela começará com plausible:. Nessa seção, encontre a definição ports: e atualize-a para o seguinte:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

Isso garante que o Plausible esteja ouvindo apenas na interface localhost, e não está publicamente disponível. Mesmo que você tenha configurado um firewall UFW, devido a algumas peculiaridades na forma como a rede do Docker funciona, se você não seguir este passo, seu contêiner Plausible estaria acessível ao público na porta 8000, e queremos que ele seja acessível apenas através do proxy Nginx que você configurará no próximo passo.

Salve e feche o arquivo docker-compose.yml, e então use o docker-compose para baixar, configurar e iniciar os contêineres:

  1. sudo docker compose up --detach

A flag --detach indica ao docker-compose para criar os contêineres em segundo plano, desanexados da nossa sessão do terminal:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

O contêiner do aplicativo e todos os seus contêineres de suporte de e-mail e banco de dados devem estar agora em execução. Você pode verificar isso usando o comando curl para buscar a página inicial do seu novo contêiner Plausible em execução em localhost:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

Se algum HTML for exibido em seu terminal, você saberá que o servidor está ativo e em execução.

Em seguida, vamos configurar o Nginx para servir de proxy reverso para o Plausible de localhost:8000 para o público.

Passo 2 — Instalando e Configurando o Nginx

Colocar um servidor web como o Nginx na frente do seu servidor Elixir pode melhorar o desempenho ao descarregar o armazenamento em cache, compressão e servir arquivos estáticos para um processo mais eficiente. Vamos instalar o Nginx e configurá-lo para encaminhar solicitações para o Plausible, o que significa que ele cuidará de lidar com as solicitações dos seus usuários para o Plausible e de volta novamente.

Primeiro, atualize sua lista de pacotes e, em seguida, instale o Nginx usando apt:

  1. sudo apt update
  2. sudo apt install nginx

Permita o tráfego público nas portas 80 e 443 (HTTP e HTTPS) usando o perfil de aplicativo “Nginx Full” no UFW:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

Em seguida, abra um novo arquivo de configuração do Nginx no diretório /etc/nginx/sites-available. Vamos chamá-lo de plausible.conf, mas você pode usar um nome diferente:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

Cole o seguinte no novo arquivo de configuração, garantindo substituir seu_domínio_aqui pelo domínio que você configurou para apontar para o seu servidor Plausible. Deveria ser algo como plausible.exemplo.com, por exemplo:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Essa configuração é apenas HTTP por enquanto, pois deixaremos o Certbot cuidar da configuração do SSL no próximo passo. O restante da configuração define os locais de registro e depois encaminha todo o tráfego para http://localhost:8000, a instância Plausible que iniciamos no passo anterior.

Salve e feche o arquivo, em seguida, habilite a configuração vinculando-a em /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

Use nginx -t para verificar se a sintaxe do arquivo de configuração está correta:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

E finalmente, recarregue o serviço nginx para pegar a nova configuração:

  1. sudo systemctl reload nginx

O seu site Plausible deve agora estar disponível em HTTP simples. Carregue http://seu_domínio_aqui e irá parecer assim:

Agora que o seu site está em funcionamento através de HTTP, é hora de garantir a ligação com certificados Certbot e Let’s Encrypt.

Passo 3 — Instalando o Certbot e Configurando os Certificados SSL

Obrigado ao Certbot e à autoridade de certificação gratuita Let’s Encrypt, adicionar encriptação SSL à nossa aplicação Plausible levará apenas dois comandos.

Primeiro, instale o Certbot e o seu plugin Nginx:

  1. sudo apt install certbot python3-certbot-nginx

Em seguida, execute o certbot em modo --nginx e especifique o mesmo domínio que você usou na configuração do Nginx server_name:

  1. sudo certbot --nginx -d your_domain_here

Você será solicitado a concordar com os termos de serviço da Let’s Encrypt e a inserir um endereço de e-mail.

Depois, será perguntado se deseja redirecionar todo o tráfego HTTP para HTTPS. A decisão é sua, mas isso geralmente é recomendado e seguro de fazer.

Depois disso, a Let’s Encrypt confirmará o seu pedido e o Certbot irá baixar o seu certificado:

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

O Certbot recarregará automaticamente o Nginx para captar a nova configuração e os certificados. Recarregue o seu site e ele deverá mudar automaticamente para HTTPS se você escolheu a opção de redirecionamento.

Seu site está agora seguro e é seguro fazer login com os detalhes de usuário padrão que você configurou na Etapa 1. Em seguida, você será solicitado a verificar seu registro, e um código de verificação será enviado para o endereço que você configurou.

Por padrão, este e-mail é enviado diretamente do seu servidor, o que pode causar problemas devido a várias medidas de prevenção de spam. Se você não receber o e-mail, verifique sua pasta de spam. Se ele também não estiver lá, você pode precisar configurar detalhes SMTP mais adequados no arquivo plausible-conf.env. Consulte a documentação oficial de auto-hospedagem do Plausible para obter detalhes sobre a configuração de e-mail.

Ao fazer login com sucesso, você verá uma mensagem para configurar seu primeiro site com o Plausible:

Você instalou e protegeu com sucesso seu software de análise Plausible.

Conclusão

Neste tutorial, você iniciou o aplicativo Plausible Analytics e seus contêineres auxiliares associados usando o Docker Compose, em seguida, configurou um proxy reverso do Nginx e o protegeu usando certificados SSL Let’s Encrypt.

Agora você está pronto para configurar seu site e adicionar o script de rastreamento Plausible Analytics. Consulte a documentação oficial do Plausible Analytics para obter mais informações sobre o uso do software e a configuração do seu site.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04