Pesquisa de site

Como instalar análises de sites focadas na privacidade do Fathom no Debian 11


Nesta página

  1. Pré-requisitos
  2. Instalando o servidor PostgreSQL
  3. Configurando o banco de dados PostgreSQL e o usuário
  4. Baixando Fathom Binary
  5. Configurando o Fathom Web Analytics
  6. Criando usuário Fathom Admin
  7. Instalando e configurando o Nginx como um proxy reverso
  8. Protegendo o Fathom com Firewall
  9. Protegendo Fathom Web Analytics com SSL/TLS Letsencrypt
  10. Login no Fathom Website Analytics
  11. Conclusão

Fathom é uma análise da web com foco na privacidade que fornece dados limpos e concisos sobre seus sites. É um software simples de análise de sites que fornece relatórios e métricas perspicazes sobre seus sites. O Fathom foi criado como uma alternativa ao Google Analytics, mas não invade a privacidade do usuário e não compromete os dados do visitante. É compatível com GDPR, sem a necessidade de banners de cookies.

O Fathom está disponível em duas versões, a versão de código aberto que pode ser instalada em seu servidor e a versão pro que você pode adquirir no site oficial do Fathom. Usuários notáveis de análise de sites da Fathom são IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS e muitos outros.

Este tutorial mostra como instalar o Fathom Privacy-Focused Website Analytics em um servidor Debian 11. Você executará a instalação do Fathom com PostgreSQL como banco de dados, servidor da Web Nginx como proxy reverso e também protegerá o Fathom com certificados SSL/TLS via Certbot e Letsencrypt.

Ao longo do caminho, você também aprenderá como configurar a autenticação no PostgreSQL, criar um banco de dados e um usuário e adicionar serviços systemd a um sistema Linux.

Pré-requisitos

Para concluir este tutorial, você deve ter os seguintes requisitos:

  • Um servidor Debian 11 - Este exemplo usa um servidor Debian com o hostname fathome-server.
  • Um usuário não root com privilégios de administrador sudo/root.
  • Um nome de domínio apontado para um endereço IP do servidor - Este exemplo usa um subdomínio fathom.hwdomain.io.

É isso. Vamos iniciar a instalação do Fathom.

Instalando o servidor PostgreSQL

O Fathom é uma análise da web simples com foco na privacidade, criada com o Golang Preact. Em uma instalação padrão, Fathom usa SQLite como banco de dados, mas também é possível usar RDBMS como MySQL/MariaDB e PostgreSQL.

Para este exemplo, você executará o Fathom com PostgreSQL. Portanto, agora você instalará e configurará o PostgreSQL em seu servidor Debian.

Para começar, execute o comando apt abaixo para atualizar e atualizar seu índice de pacotes Debian.

sudo apt update

Agora instale os pacotes PostgreSQL através do comando apt abaixo. Isso instalará o pacote padrão do servidor PostgreSQL do repositório Debian 11, que é o PostgreSQL 13.

sudo apt install postgresql

Quando solicitado, insira y para confirmar e pressione ENTER para prosseguir.

Após a instalação do PostgreSQL, será necessário configurar a autenticação para o servidor. Para conseguir isso, você precisa modificar os arquivos de configuração do PostgreSQL que estão disponíveis no diretório /etc/postgresql/13/main/ (padrão PostgreSQL no Debian).

Abra o arquivo /etc/postgresql/13/main/postgresql.conf usando seu editor de texto/código preferido. Este exemplo usa o nano como o editor padrão.

sudo nano /etc/postgresql/13/main/postgresql.conf

Remova o comentário do parâmetro password_encryption e altere o valor padrão para scram-sha-256.

password_encryption = scram-sha-256

Salve e feche o arquivo /etc/postgresql/13/main/postgresql.conf quando terminar. Para usuários nano, pressione Ctrl+x, depois y e pressione ENTER.

Em seguida, abra o arquivo de configuração de autenticação PostgreSQL /etc/postgresql/13/main/pg_hba.conf usando o seguinte editor nao.

sudo nano /etc/postgresql/13/main/pg_hba.conf

Altere o método de autenticação padrão para o host 127.0.0.1/32 e ::1/128 para scram-sha-256. Isso especificará o método de autenticação usando scram-sha-256 para qualquer conexão de localhost para o servidor PostgreSQL.

Ao usar o parâmetro -h 127.0.0.1, você estará conectado ao PostgreSQL como host e usará a autenticação scram-sha-256. Ao usar apenas o comando psql sem especificar o host PostgreSQL, você estará conectado como a conexão local e usando o método de autenticação de mesmo nível.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Salve e feche o arquivo /etc/postgresql/13/main/pg_hba.conf quando terminar.

Em seguida, execute o utilitário de comando systemctl abaixo para reiniciar o servidor PostgreSQL e aplicar as alterações.

sudo systemctl restart postgresql

Em seguida, verifique o servidor PostgreSQL para garantir que esteja ativado e em execução.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Se o PostgreSQL estiver em execução e habilitado, você verá a saída em seu terminal.

Com o servidor PostgreSQL em execução e ativado, você começará a criar um novo banco de dados PostgreSQL e um usuário para análise da web do Fathom.

Configurando banco de dados PostgreSQL e usuário

Nesta etapa, você configurará a senha para o usuário PostgreSQL padrão postgres por meio do shell do PostgreSQL. Em seguida, você criará um novo banco de dados e usuário que serão usados para a instalação do Fathom web analytics.

Efetue login no shell do PostgreSQL por meio do comando abaixo. Com o comando sudo -u postgres psql, significa que você executará o comando psql como o usuário postgres.

cd /var/lib/postgresql
sudo -u postgres psql

Após o login, você deve estar conectado ao banco de dados postgres padrão e seu prompt do PostgreSQL deve se tornar postgres=#.

Agora execute a consulta abaixo para criar uma nova senha para o usuário PostgreSQL padrão postgres. Certifique-se de alterar a senha na consulta a seguir.

ALTER USER postgres WITH PASSWORD '';

Em seguida, execute as seguintes consultas PostgreSQL para criar um novo usuário e banco de dados PostgreSQL. Neste exemplo, você criará um novo usuário do PostgreSQL com o banco de dados fathomdb.

CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'p4ssw0rdFathom';
CREATE DATABASE fathomdb OWNER fathom;

Por fim, execute a consulta abaixo para verificar a lista de bancos de dados e usuários em seu servidor PostgreSQL.

\l
\du

Listando bancos de dados no servidor PostgreSQL via \l query -E você pode ver que o novo banco de dados fathomdb foi criado.

Listando usuários no PostgreSQL por meio da consulta \du - Você pode ver o novo tamanho de usuário do PostgreSQL adicionado ao PostgreSQL.

Neste ponto, você já instalou e configurou o servidor PostgreSQL. Na próxima etapa, você iniciará a instalação do Fathom.

Baixando Fathom Binary

Fathom é um aplicativo pequeno e simples escrito em Go e vem como um único arquivo binário que você pode executar a qualquer momento em seu sistema Linux.

Agora você fará o download do Fathom para o seu servidor Debian.

Visite a página de lançamento do Fathom no GitHub e selecione a versão preferida para sua instalação. Este exemplo usará a versão mais recente do Fathom v1.3.0, que é a versão mais recente durante a redação deste artigo.

Baixe o arquivo binário Fathom usando o comando wget abaixo.

wget https://github.com/usefathom/fathom/releases/download/v1.3.0-rc.1/fathom_1.3.0-rc.1_linux_amd64.tar.gz

Após o download, execute o comando tar abaixo para extrair o Fathom para o diretório /usr/local/bin. Em seguida, torne o arquivo binário fathom executável por meio do comando chmod.

tar -C /usr/local/bin -xzf fathom_1.3.0-rc.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom

Por fim, o comando abaixo para garantir que você possa executar o arquivo binário braçal. Em seguida, verifique a versão do braçadeira.

which fathom
fathom --version

Quando o comando for bem-sucedido, você deverá ver o caminho completo do arquivo binário do fathom /usr/local/bin/fathom. Além disso, você verá a versão do Fathom em seu terminal.

Com o Fathom baixado, você configurará a instalação do Fathom web analytics.

Configurando o Fathom Web Analytics

Nesta etapa, você configurará a instalação do Fathom web analytics. Você configurará o diretório de dados, configurará o banco de dados PostgreSQL com o Fathom e, por último, executará o Fathom como um serviço systemd.

Ao executar o Fathom como um serviço systemd, você pode gerenciar facilmente o Fathom por meio do utilitário de comando systemctl. Você pode iniciar, habilitar e verificar o status do Fathom via systemctl.

Primeiro, execute o comando abaixo para criar um novo usuário em seu sistema Debian. Além disso, certifique-se de configurar a senha para seu novo usuário.

sudo useradd -m -s /bin/bash fathom
sudo passwd fathom

Agora execute o comando abaixo para fazer login no novo usuário fathom e comece a configurar a instalação do Fathom.

su - fathom

