Як встановити Fathom Web Analytics на Debian 12

Fathom – це веб-аналітика, орієнтована на конфіденційність, яка надає чисті та чіткі дані про ваші сайти. Fathom створено як альтернативу Google Analytics, але водночас він не вторгається в приватне життя користувачів і не компрометує дані про відвідувачів. Він відповідає вимогам GDPR і не вимагає встановлення банерів cookie.

Fathom випускається у двох версіях: з відкритим вихідним кодом, яку можна встановити на свій сервер, і у версії pro, яку можна придбати на офіційному сайті 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 запущено і ввімкнено.

Далі перевірте роботу служби nginx, виконавши таку команду.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

У терміналі буде виведено аналогічний висновок, який свідчить про те, що службу nginx запущено і ввімкнено.

Нарешті, перевірте роботу certbot, виконавши таку команду. У результаті буде знайдено двійковий виконуваний файл certbot і перевірено поточну версію certbot, встановлену у вашій системі.

which certbot
certbot --version

Виведений результат покаже, що Certbot 2.1 встановлено за адресою /usr/bin/certbot.ent 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, щоб продовжити підтвердження. Після успішного завершення ви маєте отримати повідомлення “Firewall is active and enabled on system startup”.

Нарешті, перевірте стан UFW за допомогою наведеної нижче команди.

sudo ufw status

Вихідний сигнал active вказує на те, що UFW запущено і ввімкнено, ви також повинні побачити, що профілі OpenSSH і WWW Full додано до 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 із базою даних 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 ''

Потім перейдіть у каталог /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, а в термінал буде виведено наступний висновок:

Натисніть 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 manage виконайте наведену нижче команду systemctl для запуску та ввімкнення служби fathom. У результаті Fathom працюватиме у фоновому режимі на localhost з портом за замовчуванням 8080.

sudo systemctl start fathom
sudo systemctl enable fathom

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

sudo systemctl is-enabled fathom
sudo systemctl status fathom

Якщо 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. Після створення користувача ви повинні отримати підтвердження, як показано нижче:

Налаштування 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.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;
    }
}

Після закінчення роботи збережіть і вийдіть із файлу.

Тепер виконайте таку команду для активації файлу блоку сервера /etc/nginx/sites-available/fathom і перевірки синтаксису Nginx.

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

За правильного синтаксису в термінал має бути виведено висновок “синтаксис в порядку – тест пройдено успішно”.

Далі виконайте наступну команду для перезапуску служби 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.hwdomain.io

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

Доступ до Fathom

Запустіть бажаний веб-браузер і перейдіть на доменне ім’я вашої установки Fathom, наприклад, http://analytics.hwdomain.io/. Вас має бути автоматично перенаправлено на HTTPS-з’єднання, і перед вами відкриється сторінка входу в систему Fathom.

Введіть адресу електронної пошти адміністратора та пароль, потім натисніть кнопку Увійти.

Натисніть кнопку Створити сайт, щоб створити перший трекер.

Ви маєте побачити код трекера, згенерований Fathom.

Нижче наведено докладну інформацію про аналітику сайту Fathom.

Звідси ви можете додавати і встановлювати нові трекери для своїх сайтів.

Висновок

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

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x