Поиск по сайту:

Как установить аналитику веб-сайта Fathom, ориентированную на конфиденциальность, в Debian 11


На этой странице

  1. Предпосылки
  2. Установка сервера PostgreSQL
  3. Настройка базы данных PostgreSQL и пользователя
  4. Скачивание двоичного файла Fathom
  5. Настройка Fathom Web Analytics
  6. Создание пользователя-администратора Fathom
  7. Установка и настройка Nginx в качестве обратного прокси-сервера
  8. Защита Fathom с помощью брандмауэра
  9. Защита Fathom Web Analytics с помощью SSL/TLS Letsencrypt
  10. Вход в систему Fathom Website Analytics
  11. Заключение

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

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

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

Попутно вы также узнаете, как настроить аутентификацию в PostgreSQL, создать базу данных и пользователя, а также добавить службы systemd в систему Linux.

Предпосылки

Для прохождения этого руководства у вас должны быть следующие требования:

  • Сервер Debian 11. В этом примере используется сервер Debian с именем хоста fathome-server.
  • Пользователь без полномочий root с правами администратора sudo/root.
  • Доменное имя указывает на IP-адрес сервера. В этом примере используется поддомен fathom.hwdomain.io.

Вот и все. Начнем установку Fathom.

Установка PostgreSQL-сервера

Fathom — это простая веб-аналитика, ориентированная на конфиденциальность, созданная с помощью Golang Preact. При установке по умолчанию Fathom использует SQLite в качестве базы данных, но также можно использовать RDBMS, такие как MySQL/MariaDB и PostgreSQL.

В этом примере вы будете запускать Fathom с PostgreSQL. Итак, теперь вы установите и настроите PostgreSQL на своем сервере Debian.

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

sudo apt update

Теперь установите пакеты PostgreSQL с помощью приведенной ниже команды apt. Это установит пакет сервера PostgreSQL по умолчанию из репозитория Debian 11, то есть PostgreSQL 13.

sudo apt install postgresql

При появлении запроса введите y для подтверждения и нажмите ENTER для продолжения.

После установки PostgreSQL вам потребуется настроить аутентификацию для сервера. Для этого вам необходимо изменить файлы конфигурации PostgreSQL, доступные в каталоге /etc/postgresql/13/main/ (по умолчанию PostgreSQL в Debian).

Откройте файл /etc/postgresql/13/main/postgresql.conf с помощью предпочитаемого редактора текста/кода. В этом примере в качестве редактора по умолчанию используется nano.

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

Раскомментируйте параметр password_encryption и измените значение по умолчанию на scram-sha-256.

password_encryption = scram-sha-256

Сохраните и закройте файл /etc/postgresql/13/main/postgresql.conf, когда закончите. Для пользователей nano: нажмите Ctrl+x, затем y и нажмите ENTER.

Затем откройте файл конфигурации аутентификации PostgreSQL /etc/postgresql/13/main/pg_hba.conf с помощью следующего редактора nao.

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

Измените метод аутентификации по умолчанию для хоста 127.0.0.1/32 и ::1/128 на scram-sha-256. Это укажет метод аутентификации с использованием scram-sha-256 для любого подключения с локального хоста к серверу PostgreSQL.

При использовании параметра -h 127.0.0.1 вы будете подключены к PostgreSQL в качестве хоста и будете использовать аутентификацию scram-sha-256. Когда вы используете только команду psql без указания хоста PostgreSQL, вы будете подключены как локальное соединение и с использованием метода одноранговой аутентификации.

# 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

Сохраните и закройте файл /etc/postgresql/13/main/pg_hba.conf, когда закончите.

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

sudo systemctl restart postgresql

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

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

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

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

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

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

Войдите в оболочку PostgreSQL с помощью приведенной ниже команды. Команда sudo -u postgres psql означает, что вы будете выполнять команду psql от имени пользователя postgres.

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

После входа в систему вы должны быть подключены к базе данных postgres по умолчанию, а приглашение PostgreSQL должно стать postgres=#.

Теперь запустите приведенный ниже запрос, чтобы создать новый пароль для пользователя PostgreSQL по умолчанию postgres. Обязательно измените пароль в следующем запросе.

