Гид по технологиям

Установка Fathom Analytics на Ubuntu 18.04

4 min read DevOps Обновлено 01 Nov 2025
Fathom на Ubuntu 18.04 — установка и настройка
Fathom на Ubuntu 18.04 — установка и настройка

Что такое Fathom

Fathom — это простая self-hosted платформа веб-аналитики с минимальным трекингом и фокусом на конфиденциальности. Кратко: собирает основные метрики сайта без хранения личных данных пользователей.

Основные понятия

  • Self-hosted: вы управляете сервером и данными.
  • Reverse proxy: прокси, который принимает внешние запросы и перенаправляет их на внутренний порт (здесь — Nginx → Fathom на порту 9000).

Требования

  • Сервер с Ubuntu 18.04.
  • Статический IP, в примере: 192.168.0.103.
  • Установлен и настроен root или пользователь с sudo.
  • Рекомендуется резервная копия перед началом.

Начало работы — обновление системы

Перед установкой обновите пакеты и перезагрузите сервер, если потребуется:

apt-get update -y
apt-get upgrade -y

Затем перезагрузите сервер:

reboot

Установка Nginx и MariaDB

Установите Nginx и MariaDB:

apt-get install nginx mariadb-server -y

Запустите и включите сервисы:

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Важно: в продакшене MariaDB должна быть защищена сильным паролем и доступом только с доверенных хостов.

Настройка MariaDB

Защитите MariaDB и установите root-пароль:

mysql_secure_installation

Типичные ответы (пример):

Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Войдите в MariaDB и создайте базу и пользователя для Fathom:

mysql -u root -p

Внутри MariaDB:

CREATE DATABASE fathom;
CREATE USER 'fathomuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON fathom.* TO 'fathomuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Примечание: замените ‘password’ на надёжный пароль перед развёртыванием в продакшен.

Установка Fathom

Скачайте последний бинарный релиз Fathom для Linux (amd64):

wget https://github.com/usefathom/fathom/releases/download/latest-development/fathom-linux-amd64

Переместите бинарь и сделайте его исполняемым:

mv fathom-linux-amd64 /usr/local/bin/fathom
chmod 755 /usr/local/bin/fathom

Создайте файл окружения .env в домашней директории (например, /root/.env или в директории сервиса):

nano /root/.env

Добавьте следующие переменные (обязательно поменяйте FATHOM_DATABASE_PASSWORD и FATHOM_SECRET на безопасные значения):

FATHOM_SERVER_ADDR=9000
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="mysql"
FATHOM_DATABASE_NAME="fathom"
FATHOM_DATABASE_USER="fathomuser"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="localhost"
FATHOM_DATABASE_SSLMODE=""
FATHOM_SECRET="random-secret-string"

Важно: хранение секретов в открытом .env удобно для тестирования, но не безопасно для продакшена. Рассмотрите использование manager-а секретов или прав доступа к файлу 600.

Создайте администратора Fathom:

fathom --config=/root/.env user add admin@example.com --password=admin@123

Пример вывода при успешном создании пользователя:

INFO[0000] Fathom 1.1.0
INFO[0000] Configuration file: /root/.env
INFO[0000] Connected to mysql database: fathomuser:password@tcp(localhost)/fathom?loc=Local&parseTime=true
INFO[0000] Created user admin@example.com

Запустите сервер Fathom для теста:

fathom --config=/root/.env server

Ожидаемый фрагмент лога:

INFO[0000] Connected to mysql database: fathomuser:password@tcp(localhost)/fathom?loc=Local&parseTime=true
INFO[0002] Applied N database migrations!
INFO[0002] Server is now listening on :9000

Если всё в порядке, продолжайте к созданию systemd-сервиса.

Сохранение изображений (ALT тексты)

/files/319b5141-4f24-4962-bfc1-67999e62283c.jpg

Экран входа в Fathom для администратора

Форма добавления сайта в Fathom

Панель статистики сайта в Fathom

Пример отчёта со статистикой сайта

Примечание: пути к изображениям сохранены без изменений. ALT-тексты переведены и описаны более конкретно.

Systemd-сервис для Fathom

Создайте unit-файл:

nano /etc/systemd/system/fathom.service

Вставьте конфигурацию:

[Unit]
Description=Fathom server management service unit
Requires=network.target
After=network.target

[Service]
Type=simple
User=root
Restart=always
RestartSec=3
WorkingDirectory=/root
ExecStart=/usr/local/bin/fathom --config=/root/.env server

[Install]
WantedBy=multi-user.target

