自托管的数据分析 Agent。上传 CSV、Excel、Stata 等数据后,可以通过自然语言完成数据概览、统计分析、可视化与数据清洗。
- 数据集导入、预览与管理
- 自然语言分析与数据清洗
- 图表、表格、异常检测等结果展示
- 分析历史记录
- 多个 OpenAI-compatible LLM 供应商、自定义模型渠道与轮询
- 邮箱密码 + OTP 登录
- 多用户数据隔离
- 独立管理员页面(SMTP / LLM)
- Docker 自托管部署
- 前端:Next.js + React + TypeScript
- 后端:Hono
- 数据库:PostgreSQL + Prisma
- 部署:Docker Compose
Linux 服务器直接运行:
curl -fsSL https://raw.githubusercontent.com/PaiMonCai/data-agent/main/install.sh | sudo bash安装器会交互完成:
- Docker / Docker Compose v2 检查;缺失时可选择自动安装
- 安装目录、访问端口与
APP_ORIGIN - HTTPS 反向代理模式或直接 HTTP 模式
- 首次管理员邮箱与密码(密码可留空自动生成)
SESSION_SECRET与SYSTEM_CONFIG_ENCRYPTION_KEY- 可选的 OpenAI-compatible LLM fallback;也可以安装后在
/admin配置 - PostgreSQL 数据库接入
- Compose 启动与
/api/health健康检查 - 管理员 bootstrap 成功后清除部署文件和运行容器中的明文 bootstrap 密码
数据库有三种模式:
- 内置 PostgreSQL 17:推荐全新部署,使用独立 Docker volume。
- 宿主机 PostgreSQL:自动检测系统 PostgreSQL 或 1Panel / Docker PostgreSQL。容器数据库会自动建库、建用户并接入专用
data-agent-db-link网络;系统 PostgreSQL 会优先尝试host.docker.internal,无法直连时启用仅 Docker 网关可见的安全代理。 - 外部 PostgreSQL:输入完整
DATABASE_URL,支持远程数据库和 SSL 参数。
如果重新连接已有 Data Agent 数据库,请复用原来的 SYSTEM_CONFIG_ENCRYPTION_KEY,否则数据库里已经保存的 SMTP / LLM 密钥无法解密。
也可以继续使用仓库原有 Compose:
cp .env.example .env至少配置:
POSTGRES_PASSWORD=replace-with-a-long-random-password
SESSION_SECRET=replace-with-at-least-32-random-characters
BOOTSTRAP_ADMIN_EMAIL=[email protected]
BOOTSTRAP_ADMIN_PASSWORD=replace-with-a-strong-admin-password
SYSTEM_CONFIG_ENCRYPTION_KEY=replace-with-a-long-random-secret
LLM_BASE_URL=https://api.example.com/v1
LLM_API_KEY=your-key然后启动:
docker compose pull
docker compose up -d默认访问:
http://服务器IP:3000
管理员登录后可以从主界面进入:
/admin/
管理中心用于配置:
- SMTP 邮件服务
- OpenAI-compatible LLM 供应商
- Provider Base URL / API Key
- 每个 Provider 的模型渠道开关
- 前端逻辑模型名 → 上游真实模型名映射
- 同一逻辑模型的多渠道 Round Robin 轮询
- 从
/models自动导入上游模型
LLM 与 SMTP 配置保存后立即生效,不需要重启容器。LLM API Key 与 SMTP 密码均使用 SYSTEM_CONFIG_ENCRYPTION_KEY 加密保存。
例如可以把两个渠道:
OpenAI : gpt-5.6
NewAPI : gpt-5.6-2026
都映射成前端的 gpt-5.6。用户只会看到一个 gpt-5.6,后端按请求在所有启用渠道之间 Round Robin 轮询。管理员可以单独关闭任意渠道;只剩一个启用渠道时,该逻辑模型自然固定走这一路。
如果后台还没有保存 LLM 配置,系统继续使用 LLM_BASE_URL、LLM_API_KEY、LLM_MODELS 环境变量作为兼容 fallback。
首次部署不需要提前配置 SMTP。
应用发现数据库里没有管理员时,会使用:
BOOTSTRAP_ADMIN_EMAIL
BOOTSTRAP_ADMIN_PASSWORD创建管理员。之后直接使用管理员邮箱和密码登录,在:
/admin/ → 邮件服务
中配置 SMTP,并发送测试邮件。
SMTP 保存后立即生效,不需要重启容器。
管理员创建成功后,可以从 .env 删除:
BOOTSTRAP_ADMIN_EMAIL
BOOTSTRAP_ADMIN_PASSWORDSYSTEM_CONFIG_ENCRYPTION_KEY 用于加密 SMTP 密码,投入使用后不要随意更换。
Data Agent 使用 Prisma Migration。更新镜像并重新启动后会自动执行数据库迁移,不需要删除 PostgreSQL volume。
升级前建议备份数据库。
正式部署建议设置:
APP_ORIGIN=https://data.example.com
COOKIE_SECURE=true并在前面使用 Nginx、OpenResty、Caddy 或 Cloudflare 提供 HTTPS。
前端:
cd frontend
npm ci
npm run dev后端:
cd server
cp .env.example .env
npm ci
npm run migrate:dev
npm run dev更多细节见: