Как установить Plausible Analytics на Ubuntu 22.04

Введение

Plausible Analytics – это открытое программное обеспечение для веб-аналитики, развернутое на собственном сервере и написанное на языке Elixir, которое ориентировано на простоту и конфиденциальность. Оно сохраняет данные о посетителях вашего веб-сайта в базах данных PostgreSQL и ClickHouse.

В этом руководстве вы установите Plausible с помощью Docker Compose, затем установите Nginx для работы в качестве обратного прокси для приложения Plausible. Наконец, вы настроите безопасное соединение HTTPS, используя Certbot для загрузки и настройки SSL-сертификатов от Удостоверяющего центра Let’s Encrypt.

Предварительные требования

Чтобы выполнить это руководство, вам сначала понадобится следующее:

Примечание: Эти предварительные шаги можно пропустить, если вы используете Образ Docker одним нажатием от DigitalOcean. В этом образе Docker, Docker Compose и UFW уже установлены и настроены.

Запустите новый образ Docker в выбранном вами регионе, а затем войдите как root пользователь и продолжите выполнение руководства. По желанию, вы можете опустить части с sudo во всех командах, но это необязательно.

Наконец, для включения SSL вам понадобится доменное имя, указывающее на публичный IP-адрес вашего сервера. Это должно быть что-то вроде example.com или plausible.example.com, например. Если вы используете DigitalOcean, пожалуйста, посмотрите наше Быстрое начало с DNS для получения информации о создании доменных ресурсов в нашей панели управления.

Когда вы удовлетворите все предварительные требования, перейдите к Шагу 1, где вы загрузите и запустите программное обеспечение Plausible.

Шаг 1 – Установка Plausible Analytics с помощью Docker Compose

Plausible создал репозиторий Git со всеми файлами конфигурации, необходимыми для самостоятельного хостинга программного обеспечения. Ваш первый шаг будет заключаться в клонировании этого репо на ваш сервер, обновлении двух файлов конфигурации, а затем запуске контейнеров приложения и базы данных Plausible.

Войдите в свой сервер сейчас.

Сначала используйте команду cd для перехода в каталог /opt:

  1. cd /opt

Затем используйте команду git для клонирования репо с GitHub в новый каталог с именем plausible внутри /opt:

  1. sudo git clone https://github.com/plausible/hosting plausible

Это загрузит все необходимые файлы конфигурации в /opt/plausible. Перейдите в только что созданный каталог:

  1. cd plausible

Первый файл, который нам нужно отредактировать, это plausible-conf.env, файл, в котором несколько переменных конфигурации, которые нам нужно установить.

Прежде чем открыть файл для редактирования, сгенерируйте новый случайный хэш:

  1. openssl rand 64 | base64 -w 0 ; echo

Это использует команду openssl для генерации 64 случайных символов и команду base64 для их кодирования в base64. Скопируйте вывод в буфер обмена, затем откройте файл конфигурации:

  1. sudo nano plausible-conf.env

Файл содержит пять переменных, которые вам нужно заполнить:

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

Заполните электронную почту, имя пользователя, пароль и базовый URL, а затем вставьте случайные символы, сгенерированные с помощью openssl.

Примечание: Указанный здесь пароль должен содержать не менее шести символов. Если вы используете только IP-адрес, а не доменное имя, убедитесь, что он предшествует http://.

Сохраните файл (CTRL+O, а затем ENTER в nano) и закройте редактор (CTRL+X).

Есть и другие варианты конфигурации, которые можно добавить в этот файл, но этот минимальный набор поможет вам начать. Дополнительную информацию о настройке Plausible через plausible-conf.env можно найти в официальной документации по самостоятельному размещению Plausible Analytics.

Теперь вам нужно обновить файл docker-compose.yml. Этот файл используется командой docker-compose для настройки и запуска нескольких контейнеров Docker. Нам нужно изменить одну опцию в этом файле: IP-адрес, к которому привязывается Plausible.

  1. sudo nano docker-compose.yml

Найдите раздел, который определяет контейнер Plausible. Он начнется с plausible:. В этом разделе найдите определение ports: и обновите его следующим образом:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

Это гарантирует, что Plausible слушает только интерфейс localhost и не является общедоступным. Даже если у вас установлен брандмауэр UFW, из-за некоторых особенностей работы сети Docker, если вы не выполните этот шаг, ваш контейнер Plausible будет доступен публично на порту 8000, и мы хотим, чтобы он был доступен только через установленный в следующем шаге прокси-сервер Nginx.

Сохраните и закройте файл docker-compose.yml, затем используйте docker-compose для загрузки, настройки и запуска контейнеров:

  1. sudo docker compose up --detach

Флаг --detach говорит docker-compose создать контейнеры в фоновом режиме, отделенные от нашей сессии терминала:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