Primeiro, execute o comando abaixo para gerar uma string aleatória que será usada como FATHOM_SECRET. Certifique-se de copiar a saída gerada.

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

Agora crie um novo diretório ~/data e mova o diretório de trabalho para ele. Em seguida, crie um novo arquivo .env por meio do comando do editor nano abaixo.

mkdir -p ~/data; cd ~/data
nano .env

Adicione as seguintes linhas ao arquivo. Certifique-se de alterar os detalhes do banco de dados PostgreSQL e do usuário e também substitua o FATHOM_SECRET\ pela string gerada no topo.

Além disso, se você estiver executando o Fathomn em produção, certifique-se de alterar o FATHOM_DEBUG para falso. Você também pode definir FATHOM_DATABASE_SSLMODE se estiver usando bancos de dados com conexões SSL/TLS seguras. Este exemplo está usando o mesmo servidor que o Fathom, portanto, o FATHOM_DATABASE_SSLMODE está definido como desativado.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="p4ssw0rdFathom"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="13tUIGpjCY9miJcSWW6S"

Salve e feche o arquivo .env quando terminar.

Agora digite exit para sair do usuário braçal e voltar para a sessão root.

Em seguida, crie um novo arquivo de serviço systemd /etc/systemd/system/fathom.service usando o comando do editor nano abaixo.

sudo nano /etc/systemd/system/fathom.service

Adicione as seguintes linhas ao arquivo. Com isso, você executará o Fathom web analytics em localhost com a porta padrão 8080 e o diretório de dados do Fathom será configurado como /home/fathom/data.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/home/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Salve e saia do arquivo quando terminar.

Agora execute o comando abaixo para recarregar o gerenciador systemd e aplicar o novo arquivo de serviço fathom.service.

sudo systemctl daemon-reload

Depois disso, inicie e habilite o serviço fathom usando o seguinte comando systemctl.

sudo systemctl start fathom
sudo systemctl enable fathom

Verifique o serviço fathom para garantir que o serviço esteja em execução.

sudo systemctl status fathom

Você deve receber uma saída como esta - O status do serviço braçadeira está em execução e agora está ativado, o que significa que o serviço será executado automaticamente na inicialização.

Criando usuário Fathom Admin

Com o Fathom sendo executado como um serviço systemd, agora você estará pronto para criar um novo usuário administrador para sua instalação do Fathom.

Para criar um usuário administrador do Fathom, você deve estar no diretório de dados do Fathom. Portanto, execute o comando abaixo para fazer login como um usuário braça. Em seguida, mova o diretório de trabalho para ~/data.

su - fathom
cd ~/data

Execute o comando abaixo do fathom para adicionar um novo usuário administrador para análise da web do Fathom. Certifique-se de alterar o endereço de e-mail e a senha na seguinte linha de comando.

fathom user add --email="" --password="AliceFathomP4ssw0rd"

Se for bem-sucedido, você receberá uma saída semelhante a esta. Você pode ver a mensagem que mostra o status da conexão com o banco de dados PostgreSQL fathomdb e o novo usuário administrador [protegido por e-mail] foi criado.

Neste ponto, você concluiu a instalação do Fathom com o servidor de banco de dados PostgreSQL. Você também criou um usuário administrador para o Fathom.

Na próxima etapa, você instalará e configurará o Nginx como um proxy reverso para análises da Web Fathom que são executadas no host local com a porta padrão 8080.

Instalando e configurando o Nginx como um proxy reverso

Nesta etapa, você instalará o servidor da Web Nginx e configurará o bloco do servidor Nginx que será usado como um proxy reverso para análise da Web do Fathom.

Execute o comando apt abaixo para instalar o pacote Nginx em seu servidor Debian. Quando solicitado, insira y para confirmar e pressione ENTER para continuar.

sudo apt install nginx

Após a instalação do Nginx, crie um novo arquivo de configuração de bloco de servidor /etc/nginx/sites-available/fathom usando o comando do editor nano abaixo.

sudo nano /etc/nginx/sites-available/fathom

Adicione as seguintes linhas ao e certifique-se de alterar o nome de domínio com seu domínio.

server {
    listen 80;
    server_name fathom.hwdomain.io;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}

Salve o arquivo e saia do editor quando terminar.

Em seguida, execute o comando abaixo para ativar o bloco do servidor Nginx /etc/nginx/sites-available/fathom. Em seguida, verifique a configuração do Nginx para garantir que você tenha as configurações adequadas do Nginx.

sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t

Se for bem-sucedido, você verá uma saída como teste bem-sucedido - sintaxe ok em seu terminal.

