部署到 Digital Ocean
OpenReplay 技术栈可以安装在单台机器(droplet)上,而 Digital Ocean 是一个理想的选择。下面介绍具体操作方法。
创建 droplet
Section titled 创建 droplet- 创建一个新项目(如果你还没有创建),然后进入该项目并点击 ‘Create’ droplet
- 选择 Ubuntu Server 24.04 LTS 镜像
- 选择 ‘Shared CPU’,并挑选
Regular Intel | 4 CPUs | 8GB套餐(x86 架构)。这是最低配置,否则 OpenReplay 的后端服务根本无法启动。这些配置足以应对中等流量,但如果你预计会有高流量,则应在此基础上进行扩容。 - 在 ‘Authentication’ 中点击 ‘New SSH key’,并按照说明生成密钥
- 为你的机器命名,然后点击 ‘Create droplet’
部署 OpenReplay
Section titled 部署 OpenReplay- 确保你的 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
- 通过提供 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
配置 TLS/SSL
Section titled 配置 TLS/SSLOpenReplay 处理敏感的用户数据,因此需要 HTTPS 才能运行。这是强制性的,否则 tracker 根本不会开始录制。仪表盘也是如此,没有 HTTPS,你将无法回放用户会话。
因此,你必须生成(或自带)你自己的 SSL 证书。
-
首先,前往 ‘Manage’ > ‘Networking’ > ‘Domains’(或你的其他 DNS 服务提供商),并创建一条
A Record。使用你之前在安装步骤中提供的域名,并使用 droplet 的公网 IP 将其指向该 droplet(公网 IP 可在 Droplets 选项卡中找到)。 -
如果你要自带证书,请使用以下命令创建一个 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并按照步骤操作即可。
- 如果你希望启用 http 到 https 的重定向(推荐),请在
/var/lib/openreplay/vars.yaml中ingress-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
- 最后,重新安装 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)。