部署到 Digital Ocean

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

部署到 Digital Ocean

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

  1. 创建一个新项目(如果你还没有创建),然后进入该项目并点击 ‘Create’ droplet
  2. 选择 Ubuntu Server 24.04 LTS 镜像
  3. 选择 ‘Shared CPU’,并挑选 Regular Intel | 4 CPUs | 8GB 套餐(x86 架构)。这是最低配置,否则 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 将其指向该 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:

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

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