ALTER USER postgres WITH PASSWORD '';

Затем выполните следующие запросы PostgreSQL, чтобы создать нового пользователя и базу данных PostgreSQL. В этом примере вы создадите нового пользователя Fathom PostgreSQL с помощью базы данных fathomdb.

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

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

\l
\du

Список баз данных на сервере PostgreSQL с помощью запроса \l - и вы можете увидеть, что создана новая база данных fathomdb.

Список пользователей в PostgreSQL через \du query — вы можете увидеть новое имя пользователя PostgreSQL, добавленное в файл PostgreSQL.

На данный момент вы установили и настроили сервер PostgreSQL. На следующем шаге вы начнете установку Fathom.

Скачивание двоичного файла Fathom

Fathom — это небольшое и простое приложение, написанное на Go и представляющее собой единый двоичный файл, который вы можете запустить в любое время в своей системе Linux.

Теперь вы загрузите Fathom на свой сервер Debian.

Посетите страницу выпуска Fathom на GitHub и выберите предпочтительную версию для вашей установки. В этом примере будет использоваться последняя версия Fathom v1.3.0, которая является последней версией на момент написания этой статьи.

Загрузите двоичный файл Fathom с помощью команды wget ниже.

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

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

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

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

which fathom
fathom --version

После успешного выполнения команды вы должны увидеть полный путь к двоичному файлу Fathom /usr/local/bin/fathom. Кроме того, вы увидите версию Fathom на своем терминале.

Загрузив Fathom, вы затем настроите установку веб-аналитики Fathom.

Настройка веб-аналитики Fathom

На этом шаге вы настроите установку веб-аналитики Fathom. Вы настроите каталог данных, настроите базу данных PostgreSQL с помощью Fathom и, наконец, запустите Fathom как службу systemd.

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

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

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

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

su - fathom

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

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

Теперь создайте новый каталог ~/data и переместите в него рабочий каталог. Затем создайте новый файл .env с помощью приведенной ниже команды редактора nano.

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

Добавьте в файл следующие строки. Обязательно измените сведения о базе данных и пользователе PostgreSQL, а также замените FATHOM_SECRET\ сгенерированной строкой сверху.

Кроме того, если вы используете Fathomn в рабочей среде, обязательно измените FATHOM_DEBUG на false. Вы также можете установить FATHOM_DATABASE_SSLMODE, если вы используете базы данных с безопасными соединениями SSL/TLS. В этом примере используется тот же сервер, что и в Fathom, поэтому параметр FATHOM_DATABASE_SSLMODE отключен.

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"

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

Теперь введите exit, чтобы выйти из-под пользователя Fathom и вернуться к корневому сеансу.

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

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

Добавьте в файл следующие строки. При этом вы будете запускать веб-аналитику Fathom на локальном хосте с портом по умолчанию 8080, а каталог данных для Fathom настроен на /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

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

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

sudo systemctl daemon-reload

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

sudo systemctl start fathom
sudo systemctl enable fathom

Проверьте службу fathom, чтобы убедиться, что она работает.

sudo systemctl status fathom

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

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

Теперь, когда Fathom работает как служба systemd, вы готовы создать нового пользователя-администратора для вашей установки Fathom.

Чтобы создать пользователя-администратора Fathom, вы должны находиться в каталоге данных Fathom. Итак, запустите приведенную ниже команду, чтобы войти в систему как пользователь Fathom. Затем переместите рабочий каталог в ~/data.

su - fathom
cd ~/data

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

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

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

На этом вы завершили установку Fathom с сервером базы данных PostgreSQL. Вы также создали пользователя-администратора для Fathom.

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

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

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

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

sudo apt install nginx

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

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

Добавьте следующие строки в файл и обязательно измените доменное имя на свой домен.

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

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

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

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

В случае успеха вы увидите вывод, например, что тест выполнен успешно - синтаксис в вашем терминале в порядке.

Теперь запустите приведенную ниже командную утилиту systemctl, чтобы перезапустить службу Nginx и применить изменения.