Контейнер приложения и все его вспомогательные контейнеры для почты и базы данных теперь должны быть запущены. Вы можете проверить это, используя команду curl, чтобы получить домашнюю страницу вашего нового контейнера Plausible, запущенного на localhost:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

Если в вашем терминале выводится какой-то HTML, значит, сервер работает.

Затем мы настроим Nginx для обратного прокси Plausible с localhost:8000 на публичный.

Шаг 2 — Установка и настройка Nginx

Установка веб-сервера, такого как Nginx, перед вашим сервером Elixir, может улучшить производительность за счет передачи кэширования, сжатия и обслуживания статических файлов более эффективному процессу. Мы собираемся установить Nginx и настроить его для обратного прокси-сервера запросов к Plausible, что означает, что он будет обрабатывать запросы от ваших пользователей к Plausible и обратно.

Сначала обновите свой список пакетов, затем установите Nginx с помощью apt:

  1. sudo apt update
  2. sudo apt install nginx

Разрешите публичный трафик на портах 80 и 443 (HTTP и HTTPS) с использованием профиля приложения UFW “Nginx Full”:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

Затем откройте новый файл конфигурации Nginx в каталоге /etc/nginx/sites-available. Мы назовем его plausible.conf, но вы можете использовать другое имя:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

Вставьте следующее в новый файл конфигурации, обязательно заменив your_domain_here на домен, который вы сконфигурировали для указания на ваш сервер Plausible. Например, это может быть что-то вроде plausible.example.com:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Эта конфигурация в настоящее время поддерживает только HTTP, так как мы позволим Certbot настроить SSL в следующем шаге. Остальная часть конфигурации устанавливает местоположения журналов, а затем перенаправляет весь трафик на http://localhost:8000, экземпляр Plausible, который мы запустили на предыдущем шаге.

Сохраните и закройте файл, затем активируйте конфигурацию, создав символическую ссылку на нее в /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

Используйте nginx -t, чтобы проверить правильность синтаксиса файла конфигурации:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

И, наконец, перезагрузите службу nginx, чтобы применить новую конфигурацию:

  1. sudo systemctl reload nginx

Ваш сайт Plausible теперь должен быть доступен по обычному HTTP. Загрузите http://ваш_домен_здесь, и он будет выглядеть так:

Теперь, когда ваш сайт работает через HTTP, пришло время обеспечить защищенное соединение с помощью Certbot и сертификатов Let’s Encrypt.

Шаг 3 — Установка Certbot и настройка SSL-сертификатов

Благодаря Certbot и бесплатному центру сертификации Let’s Encrypt добавление шифрования SSL к нашему приложению Plausible займет всего две команды.

Сначала установите Certbot и его плагин Nginx:

  1. sudo apt install certbot python3-certbot-nginx

Затем запустите certbot в режиме --nginx и укажите тот же домен, который использовали в конфигурации Nginx server_name:

  1. sudo certbot --nginx -d your_domain_here

Вас попросят согласиться с условиями использования Let’s Encrypt и ввести адрес электронной почты.

После этого вас спросят, хотите ли вы перенаправлять весь трафик HTTP на HTTPS. Решать вам, но обычно это рекомендуется и безопасно.

После этого Let’s Encrypt подтвердит ваш запрос, и Certbot загрузит ваш сертификат:

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Certbot автоматически перезагрузит Nginx, чтобы применить новую конфигурацию и сертификаты. Обновите свой сайт, и он автоматически переключит вас на HTTPS, если вы выбрали опцию перенаправления.

Ваш сайт теперь защищен, и безопасно войти с использованием учетных данных по умолчанию, которые вы настроили на Шаг 1. Затем вам будет предложено подтвердить вашу регистрацию, и на ваш адрес электронной почты, который вы настроили, будет отправлен код подтверждения.

По умолчанию эта электронная почта отправляется непосредственно с вашего сервера, что может вызвать проблемы из-за различных мер предотвращения спама. Если вы не получаете письмо, проверьте папку со спамом. Если его там также нет, возможно, вам нужно настроить более подходящие данные SMTP в файле plausible-conf.env. Смотрите официальную документацию Plausible по самостоятельному размещению для получения подробной информации о настройке почты.

Когда вы успешно войдете, вы увидите приглашение для настройки вашего первого веб-сайта с помощью Plausible:

Вы успешно установили и защитили ваше программное обеспечение аналитики Plausible.

Заключение

В этом руководстве вы запустили приложение аналитики Plausible и связанные с ним контейнеры-помощники с использованием Docker Compose, затем настроили обратный прокси Nginx и защитили его с помощью SSL-сертификатов Let’s Encrypt.

Теперь вы готовы настроить свой сайт и добавить скрипт отслеживания аналитики Plausible. Пожалуйста, обратитесь к официальной документации Plausible Analytics для получения дополнительной информации о использовании программного обеспечения и настройке вашего сайта.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04