Загрузите systemd и включите сервис:

systemctl daemon-reload
systemctl enable fathom
systemctl start fathom

Проверьте статус и логи:

systemctl status fathom
journalctl -u fathom -f

Критерии приёмки

  • Сервис Fathom активен и работает (Active: active (running)).
  • В логах видна строка “Server is now listening on :9000”.
  • Веб-интерфейс откликается через прокси Nginx (см. ниже).

Конфигурация Nginx как reverse proxy

Создайте виртуальный хост:

nano /etc/nginx/sites-available/fathom

Простой конфиг для локального IP (HTTP):

server {
  listen 80;
  listen [::]:80;

  server_name 192.168.0.103;

  location / {
      proxy_pass http://localhost:9000/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Проверьте синтаксис и включите сайт:

nginx -t
rm -rf /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
systemctl restart nginx

Теперь интерфейс доступен по адресу: http://192.168.0.103

Важно: для продакшена используйте доменное имя и HTTPS.

Настройка HTTPS (Let’s Encrypt) — рекомендации

  1. Зарегистрируйте домен и укажите A-запись на ваш публичный IP.
  2. Установите certbot и плагин для Nginx:
apt-get install certbot python3-certbot-nginx -y
  1. Получите сертификат (пример для example.com):
certbot --nginx -d example.com -d www.example.com

Certbot автоматически обновит конфиг Nginx и добавит перенаправление с HTTP на HTTPS. Если вы используете внутренний IP (192.168.x.x), Let’s Encrypt выдаст ошибку — используйте самоподписанный сертификат или обратитесь к внутреннему PKI.

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

Резервное копирование базы:

mysqldump -u root -p fathom > fathom-backup-$(date +%F).sql

Восстановление:

mysql -u root -p fathom < fathom-backup-YYYY-MM-DD.sql

Регулярные бэкапы и хранение на отдельном хранилище критичны для восстановления после сбоев.

Отладка и распространённые проблемы

  • Если Fathom не стартует — проверьте переменные окружения (.env) и доступ к базе.
  • “Connected to mysql database” отсутствует — проверьте права пользователя и пароль.
  • Nginx возвращает 502 — убедитесь, что Fathom слушает на порту 9000 и systemd не упал.
  • Используйте команды: systemctl status fathom, journalctl -u fathom -f, ss -ltnp | grep 9000.

Рекомендации по безопасности и приватности

  • Не используйте слабые пароли в .env. Установите права 600 на файл с секретами.
  • Разрешите доступ к административной панели только с доверенных IP (через Nginx или firewall).
  • Для соответствия требованиям конфиденциальности (GDPR) документируйте, какие данные вы храните и как долго.

Альтернативные подходы

  • Контейнеризация: можно развернуть Fathom в Docker-контейнере и управлять сервисом через Docker Compose.
  • Облачные managed-решения: если вы не хотите поддерживать сервер, рассмотрите SaaS-версии или альтернативные self-hosted (Matomo, Plausible, Ackee).

Контрольные списки по ролям

Администратор:

  • Обновить систему и создать бэкап перед началом.
  • Настроить firewall (ufw) и разрешить только нужные порты.

DevOps:

  • Автоматизировать запуск через systemd и бэкапы (cron или systemd timers).
  • Настроить мониторинг сервиса и алерты.

Разработчик / аналитик:

  • Добавить сайт в Fathom и верифицировать трекинг-код.
  • Проверить основные отчёты: топ-страницы, источники трафика, среднее время на сайте.

Короткая шпаргалка по командам

  • Обновление системы: apt-get update -y && apt-get upgrade -y
  • Проверка Nginx: nginx -t
  • Логи Fathom: journalctl -u fathom -f
  • Резервное копирование MariaDB: mysqldump -u root -p fathom > backup.sql

Краткое резюме

Fathom — удобная и приватная self-hosted аналитика. На Ubuntu 18.04 её можно запустить за счёт скачивания бинаря, настройки MariaDB, создания systemd-сервиса и проксирования через Nginx. Для продакшена обязательно включите HTTPS, настройте надёжные пароли, регулярные бэкапы и ограничение доступа.

Важно

  • Не используйте пароли по умолчанию в .env в продакшене.
  • Для публичного доступа обязательно используйте домен и TLS-сертификат.

Дополнительные ресурсы и шаги

  • Рассмотрите перенос на контейнеры (Docker) для удобства деплоя.
  • Настройте ротацию логов и мониторинг доступности.

Конец статьи.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти