Plausible Analytics — это автономное приложение для веб-аналитики с открытым исходным кодом, написанное на Elixir и ориентированное на простоту и конфиденциальность. Он хранит данные о посетителях вашего сайта в базах данных PostgreSQL и ClickHouse.
В этом руководстве вы установите Plausible с помощью Docker Compose, а затем установите Nginx, который будет действовать как обратный прокси-сервер для приложения Plausible. Наконец, вы включите безопасные соединения HTTPS, используя Certbot для загрузки и настройки сертификатов SSL из центра сертификации Let's Encrypt.
Чтобы завершить это руководство, вам сначала понадобится следующее:
docker
без использования sudo
Note: Эти обязательные шаги можно пропустить, если вы используете образ Docker в один клик от DigitalOcean. В этом образе уже установлены и настроены Docker, Docker Compose и UFW.
Запустите новый образ Docker в выбранном вами регионе, затем войдите в систему как пользователь root и продолжите обучение. При желании вы можете исключить части sudo
из всех команд, но это не обязательно.
Наконец, чтобы включить SSL, вам понадобится доменное имя, указывающее на общедоступный IP-адрес вашего сервера. Например, это должно быть что-то вроде example.com
или plausible.example.com
. Если вы используете DigitalOcean, ознакомьтесь с нашим кратким руководством по DNS для получения информации о создании ресурсов домена в нашей панели управления.
Выполнив все предварительные условия, перейдите к Step 1 , где вы загрузите и запустите программное обеспечение Plausible.
Plausible создал репозиторий Git со всеми файлами конфигурации, необходимыми для самостоятельного размещения программного обеспечения. Вашим первым шагом будет клонирование этого репозитория на ваш сервер, обновление двух файлов конфигурации, а затем запуск приложения Plausible и контейнеров базы данных.
Войдите на свой сервер сейчас.
Сначала используйте команду cd
, чтобы перейти в каталог /opt
:
1 |
<ol><li data-prefix="$"> <span class="token builtin class-name">компакт-диск</span> /опт</li></ol> |
Затем используйте команду git
, чтобы клонировать репозиторий из GitHub в новый каталог внутри /opt
, называемый plausible
:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">git</span> clone https://github.com/plausible/hosting правдоподобный</li></ol> |
Это переместит все необходимые файлы конфигурации в /opt/plausible
. Перейдите во вновь созданный каталог:
1 |
<ol><li data-prefix="$"> <span class="token builtin class-name">компакт-диск</span> правдоподобный</li></ol> |
Первый файл, который нам нужно отредактировать, — это plausible-conf.env
, файл, в котором есть несколько переменных конфигурации, которые нам нужно установить.
Прежде чем открыть файл для его редактирования, сгенерируйте новый случайный хэш:
1 |
<ol><li data-prefix="$"> OpenSSL ранд <span class="token number">64</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-w</span> <span class="token number">0</span> <span class="token punctuation">;</span> <span class="token builtin class-name">эхо</span></li></ol> |
При этом используется команда openssl
для генерации 64 случайных символов и команда base64
для их кодирования в base64. Скопируйте вывод в буфер обмена, затем откройте файл конфигурации:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">nano</span> правдоподобный-conf.env</li></ol> |
Файл содержит пять переменных, которые вам нужно будет заполнить:
1 |
ADMIN_USER_EMAIL=</code> ваш_электронный адрес_здесь</mark> ADMIN_USER_NAME=<mark> имя_администратора</mark> ADMIN_USER_PWD=<mark> пароль администратора</mark> BASE_URL=https://<mark> ваш_домен_здесь</mark> SECRET_KEY_BASE=<mark> вставьте_ваши_случайные_символы_здесь</mark> |
Введите адрес электронной почты, имя пользователя, пароль и базовый URL-адрес, затем вставьте случайные символы, сгенерированные вами с помощью openssl
.
Note: Длина пароля, который вы здесь указываете, должна быть не менее шести символов. Если вы используете чистый IP-адрес, а не доменное имя, обязательно укажите перед ним http://
.
Сохраните файл ( CTRL+O
затем ENTER
в nano
) и закройте редактор ( CTRL+X
).
В этот файл можно добавить и другие параметры конфигурации, но этот минимальный набор поможет вам приступить к работе. Дополнительную информацию о настройке Plausible через plausible-conf.env
можно найти в официальной документации по самостоятельному размещению Plausible Analytics.
Теперь вам нужно обновить файл docker-compose.yml
. Этот файл используется командой docker-compose
для настройки и запуска нескольких контейнеров Docker. Нам нужно изменить одну опцию в этом файле: IP-адрес, к которому привязывается Plausible.
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">nano</span> docker-compose.yml</li></ol> |
Найдите раздел, определяющий контейнер Plausible. Начнётся plausible:
. В этом разделе найдите определение ports:
и обновите его следующим образом:
1 |
ports: -</code> 127.0.0.1:</mark> 8000:8000 |
Это гарантирует, что Plausible прослушивает только интерфейс localhost и не является общедоступным. Несмотря на то, что у вас настроен брандмауэр UFW, из-за некоторых особенностей работы сети Docker, если вы не выполнили этот шаг, ваш контейнер Plausible будет доступен для всех через порт 8000
, а мы хотим, чтобы он был доступен только через Nginx. прокси, который вы настроите на следующем шаге.
Сохраните и закройте файл docker-compose.yml
, затем используйте docker-compose
для загрузки, настройки и запуска контейнеров:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">docker-compose</span> up <span class="token parameter variable">--detach</span></li></ol> |
Флаг --detach
сообщает docker-compose
создавать контейнеры в фоновом режиме, отсоединенные от нашей терминальной сессии:
1 |
<div class="secondary-code-label" title="Выход"> Выход</div> . . . Запуск plausible_plausible_events_db_1 ... готово Запуск plausible_plausible_db_1 ... готово Запуск plausible_mail_1 ... готово Запуск plausible_plausible_1 ... готово |
Контейнер приложения и все поддерживающие его контейнеры почты и базы данных теперь должны быть запущены. Вы можете убедиться в этом, используя команду curl
для получения домашней страницы вашего нового контейнера Plausible, работающего на localhost :
1 |
<ol><li data-prefix="$"> <span class="token function">локон</span> http://localhost:8000</li></ol> |
1 |
<div class="secondary-code-label" title="Выход"> Выход</div> <html><body>Вы <a href="/login">перенаправлены</a>.</body></html> |
Если на ваш терминал выводится какой-либо HTML-код, вы знаете, что сервер запущен и работает.
Далее мы настроим Nginx для обратного прокси-сервера Plausible с localhost:8000
на общедоступный.
Размещение веб-сервера, такого как Nginx, перед вашим сервером Elixir может повысить производительность за счет переноса кэширования, сжатия и обслуживания статических файлов на более эффективный процесс. Мы собираемся установить Nginx и настроить его для обратного прокси-запроса в Plausible, то есть он позаботится о передаче запросов от ваших пользователей в Plausible и обратно.
Сначала обновите список пакетов, затем установите Nginx с помощью apt
:
1 |
<ol><li data-prefix="$"> обновление <span class="token function">sudo</span> <span class="token function">apt</span></li><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">установить</span> nginx</li></ol> |
Разрешите общедоступный трафик на порты 80
и 443
(HTTP и HTTPS) с помощью профиля приложения UFW «Nginx Full»:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> ufw разрешить <span class="token string">«Nginx Full»</span></li></ol> |
1 |
<div class="secondary-code-label" title="Выход"> Выход</div> Добавлено правило Добавлено правило (v6) |
Затем откройте новый файл конфигурации Nginx в каталоге /etc/nginx/sites-available
. Мы назовем наш plausible.conf
, но вы можете использовать другое имя:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">nano</span> /etc/nginx/сайты-доступны/<mark> правдоподобный</mark> .conf</li></ol> |
Вставьте следующее в новый файл конфигурации, обязательно заменяя your_domain_here
доменом, который вы настроили для указания на ваш Plausible сервер. Это должно быть что-то вроде plausible.example.com
, например:
1 |
server { listen 80; listen [::]:80; server_name</code> ваш_домен_здесь</mark> ; access_log /var/log/nginx/plausible.access.log; error_log /var/log/nginx/plausible.error.log; местоположение / { 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 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">ln</span> <span class="token parameter variable">-s</span> /etc/nginx/sites-available/<mark> правдоподобный</mark> .conf /etc/nginx/sites-enabled/</li></ol> |
Используйте nginx -t
, чтобы проверить правильность синтаксиса файла конфигурации:
1 |
<ol><li data-prefix="$"> <span class="token function">судо</span> nginx <span class="token parameter variable">-t</span></li></ol> |
1 |
<div class="secondary-code-label" title="Выход"> Выход</div> nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке nginx: тест файла конфигурации /etc/nginx/nginx.conf прошел успешно |
И, наконец, перезагрузите службу nginx
, чтобы получить новую конфигурацию:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> systemctl перезагрузить nginx</li></ol> |
Ваш сайт Plausible теперь должен быть доступен по простому HTTP. Загрузите http:// your_domain_here
, и это будет выглядеть так:
Теперь, когда ваш сайт настроен и работает через HTTP, пришло время защитить соединение с помощью сертификатов Certbot и Let's Encrypt.
Благодаря Certbot и бесплатному центру сертификации Let's Encrypt для добавления SSL-шифрования в наше приложение Plausible потребуется всего две команды.
Сначала установите Certbot и его плагин Nginx:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">установить</span> certbot python3-certbot-nginx</li></ol> |
Затем запустите certbot
в режиме --nginx
и укажите тот же домен, который вы использовали в конфигурации Nginx server_name
:
1 |
<ol><li data-prefix="$"> <span class="token function">sudo</span> certbot <span class="token parameter variable">--nginx</span> <span class="token parameter variable">-d</span><mark> ваш_домен_здесь</mark></li></ol> |
Вам будет предложено согласиться с условиями обслуживания Let's Encrypt и ввести адрес электронной почты.
После этого вас спросят, хотите ли вы перенаправить весь HTTP-трафик на HTTPS. Решать вам, но обычно это рекомендуется и безопасно.
После этого Let's Encrypt подтвердит ваш запрос, а Certbot загрузит ваш сертификат:
1 |
<div class="secondary-code-label" title="Выход"> Выход</div> Поздравляем! Вы успешно включили https://plausible.example.com. Вам следует проверить свою конфигурацию по адресу: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ВАЖНЫЕ ПРИМЕЧАНИЯ: - Поздравляем! Ваш сертификат и цепочка сохранены по адресу: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Файл ключа сохранен по адресу: /etc/letsencrypt/live/plausible.example.com/privkey.pem Ваш Срок действия сертификата истекает 6 декабря 2021 г. Чтобы получить новую или измененную версию этого сертификата в будущем, просто запустите certbot еще раз с опцией «certonly». Чтобы неинтерактивно обновить *все* ваши сертификаты, запустите «certbot renew» — учетные данные вашей учетной записи были сохранены в каталоге конфигурации вашего Certbot по адресу /etc/letsencrypt. Вам следует сделать безопасную резервную копию этой папки сейчас. Этот каталог конфигурации также будет содержать сертификаты и закрытые ключи, полученные Certbot, поэтому идеальным является регулярное резервное копирование этой папки. - Если вам нравится Certbot, рассмотрите возможность поддержки нашей работы: Сделайте пожертвование в пользу ISRG / Let's Encrypt: https://letsencrypt.org/donate. Пожертвуйте в пользу EFF: https://eff.org/donate-le. |
Certbot автоматически перезагрузит Nginx, чтобы получить новую конфигурацию и сертификаты. Перезагрузите свой сайт, и он должен автоматически переключить вас на HTTPS, если вы выбрали опцию перенаправления.
Теперь ваш сайт защищен, и вы можете безопасно войти в систему, используя данные пользователя по умолчанию, которые вы установили на Step 1 . Затем вам будет предложено подтвердить вашу регистрацию, и код подтверждения будет отправлен по электронной почте на указанный вами адрес.
По умолчанию это электронное письмо отправляется непосредственно с вашего сервера, что может создать проблемы из-за различных мер по предотвращению спама. Если вы не получили письмо, проверьте папку «Спам». Если его там нет, возможно, вам придется настроить более подходящие данные SMTP в файле plausible-conf.env
. Подробную информацию о настройке почты см. в официальной документации по самостоятельному хостингу Plausible.
После успешного входа в систему вы увидите приглашение настроить свой первый веб-сайт с помощью Plausible:
Вы успешно установили и защитили свое аналитическое программное обеспечение Plausible.
В этом руководстве вы запустили приложение Plausible Analytics и связанные с ним вспомогательные контейнеры с помощью Docker Compose, затем настроили обратный прокси-сервер Nginx и защитили его с помощью SSL-сертификатов Let's Encrypt.
Теперь вы готовы настроить свой веб-сайт и добавить скрипт отслеживания Plausible Analytics. Дополнительную информацию об использовании программного обеспечения и настройке вашего сайта см. в официальной документации Plausible Analytics.