Как установить аналитику веб-сайта Fathom, ориентированную на конфиденциальность, в Debian 11
На этой странице
- Предпосылки
- Установка сервера PostgreSQL
- Настройка базы данных PostgreSQL и пользователя
- Скачивание двоичного файла Fathom
- Настройка Fathom Web Analytics
- Создание пользователя-администратора Fathom
- Установка и настройка Nginx в качестве обратного прокси-сервера
- Защита Fathom с помощью брандмауэра
- Защита Fathom Web Analytics с помощью SSL/TLS Letsencrypt
- Вход в систему Fathom Website Analytics
- Заключение
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.