Как установить Fathom Privacy Focused Web Analytics на Debian 12

Fathom — это веб-аналитика, ориентированная на конфиденциальность, которая предоставляет чистые и лаконичные данные о ваших веб-сайтах. Это простая программа для анализа веб-сайтов, которая предоставляет подробные отчеты и метрики о ваших сайтах. Fathom создан как альтернатива Google Analytics, но он не нарушает конфиденциальность пользователей и не ставит под угрозу данные посетителей. Она соответствует требованиям GDPR и не требует использования баннеров с уведомлениями о файлах cookie.

Fathom доступна в двух версиях: версия с открытым исходным кодом, которую можно установить на свой сервер, и профессиональная версия, которую можно приобрести на официальном сайте Fathom. Среди известных пользователей веб-аналитики Fathom — IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS и многие другие.

В этом руководстве мы пошагово рассмотрим установку Fathom Privacy Focused Web Analytics на сервере Debian 12. Мы рассмотрим установку Fathom с PostgreSQL в качестве базы данных и Nginx в качестве обратного прокси. Кроме того, мы также обеспечим безопасность Fathom с помощью SSL/TLS-сертификатов от Letsencrypt.

Необходимые условия

Перед тем как приступить к работе, убедитесь, что у вас есть следующее:

  • Сервер Debian 12.
  • Пользователь без прав root с правами администратора.
  • Доменное имя, указывающее на IP-адрес сервера.

Установка зависимостей

Fathom — это веб-аналитика, ориентированная на конфиденциальность, построенная на Golang и Preact. Она поддерживает такие базы данных, как PostgreSQL, MySQL и SQLite, и может работать с обратным прокси Nginx. Теперь вы установите зависимости пакетов для Fathom, такие как PostgreSQL, Nginx, Certbot и UFW (Uncomplicated Firewall).

Сначала выполните приведенную ниже команду apt, чтобы обновить репозиторий Debian.

sudo apt update

Теперь установите зависимости, выполнив следующую команду. Таким образом, вы установите сервер PostgreSQL, веб-сервер Nginx, Certbot, плагин Nginx Certbot и UFW (Uncomplicated Firewall).

sudo apt install postgresql nginx certbot python3-certbot-nginx ufw

Введите y, чтобы продолжить установку.

Установите зависимости

После установки зависимостей убедитесь, что все зависимости доступны в вашей системе.

Проверьте службу postgresql с помощью приведенной ниже команды, чтобы убедиться, что служба запущена и включена.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

На вашем терминале будет отображен следующий результат, который указывает, что postgresql запущен и включен.

check postgresql

Затем проверьте службу nginx, выполнив следующую команду.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

На вашем терминале будет отображен аналогичный результат, указывающий, что служба nginx запущена и включена.

check nginx

Наконец, проверьте certbot, выполнив следующую команду. Это позволит найти двоичный исполняемый файл certbot и проверить текущую версию certbot, установленную в вашей системе.

which certbot
certbot --version

Отображенный вывод покажет вам, что Certbot 2.1 установлен в /usr/bin/certbot.

check certbot

Настройка брандмауэра

После установки зависимостей вы настроите UFW для защиты вашей машины Debian. Вы откроете порты для SSH, HTTP и HTTPS в вашей системе.

Выполните следующую команду, чтобы открыть порты для протоколов SSH, HTTP и HTTPS. Профиль OpenSSH откроет порт 22/tcp, а профиль WWW Full откроет порты HTTP и HTTPS — 80 и 443.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Теперь выполните приведенную ниже команду, чтобы запустить и включить UFW в вашей системе Debian.

sudo ufw enable

Введите y, чтобы продолжить подтверждение. В случае успеха вы должны увидеть сообщение «Брандмауэр активен и включен при запуске системы».

start enable ufw

Наконец, проверьте статус UFW с помощью приведенной ниже команды.

sudo ufw status

Вывод active указывает, что UFW запущен и включен, вы также должны увидеть OpenSSH и WWW Full добавлены в UFW.

проверьте ufw

Создание базы данных PostgreSQL и пользователя

На следующем шаге вы создадите новую базу данных PostgreSQL и пользователя, которые будет использовать Fathom. Для этого необходимо войти на сервер PostgreSQL через командную строку psql .

