单机 Docker 生产部署
适用于Alpha
这条路径在一台 Linux 服务器上运行 OpenRUM 和四个数据服务。它与本地开发使用的 Compose 配置分离:不生成演示数据,使用 APP_ENV=production,强制设置私有凭据,不开放数据库端口,并由 Caddy 自动配置 HTTPS。需要多节点应用服务或计划扩容时,Kubernetes/Helm仍是推荐路径。
-
准备服务器和域名
Section titled “准备服务器和域名”在 Linux 服务器安装 Docker Engine 和 Compose v2,并按预期事件量和保留期准备 CPU、内存、SSD;请先做容量规划,不要把某台示例机器的规格当成保证。将公网域名解析到服务器,开放入站 TCP
80/443与 UDP443。Caddy 会申请和续期证书,不需要安装 Traefik。限制 SSH 访问,并准备加密的异机备份位置。完成标志:
docker info、docker compose version和域名解析正常;80、443没被占用。证书签发需要公网可达,详见 Caddy 的 HTTPS 前提。 -
固定代码版本并设置密钥
Section titled “固定代码版本并设置密钥”获取仓库,切换到经过检查的发行标签或提交,不要直接部署随时变化的分支。进入仓库根目录后执行:
终端窗口 # 复制环境变量模板;之后只编辑这个私有文件cp deploy/compose/.env.production.example deploy/compose/.env.production# 只允许当前用户读写,因为里面有密码chmod 600 deploy/compose/.env.production# 生成一个随机密钥;这条要执行三次,结果分别填给三个变量openssl rand -hex 24最后一条命令分别执行三次,将三个独立结果填入
.env.production的POSTGRES_PASSWORD、CLICKHOUSE_PASSWORD和BOOTSTRAP_TOKEN。将OPENRUM_DOMAIN填为公网域名,OPENRUM_IMAGE设为标识当前代码版本的标签,例如openrum-production:0.1.0。密码采用十六进制,避免放入内部数据库 DSN 时产生 URL 编码问题。不要提交或发送此文件;把它的加密副本与 Docker 卷分开保存。如果
172.30.77.0/24与宿主机网络冲突,需同时修改OPENRUM_EDGE_SUBNET和其中的OPENRUM_EDGE_IP。Ingest 只信任这个 Caddy 地址提供的客户端 IP,用于限流。其他变量都有默认值。完整列表见 Docker 配置,其中包括可选的 Source Map 存储和磁盘压力设置。
-
构建并检查配置
Section titled “构建并检查配置”终端窗口 # 校验 Compose 配置和环境变量;必填项为空会在这里报错,成功时没有任何输出docker compose --env-file deploy/compose/.env.production \-f deploy/compose/production.compose.yml config --quiet# 构建应用镜像,API、Ingest、Consumer、Worker、Web 和迁移程序共用它docker compose --env-file deploy/compose/.env.production \-f deploy/compose/production.compose.yml build migrate构建结果是供 API、Ingest、Consumer、Worker、Web 和迁移程序共用的镜像;其他服务不会隐式拉取未知的应用镜像。构建前检查可用磁盘空间。若由镜像仓库交付,先把经过检查的镜像以
OPENRUM_IMAGE指定的精确标签加载到本机。 -
终端窗口 # 在后台启动整套服务,并等到所有服务都健康才返回docker compose --env-file deploy/compose/.env.production \-f deploy/compose/production.compose.yml up -d --wait# 通过公网域名检查服务是否就绪;把域名换成你自己的curl --fail https://rum.example.com/health/ready将示例域名换成自己的。一次性的
migrate、kafka-init应成功结束;应用与四个数据服务应处于健康状态。宿主机只有 Caddy 开放端口。TLS 检查失败时先看edge日志、DNS 和80/443,不要绕过浏览器证书警告。 -
创建管理员并验证真实事件
Section titled “创建管理员并验证真实事件”打开
https://<你的域名>/setup,填写组织、管理员信息和私有环境文件中的BOOTSTRAP_TOKEN。创建首位用户后,初始化入口会关闭。随后创建项目、放行应用 Origin、使用 DSN 接入 SDK,并在 Console 确认一条测试事件。生产配置没有演示账号或自动生成的测试数据。接入真实流量前,请在替换服务器上完成备份与恢复演练,并监控磁盘压力和 Kafka 积压。
Release Alpha · commit local