安装
方式 A:Docker(推荐快速试用)
git clone git@github.com:pipihosting/themis.git
cd themis
cp .env.example .env # 填写 RAILS_MASTER_KEY 和 ANTHROPIC_API_KEY
docker compose up
访问 http://localhost:3000 并使用已种子化的管理员帐号 admin@themis.local / password123 登录。
docker compose up 启动两个服务 —— db(Postgres 16)和 app(Rails 开发镜像)。app 容器通过绑定挂载代码目录,因此代码修改会实时重新加载;gem 和 Postgres 数据保存在命名卷中,重启后依然保留。MCP 服务器(GitHub、Sentry、Google Workspace)不包含在镜像内 —— 不使用 MCP 的流程智能体仍可工作,如需使用请按下方步骤单独安装。
方式 B:原生
前置条件
- Ruby 3.4.7(使用 mise 或 rbenv)
- PostgreSQL 14+
- Node.js 20+(用于 MCP 服务器和资产管道)
- Go(用于 GitHub MCP 服务器)
克隆和设置
git clone git@github.com:pipihosting/themis.git
cd themis
bin/setup
bin/setup 会自动安装 gem、创建数据库、运行迁移并启动开发服务器。
环境变量
将 .env.example 复制为 .env(或 .env.local)并填入:
POSTGRES_HOST=localhost
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=your_password
完整变量列表(包括可选的机器人身份覆盖和 Anthropic 代理设置)请参考 .env.example。
Rails 凭据
Themis 将 API 密钥存储在 Rails 加密凭据中:
bin/rails credentials:edit
添加您的 Anthropic API 密钥(必需)和可选集成:
themis:
anthropic_api_key: sk-ant-xxx
# 可选 — 用于 Google OAuth 登录
google_oauth:
client_id: xxx
client_secret: xxx
# 可选 — 用于一级轻量智能体
openai_api_key: sk-xxx
安装 MCP 服务器
Themis 使用 MCP(模型上下文协议)服务器将智能体连接到外部服务:
# Sentry(可选)
npm install -g @sentry/mcp-server
# Google Workspace(可选)
pip install workspace-mcp
GitHub 通过专用的 GitHub App 接入,不使用 MCP 服务器 —— 注册与安装步骤见 admin/github-app.md。
Linear MCP 由 Linear 托管在 https://mcp.linear.app/mcp —— 无需本地安装。
启动服务器
bin/dev
这将启动:
| 进程 | 端口 | 描述 |
|---|---|---|
| Rails | 3000 | Web 应用 |
| Tailwind | — | CSS 监视器 |
| Solid Queue | — | 后台任务 |
| Google Workspace MCP | 10299 | Drive + Calendar + Gmail 集成(如已安装) |
| Jekyll docs | 4000 | 文档网站 |
访问 http://localhost:3000 开始使用。
种子数据(开发环境)
bin/setup 和 docker compose up 都会在首次启动时执行 db:prepare,并创建一个管理员用户:
| 邮箱 | 密码 | 角色 |
|---|---|---|
admin@themis.local | password123 | 管理员,共享”Default”空间的所有者 |
当 ALLOW_PASSWORD_LOGIN=true(docker-compose.yml 默认值)时,登录页会显示邮箱/密码登录表单。在原生开发环境中,如果你希望无需配置 Google OAuth 就能登录,请在 .env 中启用该变量。种子源码参见 db/seeds/default.rb。