Как установить Plausible Analytics
Centos, Debian, Linux, RHEL, Ubuntu | Комментировать запись
Plausible Analytics – это приложение для веб-аналитики с открытым исходным кодом, написанное на Elixir и ориентированное на простоту и конфиденциальность. Оно хранит данные о посетителях вашего сайта в базах данных PostgreSQL и ClickHouse.
Следуя этому руководству, вы установите Plausible, используя Docker Compose, а затем настроите Nginx как обратный прокси для Plausible. В конце мы покажем, как включить безопасные соединения HTTPS с помощью Certbot и SSL-сертификатов от центра сертификации Let’s Encrypt.
Требования
- Подготовленный сервер (мы используем Ubuntu 20.04) с включенным брандмауэром UFW. Пожалуйста, прочтите наше руководство по начальной настройке сервера Ubuntu 20.04, чтобы узнать больше.
- Установленный Docker. Для этого следуйте первому пункту руководства Установка и использование Docker в Ubuntu 20.04. Вы можете выполнить и второй пункт, если хотите, чтобы ваш пользователь без полномочий root мог запускать команды docker, не используя sudo
- Установленный Docker Compose. Установить его можно, просто следуя первому пункту из инструкции по установке Docker Compose в Ubuntu 20.04
Чтобы включить SSL, вам понадобится доменное имя, ссылающееся на общедоступный IP-адрес вашего сервера. Это может быть что-то вроде example.com или plausible.example.com.
Когда все предварительные требования выполнены, можно переходить к первому пункту руководства, где мы будем скачивать и запускать Plausible.
1: Установка Plausible Analytics при помощи Docker Compose
Plausible предоставляет Git-репозиторий со всеми файлами конфигурации, необходимыми для самостоятельного размещения программного обеспечения. Клонируем репозиторий на ваш сервер, обновляем два файла конфигурации, затем запускаем Plausible и контейнеры базы данных.
Залогиньтесь на вашем сервере.
Сначала с помощью команды cd перейдите в каталог /opt:
$ cd /opt
Затем используйте команду git для клонирования репозитория из GitHub в новый каталог под названием plausible внутри /opt:
$ sudo git clone https://github.com/plausible/hosting plausible
Это перенесет все необходимые конфигурации в новый каталог /opt/plausible. Перейдите в него:
$ cd plausible
Первый файл, который нужно отредактировать, – plausible-conf.env. В нём есть несколько переменных конфигурации, которые нужно задать.
Прежде чем открывать файл для редактирования, сгенерируйте новый случайный хеш:
$ openssl rand 64 | base64 -w 0 ; echo
Команда openssl используется для генерации 64 случайных символов, а команда base64 для их кодирования в base64. Скопируйте результат в буфер обмена и откройте конфиг:
$ sudo nano $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
Введите свой e-mail, имя пользователя, пароль и базовый URL-адрес, а затем вставьте случайные символы, сгенерированные при помощи openssl. Помните, что пароль должен содержать не менее шести символов.
Сохраните файл (CTRL+O, потом ENTER в nano) и закройте редактор (CTRL+X).
Вы можете добавить больше параметров в этот файл, но это – необходимый минимум для начала работы. Дополнительную информацию о настройке Plausible при помощи plausible-conf.env можно найти в официальной документации Plausible Analytics.
Теперь обновим файл docker-compose.yml. Он используется командой docker-compose для настройки и запуска нескольких контейнеров Docker. Нужно изменить одну опцию в этом файле – IP, к которому привязан Plausible.
$ sudo nano $docker-compose.yml
Найдите раздел c контейнером Plausible (начинается с plausible:). Там ищите значение ports: и задайте его следующим образом:
ports: - 127.0.0.1:8000:8000
Это гарантирует, что Plausible слушает только интерфейс localhost и не является общедоступным. Несмотря на то, что у вас настроен брандмауэр UFW, из-за некоторых причуд в работе сети Docker, если вы не сделали это, ваш Plausible контейнер будет доступен для публики через порт 8000. А нам нужно, чтобы он был доступен только через прокси Nginx, который вы настроите дальше.
Сохраните и закройте файл docker-compose.yml, затем используйте docker-compose для загрузки, настройки и запуска контейнеров:
$ sudo docker-compose up --detach
Контейнер приложения, все поддерживающие его почтовые контейнеры и контейнеры базы данных должны заработать. Вы можете убедиться в этом, используя команду curl, чтобы получить домашнюю нового контейнера Plausible, запущенного на localhost:
curl http://localhost:8000
<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:
$ sudo apt update
$ sudo apt install nginx
Разрешите внешний трафик на порты 80 и 443 (HTTP и HTTPS) используя профиль приложения UFW “Nginx Full”:
$ sudo ufw allow "Nginx Full"
Rule added Rule added (v6)
Затем откройте новый файл конфигурации Nginx в каталоге /etc/nginx/sites-available. Мы назвали наш plausible.conf, но вы можете использовать другое имя:
$ sudo nano /etc/nginx/sites-available/plausible.conf
Скопируйте это в новый конфиг, обязательно заменив your_domain_here – доменом, который ведет на ваш Plausible сервер. Домен может быть, например, plausible.example.com.
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/:
$ sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/
Используйте nginx -t , чтобы проверить правильность синтаксиса в файле конфига:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
И, наконец, перезагрузите сервис nginx, чтобы подтянуть новый конфиг:
$ sudo systemctl reload nginx
Теперь ваш сайт Plausible доступен по обычному протоколу HTTP. Загрузите http://your_domain_here.
Теперь, когда ваш сайт настроен и работает по HTTP, самое время защитить соединение с помощью Certbot и сертификатов Let’s Encrypt.
3: Установка Certbot и настройка SSL-сертификатов
Благодаря Certbot и бесплатному центру сертификации Let’s Encrypt, чтобы добавить SSL-шифрование в наше приложение Plausible потребуется всего две команды.
Сначала установите Certbot и его плагин для Nginx:
$ sudo apt install certbot python3-certbot-nginx
Затем запустите certbot в режиме –nginx и укажите тот же домен, который использовали в конфиге Nginx server_name:
$ sudo certbot --nginx -d your_domain_here
Вам предложат принять условия использования Let’s Encrypt и ввести адрес электронной почты.
После этого у вас спросят, хотите ли вы перенаправить весь HTTP-трафик на HTTPS. Выбор за вами, обычно это рекомендуется сделать, поскольку так безопаснее.
После этого Let’s Encrypt подтвердит ваш запрос, и Certbot загрузит сертификат:
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 2021-12-06. 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, если вы выбрали опцию перенаправления.
Теперь ваш сайт защищен, и вы можете безопасно залогиниться с данными пользователя по умолчанию. Затем вам будет предложат подтвердить регистрацию, а верификационный код будет отправлен по электронной почте на указанный адрес.
По умолчанию электронное письмо отправляется прямо с вашего сервера, что может вызывать проблемы из-за мер защиты от спама. Если вы не получили письмо, проверьте папку со спамом. Если и там его нет, вам придется отладить параметры SMTP в файле plausible-conf.env. Подробную информацию о настройке почты см. в официальной документации Plausible self-hosting.
После успешного входа в систему вы увидите запрос на первичную настройку вашего веб-сайта с помощью Plausible. Вы успешно установили и обезопасили Plausible Analytics.
Заключение
При помощи этого руководства вы запустили приложение Plausible Analytics и связанные с ним вспомогательные контейнеры при помощи Docker Compose. Затем настроили обратный прокси-сервер Nginx и защитили его с помощью SSL-сертификатов Let’s Encrypt.
Теперь вы готовы настроить отслеживание вашего веб-сайта, добавив на него треккинговый скрипт Plausible Analytics.
См. официальную документацию по Plausible Analytics для дополнительной информации об использовании ПО и настройке вашего сайта.
Tags: Docker Compose, Let's Encrypt, Plausible Analytics, Ubuntu 20.04