跳转到内容

部署概览

本页介绍运行和自托管 Chorus 的几种受支持形态,列出每种形态的前置条件,帮助你做出选择。选定 之后,使用 Docker 部署、在本机自托管、 生产环境部署和运维自托管的 Chorus 这几篇指南会带你走完剩下的路。

同一套 Chorus 应用有本地和生产两种运行形态,区别在于数据存放在哪里、由多少人使用。

单台机器上的单个进程,供单个用户使用。Chorus 内置了嵌入式 PostgreSQL 数据库 (PGlite),因此无需另外安装任何外部组件:命令会自行创建数据库、执行 迁移,并在 8637 端口提供 Web 应用。这是试用 Chorus 最快的方式,也是个人本地使用的合适 选择。

快速开始指南完整演示了这条路径:安装全局包、设置管理员账号并 登录。本页不再重复这些步骤。

你也可以把本地形态作为独立容器运行在 Docker 中:同样使用内置数据库,数据保存在 Docker 卷中。参见独立(内置数据库)。

在你自己的 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 栈上(参见 生产环境部署)。

托管本地账号保存在数据库中,不通过 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:首次登录引导、部署侧的身份认证配置、自动迁移, 以及升级前的备份。