api.happy-next.com 上的托管服务。这让你完全掌控自己的数据和基础设施。
Happy 支持两种模式:
- 托管(默认) — 客户端开箱即用地使用
https://api.happy-next.com - 自托管 — 使用 Docker Compose 运行你自己的
happy-server、happy-voice和支持服务
环境要求
- Docker + Docker Compose
- LiveKit 部署(未包含在
docker-compose.yml中)— 用于语音功能- 你需要
LIVEKIT_URL、LIVEKIT_WS_URL、LIVEKIT_API_KEY、LIVEKIT_API_SECRET
- 你需要
- 语音提供商的 API 密钥(如果使用语音功能)
OPENAI_API_KEY、CARTESIA_API_KEY
快速开始
- 克隆仓库:
- 创建环境配置文件:
-
编辑
.env并填写必需的值。至少需要:HANDY_MASTER_SECRET— 生成一个 64 个字符以上的随机字符串POSTGRES_*— 数据库凭据S3_*— 或使用 MinIO 默认配置LIVEKIT_*+ 语音 API 密钥 — 如果使用语音功能
- 启动服务栈:
- 应用数据库迁移(仅首次运行需要):
- 创建 MinIO 存储桶并设置为公开访问(仅首次运行需要):
- 在
http://localhost:3030打开 Web 应用。
服务
Docker Compose 服务栈包含:| 服务 | 端口 | 描述 |
|---|---|---|
happy-app | 3030 | Web 应用(Nginx) |
happy-server | 3031 | API 服务器(Node.js) |
happy-voice | 3040 | 语音网关(Node.js) |
minio | 3050 | S3 兼容文件存储 |
postgres | 5432 | 数据库 |
redis | 6379 | 缓存和 Socket.IO 适配器 |
连接 CLI
CLI 默认连接托管 API。对于自托管,设置环境变量:连接移动应用
- 开发构建: 启动 Expo 时设置
EXPO_PUBLIC_HAPPY_SERVER_URL,或使用应用内的服务器设置界面 - 生产构建: 使用应用内的服务器设置界面设置自定义服务器 URL
S3 / MinIO 说明
S3_PUBLIC_URL 必须可被客户端(浏览器和移动端)访问,而不仅仅是 Docker 容器。
- 本地: MinIO 在
http://localhost:3050暴露,因此S3_PUBLIC_URL=http://localhost:3050可以使用 - 远程: 使用真实的 S3 兼容端点,并配置与你的 TLS/主机设置匹配的公共 URL
远程访问
如果从其他设备(局域网或互联网)访问,请避免硬编码localhost URL:
- 将 Web 应用、API 和语音网关放在带 TLS 的域名后面
- 将
EXPO_PUBLIC_HAPPY_SERVER_URL和EXPO_PUBLIC_VOICE_BASE_URL设置为这些公共来源 - 将
APP_URL设置为你的 Web 来源