Agora execute o utilitário de comando systemctl abaixo para reiniciar o serviço Nginx e aplicar as alterações.

sudo systemctl restart nginx

Depois disso, verifique o serviço Nginx para garantir que o serviço esteja sendo executado por meio do utilitário de comando systemctl abaixo.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Você deve receber uma saída como o serviço Nginx está em execução e está ativado, o que significa que o serviço será iniciado automaticamente na inicialização.

Agora que o servidor da Web Nginx está sendo executado como um proxy reverso para análises da Web do Fathom, você configurará o firewall UFW e abrirá as portas HTTP e HTTPS.

Protegendo o Fathom com Firewall

Nesta etapa, você instalará o UFW em seu servidor Debian. Em seguida, abra os serviços SSH, HTTP e HTTPS para permitir o acesso ao servidor.

Instale o pacote ufw através do comando apt abaixo. Digite y quando solicitado e pressione ENTER para continuar.

sudo apt install ufw

Uma vez instalado o UFW, execute o comando abaixo para adicionar aplicativos OpenSSH e WWW Full. O aplicativo OpenSSH abrirá a porta SSH padrão 22 e o aplicativo WWW Full abrirá os serviços HTTP e HTTPS.

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

Quando adicionado, você deve obter uma saída como Regras atualizadas.

Agora execute o comando ufw abaixo para iniciar e habilitar o firewall UFW. Quando solicitado, insira y para confirmar e pressione ENTER para continuar.

sudo ufw enable

Você deve receber uma saída como Firewall está ativo e ativado na inicialização do sistema, o que significa que o firewall UFW foi iniciado e ativado. Isso também permite que o UFW seja executado automaticamente na inicialização.

Por fim, execute o comando ufw abaixo para verificar a lista de portas e serviços abertos no UFW.

sudo ufw status

Você receberá os aplicativos OpenSSH e WWW Full adicionados ao firewall UFW.

Protegendo Fathom Web Analytics com SSL/TLS Letsencrypt

Nesta etapa, você protegerá a análise da web Fathom com certificados SSL/TLS da Letsencrypt. Você deve instalar o Certbot e um plug-in Certbot Nginx adicional em seu servidor Debian para conseguir isso.

Antes de gerar certificados SSL/TLS, certifique-se de que seu domínio esteja apontado para o endereço IP do servidor. Além disso, certifique-se de ter um endereço de e-mail que será usado para se registrar no Letsencrypt.

Agora execute o comando apt abaixo para instalar o Certbot e o plug-in Certbot Nginx. Digite y quando solicitado e pressione ENTER para continuar.

sudo apt install certbot python3-certbot-nginx

Após a instalação do Certbot, execute o comando abaixo para gerar certificados SSL/TLS para seu nome de domínio. Além disso, certifique-se de alterar o nome de domínio e o endereço de e-mail no seguinte comando.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email  -d fathom.hwdomain.io

Com este comando, os novos certificados SSL/TLS serão gerados para o seu nome de domínio. Além disso, isso configurará automaticamente HTTPS em seu bloco de servidor Nginx e configurará o redirecionamento automático de HTTP para HTTPS para seu bloco de servidor Fathom. Os certificados Certbot SSL/TLS são gerados no diretório /etc/elstencrypt/live/fathom.hwdomain.io/.

Fazendo login no Fathom Website Analytics

Abra seu navegador da Web e visite o nome de domínio de sua instalação de análise da Web do Fathom (ou seja: https://fathom.hwdomain.io). Você deve ser solicitado com a página de login do Fathom.

Insira seu endereço de e-mail e senha e clique em Entrar.

Quando o endereço de e-mail e a senha estiverem corretos, você deverá obter o painel de administração do Fathom.

Com isso, você instalou com sucesso o Fathom web analytics com PostgreSQL e Nginx.

Conclusão

Neste tutorial, você instalou um Fathom de análise da web de código aberto e focado em privacidade em um servidor Debian 11. Você também instalou e configurou o PostgreSQL como o servidor de banco de dados de back-end para análise da web Fathom. E no front-end para acesso do cliente, você configurou o Nginx como um proxy reverso. Você também garantiu a análise do site Fathom com certificados SSL/TLS via Certbot e Letsencrypt.

Com isso em mente, agora você pode adicionar novas faixas e monitorar seu site e visitantes. Você também pode integrar o Fathom com vários CMS (sistemas de gerenciamento de conteúdo), como WordPress e Drupal. Além disso, você pode integrar com fóruns como o Discourse.