部署到 Digital Ocean

在 Digital Ocean 上部署 OpenReplay 的分步指南。

部署到 Digital Ocean

OpenReplay 技术栈可以安装在单台机器(droplet)上,而 Digital Ocean 是一个理想的选择。以下是具体操作方法。

  1. 创建一个新项目(如果你还没有创建的话),然后进入该项目并点击 ‘Create’ droplet
  2. 选择 Ubuntu Server 20.04 LTS 镜像
  3. 选择 ‘Shared CPU’ 并选取 Regular Intel | 4 CPUs | 8GB 套餐。这些是最低配置,否则 OpenReplay 后端服务根本无法启动。它们足以应对中等流量,但如果你预计会有高流量,则应从此基础上进行扩容。
  4. 在 ‘Authentication’ 中点击 ‘New SSH key’,并按照说明生成一个密钥
  5. 为你的机器命名,然后点击 ‘Create droplet’
  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 才能运行。这是强制要求,否则 tracker 根本不会开始录制。仪表盘也是如此,没有 HTTPS,你将无法回放用户会话。

因此,你必须生成(或自带)你自己的 SSL 证书。

  1. 首先,前往 ‘Manage’ > ‘Networking’ > ‘Domains’(或你的其他 DNS 服务提供商)并创建一个 A Record。使用你之前在安装步骤中提供的域名,并将其指向 droplet 的公共 IP(可在 Droplets 选项卡中找到)。

  2. 如果你要自带证书,请使用以下命令创建一个 SSL secret:kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt"

注意: 如果你没有证书,可以使用 Let’s Encrypt 为你的子域名(即安装期间提供的那个)生成一个可自动续期的证书。只需连接到 OpenReplay droplet,运行 cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh 并按照步骤操作即可。

  1. 如果你希望启用 http 到 https 的重定向(推荐),请取消注释 /var/lib/openreplay/vars.yamlingress-nginx 部分下方的以下代码块:
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. 最后,重新安装 OpenReplay 的 NGINX:
openreplay -R

现在一切就绪,OpenReplay 应该可以通过你的子域名访问了。你可以访问 /signup 页面(即 openreplay.mycompany.com/signup)来创建账户。

注意: 你也可以在现有的负载均衡器后面运行 OpenReplay。如果是这种情况,则在 LB 层级配置你的 SSL:

  • 在 Forwarding rules (Load Balancer) 中:在 Load Balancer 部分选择 HTTPS (443),然后点击 ‘Certificate’ > ‘Add a new certificate’。如果你的域名由 Digital Ocean 管理,那么你可以按照 Let’s Encrypt 选项中的说明操作。否则,你必须导入你自己的证书。
  • 在 Forwarding rules (Droplet) 中:在 Droplet 部分选择 HTTP (80)。

如果你遇到任何问题,请加入我们的 Slack 或查看我们的论坛,从我们的社区获得帮助。