Выполните следующую команду, чтобы войти на сервер PostgreSQL.

sudo -u postgres psql

Создайте новую базу данных fathomdb и пользователя fathom с помощью следующих запросов PostgreSQL. Обязательно измените пароль в следующем запросе.

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

создать пользователя и базу данных

Теперь выполните следующие запросы, чтобы проверить список доступных баз данных и пользователей на сервере PostgreSQL.

\du
\l

Если база данных и пользователь созданы, будет отображен следующий вывод:

проверка пользователя и базы данных

Введите quit, чтобы выйти из сервера PostgreSQL.

После создания базы данных и пользователя выполните следующую команду, чтобы войти в PostgreSQL с пользователем fathom и базой данных fathomdb. Введите пароль для пользователя базы данных, когда будет предложено.

sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb

После подключения к серверу PostgreSQL выполните следующий запрос, чтобы проверить подключение.

\conninfo

После выполнения команды будет отображен следующий результат, который указывает, что вы подключены к базе данных fathomdb с пользователем fathom.

Проверка подключения пользователя

Введите quit еще раз, чтобы выйти из сервера PostgreSQL.

Загрузка бинарного файла Fathom

Fathom написан на Golang и Preact и доступен в виде одного двоичного файла, который можно легко загрузить и установить в вашей системе.

Посетите страницу Fathom GitHub и скопируйте URL-адрес для загрузки двоичного пакета Fathom. Затем загрузите его с помощью команды wget, приведенной ниже. В этом примере вы загрузите Fathom 1.3.1.

wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

После загрузки извлеките бинарный пакет Fathom в /usr/local/bin/fathom и сделайте его исполняемым с помощью следующей команды.

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

Наконец, выполните следующую команду, чтобы проверить расположение бинарного файла fathom и текущую версию fathom, которую вы загрузили.

which fathom
fathom --version

Следующий вывод показывает, что Fathom 1.3.1 установлен в /usr/local/bin/fathom.

загрузить fathom

Настройка Fathom

На следующем шаге вы настроите Fathom следующим образом:

  • Интеграция Fathom с базой данных PostgreSQL.
  • Запуск Fathom в фоновом режиме как службы systemd.
  • Добавление пользователя-администратора для вашей установки Fathom.

Интеграция с PostgreSQL в качестве базы данных

Fathom поддерживает несколько баз данных, таких как SQLite (по умолчанию), MySQL и MariaDB. В этом разделе вы настроите каталог установки Fathom и интегрируете Fathom с сервером базы данных PostgreSQL.

Выполните следующую команду, чтобы создать нового системного пользователя fathom, который будет использоваться для запуска вашей установки Fathom.

sudo useradd -r -d /opt/fathom fathom

Теперь создайте новый домашний каталог /opt/fathom и измените владельца на пользователя fathom. Каталог /opt/fathom будет использоваться для хранения данных установки Fathom.

sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom

После этого выполните приведенную ниже команду, чтобы сгенерировать случайный секретный ключ для Fathom. Обязательно скопируйте вывод, так как он понадобится вам для защиты fathom.

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

configure fathom

Затем перейдите в каталог /opt/fathom .

cd /opt/fathom

Затем создайте новый каталог /opt/fathom/data и новый файл /opt/fathom/data/.env с помощью следующей команды.

sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env

Вставьте следующую конфигурацию и не забудьте изменить данные имени базы данных 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"

По завершении сохраните и закройте файл.

Наконец, выполните следующую команду, чтобы убедиться, что конфигурация Fathom выполнена успешно.

cd /opt/fathom/data
sudo -u fathom fathom server

После выполнения команды Fathom должен запуститься на localhost с портом по умолчанию 8080, и на ваш терминал будет выведен следующий результат:

test fathom

Нажмите Ctrl+c, чтобы завершить процесс.

Запуск Fathom в фоновом режиме как службы Systemd

В следующем разделе вы создадите новый файл службы systemd, который будет использоваться для запуска Fathom в фоновом режиме. С его помощью вы сможете легко управлять Fathom с помощью утилиты systemctl.

Создайте новый файл службы systemd /etc/systemd/system/fathom.service с помощью следующей команды редактора nano.

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

