Como Instalar a Análise Plausível no Ubuntu 22.04

Introdução

Plausible Analytics é uma aplicação de análise da web de código aberto e auto-hospedada escrita em Elixir que foca 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 agir como um proxy reverso para o aplicativo Plausible. Por fim, você irá habilitar conexões seguras HTTPS 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:

Nota: Essas etapas prévias podem ser ignoradas se estiver utilizando a Imagem Docker de Um Clique da DigitalOcean. Esta imagem terá o Docker, Docker Compose e UFW já instalados e configurados.

Inicie uma nova imagem Docker na região de sua escolha, em seguida, 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 o 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 estiver usando a DigitalOcean, consulte nosso Início Rápido de DNS para obter informações sobre como criar recursos de domínio em nosso painel de controle.

Quando você tiver atendido todos os pré-requisitos, prossiga 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 por conta própria. Seu primeiro passo será clonar este repositório em seu servidor, atualizar dois arquivos de configuração e, em seguida, iniciar os contêineres do aplicativo e do banco de dados do Plausible.

Faça login em seu servidor agora.

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

  1. cd /opt

Em seguida, 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 contém 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 utiliza 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, em seguida, 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 e-mail, nome de usuário, senha e URL base, e então 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 então ENTER no nano) e saia do seu editor (CTRL+X).

Há mais opções de configuração que você pode adicionar a este arquivo, mas este conjunto mínimo o fará funcionar. 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 iniciar 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:. Naquela seção, encontre a definição ports: e atualize 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 esteja 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 estará acessível ao público na porta 8000, e nós apenas queremos que ele seja acessível através do proxy Nginx que você irá configurar no próximo passo.

Salve e feche o arquivo docker-compose.yml, em seguida, 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, desvinculados 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 em execução agora. 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 no seu terminal, você saberá que o servidor está em funcionamento.

Em seguida, vamos configurar o Nginx para proxy reverso do 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 cacheamento, 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 vice-versa.

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

  1. sudo apt update
  2. sudo apt install nginx

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

  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, certificando-se de substituir seu_domínio_aqui pelo domínio que você configurou para apontar para o seu servidor Plausible. Isso deve 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;
  }
}

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

Salve e feche o arquivo e, 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

Seu site Plausible agora deve estar disponível em HTTP simples. Carregue http://seu_domínio_aqui e ficará assim:

Agora que você tem seu site funcionando em HTTP, é hora de garantir a conexão com Certbot e certificados Let’s Encrypt.

Passo 3 — Instalando o Certbot e Configurando Certificados SSL

Graças ao Certbot e à autoridade de certificação gratuita Let’s Encrypt, adicionar criptografia SSL ao nosso aplicativo Plausible levará apenas dois comandos.

Primeiro, instale o Certbot e seu plugin Nginx:

  1. sudo apt install certbot python3-certbot-nginx

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

  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 disso, você será perguntado se deseja redirecionar todo o tráfego HTTP para HTTPS. Depende de você, mas geralmente isso é recomendado e seguro de fazer.

Depois disso, o Let’s Encrypt confirmará sua solicitação e o Certbot fará o download do 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 pegar a nova configuração e os certificados. Recarregue seu site e ele deverá mudar automaticamente para HTTPS se você escolheu a opção de redirecionamento.

Seu site agora está seguro e é seguro fazer login com os detalhes do usuário padrão que você configurou no Passo 1. 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 criar 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 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 solicitação para configurar seu primeiro site com Plausible:

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

Conclusão

Neste tutorial, você lançou o aplicativo Plausible Analytics e seus contêineres auxiliares associados usando o Docker Compose, em seguida, configurou um proxy reverso 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