Como instalar o Fathom Privacy Focused Web Analytics no Debian 12
Fathom é uma análise da web com foco na privacidade que fornece dados limpos e concisos sobre seus sites. É um programa simples de análise de sites que fornece relatórios e métricas criteriosas sobre seus sites. O Fathom foi criado como uma alternativa ao Google Analytics, mas não invade a privacidade dos usuários e não compromete os dados dos visitantes. É compatível com GDPR, sem 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 mais.
Neste guia, examinaremos passo a passo a instalação do Fathom Privacy Focused Web Analytics no servidor Debian 12. Veremos a instalação do Fathom com PostgreSQL como banco de dados e Nginx como proxy reverso. Além disso, também protegeremos o Fathom com certificados SSL/TLS da Letsencrypt.
Pré-requisitos
Antes de prosseguir, certifique-se de ter o seguinte:
- Um servidor Debian 12.
- Um usuário não root com privilégios de administrador.
- Um nome de domínio apontado para um endereço IP de servidor.
Instalando Dependências
Fathom é uma análise da web com foco na privacidade, construída sobre Golang e Preact. Ele oferece suporte a bancos de dados como PostgreSQL, MySQL e SQLite e pode ser executado com proxy reverso Nginx. Agora você instalará dependências de pacotes para Fathom, como PostgreSQL, Nginx, Certbot e UFW (Uncomplicated Firewall).
Primeiro, execute o comando apt abaixo para atualizar seu repositório Debian.
sudo apt update
Agora instale as dependências executando o seguinte comando. Com isso, você instalará o servidor PostgreSQL, servidor web Nginx, Certbot, plugin Nginx Certbot e UFW (Firewall Descomplicado).
sudo apt install postgresql nginx certbot python3-certbot-nginx ufw
Digite y para prosseguir com a instalação.
Após a instalação das dependências, você garantirá que todas as dependências estejam disponíveis em seu sistema.
Verifique o serviço postgresql usando o comando abaixo para garantir que o serviço esteja em execução e habilitado.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
O seguinte resultado será mostrado em seu terminal, o que indica que o postgresql está rodando e habilitado.
Em seguida, verifique o serviço nginx executando o seguinte comando.
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Uma saída semelhante será impressa em seu terminal, indicando que o serviço nginx está em execução e habilitado.
Por último, verifique o certbot executando o seguinte comando. Isso localizará o arquivo binário executável do certbot e verificará a versão atual do certbot instalada em seu sistema.
which certbot
certbot --version
A saída exibida mostrará que o Certbot 2.1 está instalado em /usr/bin/certbot.
Configurando Firewall
Depois de instalar as dependências, você configurará o UFW para proteger sua máquina Debian. Você abrirá portas para SSH, HTTP e HTTPS em seu sistema.
Execute o seguinte comando para abrir portas para protocolos SSH, HTTP e HTTPS. O perfil OpenSSH abrirá a porta 22/tcp, e o perfil WWW Full abrirá HTTP e HTTPS - portas 80 e 443.
sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"
Agora execute o comando abaixo para iniciar e habilitar o UFW em seu sistema Debian.
sudo ufw enable
Digite y para prosseguir com as confirmações. Quando for bem-sucedido, você deverá receber a mensagem "Firewall está ativo e ativado na inicialização do sistema".
Por último, verifique o status do UFW usando o comando abaixo.
sudo ufw status
A saída ativa indica que o UFW está em execução e ativado. Você também deverá ver os perfis OpenSSH e WWW Full adicionados ao UFW.
Criando banco de dados e usuário PostgreSQL
Na etapa seguinte, você criará um novo banco de dados PostgreSQL e um usuário que o Fathom usará. Para fazer isso, você deve fazer login no servidor PostgreSQL através da linha de comando psql.
Execute o seguinte comando para fazer login no servidor PostgreSQL.
sudo -u postgres psql
Crie um novo banco de dados fathomdb e um usuário fathom usando as seguintes consultas PostgreSQL. certifique-se de alterar a senha na consulta a seguir.
CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;
Agora execute as seguintes consultas para verificar a lista de bancos de dados e usuários disponíveis no servidor PostgreSQL.
\du
\l
Se o banco de dados e o usuário forem criados, a seguinte saída será apresentada:
Digite quit para sair do servidor PostgreSQL.
Após criar o banco de dados e o usuário, execute o seguinte comando para efetuar login no PostgreSQL com o usuário Fathom e o banco de dados FathomDB. Insira a senha do usuário do seu banco de dados quando solicitado.
sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb
Uma vez conectado ao servidor PostgreSQL, execute a seguinte consulta para verificar sua conexão.
\conninfo
Após executar o comando, a seguinte saída será mostrada, indicando que você está conectado ao banco de dados fathomdb com o usuário fathom.
Digite quit novamente para sair do servidor PostgreSQL.
Baixando arquivo binário Fathom
Fathom é escrito em Golang e Preact e está disponível como um único arquivo binário que você pode baixar e instalar facilmente em seu sistema.
Visite a página do Fathom GitHub e obtenha o URL de download do pacote binário do Fathom. Em seguida, baixe-o através do comando wget abaixo. Neste exemplo, você baixará o Fathom 1.3.1.
wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz
Depois de baixado, extraia o pacote binário Fathom para /usr/local/bin/fathom e torne-o executável por meio do seguinte comando.
tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom
Por último, execute o seguinte comando para verificar a localização do arquivo binário e a versão atual que você baixou.
which fathom
fathom --version
A saída a seguir mostra que o Fathom 1.3.1 está instalado em /usr/local/bin/fathom.
Configurando o Fathom
Na etapa a seguir, você configurará o Fathom:
- Integrando o Fathom com o banco de dados PostgreSQL.
- Executando o Fathom em segundo plano como um serviço systemd.
- Adicionando usuário administrador para sua instalação do Fathom.
Integração com PostgreSQL como banco de dados
Fathom oferece suporte a vários bancos de dados, como SQLite (padrão), MySQL e MariaDB. Nesta seção, você configurará o diretório de instalação do Fathom e integrará o Fathom ao servidor de banco de dados PostgreSQL.
Execute o seguinte comando para criar um novo usuário do sistema Fathom que será usado para executar a instalação do Fathom.
sudo useradd -r -d /opt/fathom fathom
Agora crie um novo diretório inicial /opt/fathom e altere a propriedade para o usuário fathom. O diretório /opt/fathom será usado para armazenar os dados de instalação do Fathom.
sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom
Depois disso, execute o comando abaixo para gerar um segredo aleatório para o Fathom. Certifique-se de copiar a saída porque você precisará dela para garantir a compreensão.
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''
Em seguida, vá para o diretório /opt/fathom.
cd /opt/fathom
Em seguida, crie um novo diretório /opt/fathom/data e um novo arquivo /opt/fathom/data/.env usando o seguinte comando.
sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env
Insira a seguinte configuração e certifique-se de alterar os detalhes do nome, usuário e senha do banco de dados PostgreSQL.
FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="BWTtur9A1qWtXG6656q4"
Salve e saia do arquivo quando terminar.
Por último, execute o seguinte comando para garantir que a configuração do Fathom foi bem-sucedida.
cd /opt/fathom/data
sudo -u fathom fathom server
Após executar o comando, o Fathom deverá estar rodando em localhost com porta padrão 8080, e a seguinte saída será impressa em seu terminal:
Pressione Ctrl+c para encerrar o processo.
Executando o Fathom em segundo plano como serviço Systemd
Na seção a seguir, você criará um novo arquivo de serviço systemd que será usado para executar o Fathom em segundo plano. Com isso, você pode gerenciar facilmente o Fathom por meio do utilitário systemctl.
Crie um novo arquivo de serviço systemd /etc/systemd/system/fathom.service usando o seguinte comando do editor nano.
sudo nano /etc/systemd/system/fathom.service
Insira a seguinte configuração no arquivo.
[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target
[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom/data
ExecStart=/usr/local/bin/fathom server
[Install]
WantedBy=multi-user.target
Salve e feche o arquivo quando terminar.
Em seguida, execute o seguinte comando systemctl para recarregar o gerenciador systemd e aplicar as alterações feitas.
sudo systemctl daemon-reload
Assim que o systemd manager for recarregado, execute o comando systemctl abaixo para iniciar e ativar o serviço fathom. Isso executará o Fathom em segundo plano no host local com a porta padrão 8080.
sudo systemctl start fathom
sudo systemctl enable fathom
Verifique o serviço fathom usando o comando abaixo para garantir que o serviço esteja em execução e ativado.
sudo systemctl is-enabled fathom
sudo systemctl status fathom
A seguinte saída será apresentada se o Fathom estiver em execução e ativado.
Adicionando usuário administrador Fathom
Agora que o Fathom está sendo executado em segundo plano como um serviço, a próxima seção é criar um usuário administrador para a instalação do Fathom. Isso pode ser feito através da linha de comando do Fathom.
Para criar um usuário Fathom, você pode executar a linha de comando Fathom no diretório de dados Fathom.
Mova seu diretório de trabalho atual para /opt/fathom/data.
cd /opt/fathom/data
Execute o seguinte comando para criar um usuário administrador para sua instalação do Fathom. Certifique-se de alterar o endereço de e-mail e a senha com o seguinte comando.
sudo -u fathom fathom user add --email="[email " --password="password"
O comando usará o arquivo .env para conectar-se ao servidor PostgreSQL. Depois que o usuário for criado, você deverá obter a confirmação como a seguinte:
Configurando o Nginx como proxy reverso
Neste ponto, você concluiu a configuração do Fathom. Você configurará o Nginx como um proxy reverso para a instalação do Fathom na etapa seguinte. Antes de prosseguir, certifique-se de ter um nome de domínio apontado para o endereço IP do servidor.
Crie uma nova configuração de bloco do servidor Nginx /etc/nginx/sites-available/fathom usando o comando do editor nan abaixo.
sudo nano /etc/nginx/sites-available/fathom
Insira a seguinte configuração e certifique-se de alterar o nome de domínio dentro da opção server_name.
server {
listen 80;
server_name analytics.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;
}
}
Quando terminar, salve e saia do arquivo.
Agora execute o seguinte comando para ativar o arquivo de bloco do servidor /etc/nginx/sites-available/fathom e verifique a sintaxe do Nginx.
sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t
Se você tiver a sintaxe correta, a saída "sintaxe está ok - teste bem-sucedido" deverá ser impressa em seu terminal.
Em seguida, execute o seguinte comando para reiniciar o serviço Nginx e aplicar as alterações feitas. Depois de executar o comando, sua instalação do Fathom deverá estar acessível a partir do seu nome de domínio.
sudo systemctl restart nginx
Por último, execute o seguinte comando certbot para proteger a instalação do Fathom com certificados SSL/TLS do Letsencrypt. Certifique-se de alterar o nome de domínio e os detalhes do endereço de e-mail com suas informações.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d analytics.hwdomain.io
Assim que o processo for concluído, seus certificados SSL/TLS estarão disponíveis no diretório /etc/letsencrypt/live/domain.com. Além disso, o arquivo de bloco do servidor Nginx /etc/nginx/sites-available/fathom é configurado com HTTPS automaticamente por meio do plugin Certbot Nginx.
Acessando Fathom
Inicie seu navegador preferido e visite o nome de domínio de sua instalação do Fathom, como http://analytics.hwdomain.io/. Você deverá ser redirecionado automaticamente para uma conexão HTTPS e deverá obter a página de login do Fathom.
Insira seu endereço de e-mail de administrador e senha e clique em Entrar.
Clique em Criar site para criar o primeiro rastreador.
Você deverá ver o código do rastreador gerado pelo Fathom.
Abaixo detalha a análise do site Fathom.
A partir daqui, você pode adicionar e definir novos rastreadores para seus sites.
Conclusão
Para concluir, você concluiu a instalação do Fathom Web Analytics com foco na privacidade no servidor Debian 12 com servidor de banco de dados PostgreSQL e Nginx como proxy reverso. Você também protegeu sua instalação com certificados SSL/TLS da Letsencrypt e configurou UFW (Uncomplicated Firewalld em seu servidor Debian. Você pode adicionar um novo rastreador e implementá-lo em seus sites.