Развёртывание на Digital Ocean

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

Развёртывание на Digital Ocean

Стек OpenReplay можно установить на одной машине (droplet), и Digital Ocean является идеальным кандидатом для этого. Вот как это сделать.

  1. Создайте новый проект (если вы ещё этого не сделали), затем перейдите в него и нажмите ‘Create’ droplet
  2. Выберите образ Ubuntu Server 22.04 LTS
  3. Выберите ‘Shared CPU’ и план Regular Intel | 4 CPUs | 8GB (архитектура x86). Это минимальные характеристики, иначе серверные службы OpenReplay просто не запустятся. Их достаточно для умеренного объёма, но если вы ожидаете высокий трафик, вам следует масштабироваться выше этого уровня.
  4. Нажмите ‘New SSH key’ в разделе ‘Authentication’ и следуйте инструкциям для создания ключа
  5. Дайте имя вашей машине, затем нажмите ‘Create droplet’

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

Section titled Развёртывание OpenReplay
  1. Убедитесь, что ваш droplet находится в состоянии active, затем подключитесь к нему:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem ## wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_DROPLET_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. Сначала перейдите в ‘Manage’ > ‘Networking’ > ‘Domains’ (или к вашему другому поставщику услуг DNS) и создайте A Record. Используйте домен, который вы указали ранее на этапе установки, и направьте его на droplet с помощью его публичного IP (его можно найти на вкладке Droplets).

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

Примечание: Если у вас нет сертификата, сгенерируйте его, с автоматическим продлением, для вашего поддомена (того, что был указан во время установки), используя Let’s Encrypt. Просто подключитесь к droplet 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).

Примечание: Вы также можете запустить OpenReplay за существующим балансировщиком нагрузки. В этом случае настройте SSL на уровне балансировщика (LB):

  • В правилах перенаправления (Load Balancer): выберите HTTPS (443) в разделе Load Balancer, затем нажмите ‘Certificate’ > ‘Add a new certificate’. Если ваш домен управляется Digital Ocean, вы можете следовать инструкциям в опции Let’s Encrypt. В противном случае вы должны импортировать собственный сертификат.
  • В правилах перенаправления (Droplet): выберите HTTP (80) в разделе Droplet.

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