Вставьте в файл следующую конфигурацию.

[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

Сохраните и закройте файл, когда закончите.

Затем выполните следующую команду systemctl, чтобы перезагрузить диспетчер systemd и применить внесенные изменения.

sudo systemctl daemon-reload

После перезагрузки диспетчера systemd выполните команду systemctl команду ниже, чтобы запустить и включить службу fathom . Это запустит Fathom в фоновом режиме на localhost с портом по умолчанию 8080.

sudo systemctl start fathom
sudo systemctl enable fathom

fathom systemd

Проверьте службу fathom с помощью приведенной ниже команды, чтобы убедиться, что служба запущена и включена.

sudo systemctl is-enabled fathom
sudo systemctl status fathom

Если fathom запущен и включен, будет отображен следующий вывод.

verify fathom

Добавление пользователя-администратора Fathom

Теперь, когда Fathom работает в фоновом режиме как служба, в следующем разделе необходимо создать пользователя-администратора для вашей установки Fathom. Это можно сделать с помощью командной строки fathom.

Чтобы создать пользователя Fathom, можно запустить командную строку fathom из каталога данных fathom.

Переместите текущий рабочий каталог в /opt/fathom/data.

cd /opt/fathom/data

Выполните следующую команду, чтобы создать пользователя-администратора для вашей установки Fathom. Обязательно измените адрес электронной почты и пароль с помощью следующей команды.

sudo -u fathom fathom user add --email="[email protected]" --password="password"

Команда будет использовать файл .env для подключения к серверу PostgreSQL. После создания пользователя вы должны получить подтверждение, подобное следующему:

create admin fathom

Настройка Nginx в качестве обратного прокси

На этом настройка Fathom завершена. На следующем шаге вы настроите Nginx в качестве обратного прокси для вашей установки Fathom. Прежде чем продолжить, убедитесь, что у вас есть доменное имя, указывающее на IP-адрес сервера.

Создайте новую конфигурацию блока сервера Nginx /etc/nginx/sites-available/fathom с помощью команды редактора nan, приведенной ниже.

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

Вставьте следующую конфигурацию и не забудьте изменить доменное имя в опции server_name .

server {
    listen 80;
    server_name analytics.local;

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;
}
}

Когда закончите, сохраните и закройте файл.

Теперь выполните следующую команду, чтобы активировать файл блока сервера /etc/nginx/sites-available/fathom и проверить синтаксис Nginx.

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

Если синтаксис правильный, на терминале должно появиться сообщение «syntax is ok — test is successful» должен отобразиться в вашем терминале.

configure nginx

Затем выполните следующую команду, чтобы перезапустить службу Nginx и применить внесенные изменения. После выполнения команды ваша установка Fathom должна быть доступна по вашему доменному имени.

sudo systemctl restart nginx

Наконец, выполните следующую команду certbot, чтобы защитить установку Fathom с помощью сертификатов SSL/TLS от Letsencrypt. Обязательно замените доменное имя и адрес электронной почты на свои данные.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.local

По завершении процесса ваши сертификаты SSL/TLS будут доступны в каталоге /etc/letsencrypt/live/domain.com . Кроме того, файл блока сервера Nginx /etc/nginx/sites-available/fathom автоматически настраивается на HTTPS с помощью плагина Certbot Nginx.

Доступ к Fathom

Запустите предпочитаемый веб-браузер и перейдите по доменному имени вашей установки Fathom, например http://analytics.local/. Вы должны быть автоматически перенаправлены на HTTPS-соединение и увидеть страницу входа в Fathom.

Введите адрес электронной почты и пароль администратора, затем нажмите Войти.

 

Нажмите Создать сайт чтобы создать первый трекер.

 

Заключение

В заключение, вы завершили установку Fathom, веб-аналитики, ориентированной на конфиденциальность, на сервере Debian 12 с сервером базы данных PostgreSQL и Nginx в качестве обратного прокси. Вы также защитили свою установку с помощью сертификатов SSl/TLS от Letsencrypt и настроили UFW (Uncomplicated Firewalld) на вашем сервере Debian. Вы можете добавить новый трекер и внедрить его на своих веб-сайтах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *