Развёртывание на Scaleway

Пошаговое руководство по развёртыванию OpenReplay на Scaleway Elements.

Развёртывание на Scaleway

Стек OpenReplay можно установить на одном инстансе, и Scaleway Elements — идеальный кандидат для этого. Вот как это сделать.

  1. Перейдите в панель управления Scaleway
  2. Перейдите в ‘Compute > Instances’, затем нажмите ‘Create an instance’
  3. Выберите предпочитаемую зону доступности
  4. Выберите образ. Для этого руководства мы будем использовать Ubuntu Server 20.04 Focal Fossa
  5. Выберите тип инстанса. Минимальные характеристики — 2 vCPUs, 8 GB of RAM, 50 GB of storage, иначе backend-сервисы OpenReplay просто не запустятся. Поэтому мы рекомендуем как минимум DEV1-L (или эквивалент), чего достаточно для низкого/умеренного объёма. Если вы ожидаете высокий трафик, вам следует масштабироваться от этого уровня.
  6. Добавьте тома: установите размер не менее 50 ГБ (локальное или блочное хранилище)
  7. Дайте вашему инстансу красивое имя (например, openreplay)
  8. SSH-ключи: убедитесь, что у вас уже есть ключ, связанный с вашим проектом, чтобы вы могли подключиться к инстансу
  9. Нажмите ‘Create a new instance’

Примечание: Порты SMTP (25, 465, 587) по умолчанию заблокированы Scaleway. Ваш инстанс OpenReplay не сможет отправлять электронные письма, пока вы не включите SMTP в настройках вашей группы безопасности. Чтобы сделать это, ознакомьтесь с этим кратким руководством.

Развёртывание OpenReplay

Section titled Развёртывание OpenReplay
  1. Убедитесь, что ваш инстанс находится в состоянии Started, затем подключитесь к нему:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem #! wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_INSTANCE_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY root@$INSTANCE_IP
  1. Установите OpenReplay, указав домен, на котором он будет работать (например, DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

OpenReplay работает с конфиденциальными данными пользователей и поэтому для работы требует HTTPS. Это обязательно, иначе трекер просто не начнёт запись. То же самое касается и панели управления: без HTTPS вы не сможете воспроизводить пользовательские сессии.

Поэтому вы должны предоставить (или сгенерировать) собственный SSL-сертификат.

  1. Сначала перейдите в ‘Network’ > ‘DNS’ (или к другому вашему провайдеру DNS-сервиса) и создайте A Record. Используйте домен, который вы ранее указали на этапе установки, и направьте его на инстанс по его публичному IP-адресу (его можно найти в ‘Compute’ > ‘Instances’).

  2. Если вы предоставляете собственный сертификат, создайте SSL-секрет с помощью следующей команды: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Примечание: Если у вас нет сертификата, сгенерируйте сертификат с автоматическим обновлением для вашего поддомена (того, что был указан во время установки) с помощью Let’s Encrypt. Просто подключитесь к инстансу OpenReplay, выполните cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh и следуйте инструкциям.

  1. Если вы хотите включить перенаправление с http на https (рекомендуется), раскомментируйте приведённый ниже блок в разделе ingress-nginx в файле /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Стоит отметить, что наш ingress-nginx по умолчанию работает на портах 80|443, но это при необходимости можно легко изменить в vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Наконец, переустановите NGINX OpenReplay:
openreplay -R

Всё готово, OpenReplay должен быть доступен на вашем поддомене. Вы можете создать учётную запись, посетив страницу /signup (например, openreplay.mycompany.com/signup).

Если вы столкнулись с какими-либо проблемами, подключайтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.