sudo systemctl restart nginx

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

sudo systemctl is-enabled nginx
sudo systemctl status nginx

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

Теперь, когда веб-сервер Nginx работает как обратный прокси-сервер для веб-аналитики Fathom, вам нужно настроить брандмауэр UFW и открыть порты HTTP и HTTPS.

Защита Fathom с помощью брандмауэра

На этом шаге вы установите UFW на свой сервер Debian. Затем откройте службы SSH, HTTP и HTTPS, чтобы разрешить доступ к серверу.

Установите пакет ufw с помощью приведенной ниже команды apt. Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

sudo apt install ufw

После установки UFW выполните приведенную ниже команду, чтобы добавить приложения OpenSSH и WWW Full. Приложение OpenSSH откроет SSH-порт 22 по умолчанию, а приложение WWW Full откроет службы HTTP и HTTPS.

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

После добавления вы должны получить вывод, например, обновленные правила.

Теперь запустите приведенную ниже команду ufw, чтобы запустить и включить брандмауэр UFW. При появлении запроса введите y для подтверждения и нажмите ENTER для продолжения.

sudo ufw enable

Вы должны получить вывод, например, Брандмауэр активен и включен при запуске системы, что означает, что брандмауэр UFW запущен и включен. Это также позволяет UFW автоматически запускаться при загрузке.

Наконец, запустите приведенную ниже команду ufw, чтобы проверить список открытых портов и служб в UFW.

sudo ufw status

Вы получите приложения OpenSSH и WWW Full, добавленные в брандмауэр UFW.

Защита веб-аналитики Fathom с помощью SSL/TLS Letsencrypt

На этом этапе вы защитите веб-аналитику Fathom с помощью сертификатов SSL/TLS от Letsencrypt. Для этого вы должны установить Certbot и дополнительный подключаемый модуль Certbot Nginx на свой сервер Debian.

Перед созданием сертификатов SSL/TLS убедитесь, что ваш домен указывает на IP-адрес сервера. Также убедитесь, что у вас есть адрес электронной почты, который будет использоваться для регистрации в Letsencrypt.

Теперь запустите приведенную ниже команду apt, чтобы установить Certbot и плагин Certbot Nginx. Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

sudo apt install certbot python3-certbot-nginx

После установки Certbot выполните приведенную ниже команду, чтобы сгенерировать сертификаты SSL/TLS для вашего доменного имени. Также обязательно измените доменное имя и адрес электронной почты в следующей команде.

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

С помощью этой команды для вашего доменного имени будут сгенерированы новые сертификаты SSL/TLS. Кроме того, это автоматически настроит HTTPS на вашем блоке сервера Nginx и настроит автоматическое перенаправление с HTTP на HTTPS для вашего блока сервера Fathom. Сертификаты Certbot SSL/TLS создаются в каталоге /etc/elstencrypt/live/fathom.hwdomain.io/.

Вход в систему аналитики веб-сайта Fathom

Откройте веб-браузер и перейдите на доменное имя вашей установки веб-аналитики Fathom (например, https://fathom.hwdomain.io). Вам должна быть предложена страница входа в систему Fathom.

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

Когда адрес электронной почты и пароль верны, вы должны получить панель администрирования Fathom.

Таким образом, вы успешно установили веб-аналитику Fathom с PostgreSQL и Nginx.

Заключение

В этом руководстве вы установили веб-аналитику Fathom с открытым исходным кодом, ориентированную на конфиденциальность, на сервер Debian 11. Вы также установили и настроили PostgreSQL в качестве внутреннего сервера базы данных для веб-аналитики Fathom. А во внешнем интерфейсе для клиентского доступа вы настроили Nginx в качестве обратного прокси-сервера. Вы также защитили аналитику веб-сайта Fathom с помощью сертификатов SSL/TLS через Certbot и Letsencrypt.

Имея это в виду, теперь вы можете добавлять новые треки и отслеживать свой сайт и посетителей. Вы также можете интегрировать Fathom с несколькими CMS (системами управления контентом), такими как WordPress и Drupal. Кроме того, вы можете интегрироваться с такими форумами, как Discourse.