部署概览
本页介绍运行和自托管 Chorus 的几种受支持形态,列出每种形态的前置条件,帮助你做出选择。选定 之后,使用 Docker 部署、在本机自托管、 生产环境部署和运维自托管的 Chorus 这几篇指南会带你走完剩下的路。
同一套 Chorus 应用有本地和生产两种运行形态,区别在于数据存放在哪里、由多少人使用。
单台机器上的单个进程,供单个用户使用。Chorus 内置了嵌入式 PostgreSQL 数据库
(PGlite),因此无需另外安装任何外部组件:命令会自行创建数据库、执行
迁移,并在 8637 端口提供 Web 应用。这是试用 Chorus 最快的方式,也是个人本地使用的合适
选择。
快速开始指南完整演示了这条路径:安装全局包、设置管理员账号并 登录。本页不再重复这些步骤。
你也可以把本地形态作为独立容器运行在 Docker 中:同样使用内置数据库,数据保存在 Docker 卷中。参见独立(内置数据库)。
单主机自托管
Section titled “单主机自托管”在你自己的 Linux 或 macOS 主机上长期运行的实例,用 Docker Compose 中真正的 PostgreSQL 17
数据库取代内置数据库。Chorus 0.22.2 及以后用 bash install.sh --target local 完成安装:安装器
拉取或编译应用镜像、写入受保护的账号配置,并保存一个用于可重复重新部署的包装脚本。应用可通过
局域网 HTTP 访问,并可选启用自签名局域网 HTTPS 或 Cloudflare Named Tunnel。这是不带 Redis 的
单实例部署。参见在本机自托管。
面向团队的共享部署,后端由你自行管理和备份的外部 PostgreSQL 数据库支撑(仓库中的 Compose 文件默认使用 PostgreSQL 17),并由一个或多个应用实例对外提供服务。Redis 7 在单实例下可选,运行多个实例时则必需,因为各 实例之间要通过 Redis 相互传播实时更新(Server-Sent Events)。没有 Redis 时,Chorus 会 回退到内存事件机制,而它只在单实例下有效。
Redis 通过独立连接提供跨实例 SSE 和共享认证计数器。非空 REDIS_URL 优先;否则 REDIS_HOST 使用 TLS(rediss),端口默认 6379、用户名默认 default,用户名在提供 REDIS_PASSWORD 时使用。非 TLS Redis 应显式使用 redis://。只有 URL 和 host 均未配置时,事件和限流才完全留在进程内。Redis 故障会启用每进程备用限流,不再共享额度,也不会阻止全部登录;意外的限流器错误可能放行。具体限制和恢复行为参见共享认证限流。
生产形态可以以容器方式运行(参见使用 Docker 部署)、以全局 npm 包方式对接你自己的 PostgreSQL 与 Redis,或运行在随附的 AWS CDK 栈上(参见 生产环境部署)。
独立选择账号管理方式
Section titled “独立选择账号管理方式”托管本地账号保存在数据库中,不通过 DEFAULT_USER / DEFAULT_PASSWORD 配置。向应用注入 SUPER_ADMIN_EMAIL 和 SUPER_ADMIN_PASSWORD_HASH,再从管理面板创建本地账号工作区并邀请首位工作区管理员。无需身份提供商或邮件服务。同一工作区的本地账号与 OIDC 互斥,已有工作区不可转换。持久化 NEXTAUTH_SECRET 并在所有副本间共享;共享访问使用 HTTPS 和 COOKIE_SECURE=true。设置账号以及如何只关闭旧版 Default Auth 参见运维指南。
- Node.js 22 或更高版本:Chorus 面向 Node.js 22 运行时(Docker 镜像基于
node:22-alpine构建)。 8637端口:应用在此端口监听。请将该端口发布或反向代理出去,以访问 UI 和 MCP 端点。- 数据库:本地形态无需准备任何数据库(内置 PGlite)。生产形态需要一个可通过连接字符串 访问的外部 PostgreSQL 数据库。仓库中的 Compose 文件和自托管栈默认使用 PostgreSQL 17; 已有的 PostgreSQL 16 数据卷必须先迁移才能切换(参见 在本机自托管)。
- 缓存:单实例无需缓存。多实例生产部署需要一个用于跨实例事件传播的 Redis 7 端点。
| 如果你想…… | 选择 | 数据库 | 缓存 |
|---|---|---|---|
| 试用 Chorus,或在一台机器上独自使用 | 本地单机 | 内置 PGlite | 无 |
| 以最少的组件运行一个共享实例 | 独立容器中的本地形态 | 内置 PGlite(存于卷中) | 无 |
| 在自己的主机上长期运行、局域网可访问 | 单主机自托管(install.sh --target local) | PostgreSQL 17(在 Compose 中) | 无 |
| 运行共享、可靠或多实例的部署 | 生产(Docker、npm 或 AWS CDK) | 外部 PostgreSQL(默认 17) | Redis 7(2 个及以上实例时必需) |
- 使用 Docker 部署:发布的
chorusaidlc/chorus-app镜像、独立与生产两种 Compose 文件、docker run示例、完整的环境变量参考,以及启动行为。 - 在本机自托管:
install.sh本地安装、重新部署包装脚本、可选的 自签名局域网 HTTPS 或 Cloudflare Tunnel,以及 PostgreSQL 16 到 17 的迁移。 - 生产环境部署:对接你自己的 PostgreSQL 与 Redis、多实例 要求,以及完整的 AWS CDK 演练。
- 运维自托管的 Chorus:首次登录引导、部署侧的身份认证配置、自动迁移, 以及升级前的备份。