服务与路由
本页介绍 Kanera 堆栈运行什么、要公开哪些部分以及如何在它们前面放置反向代理。
读完后 快速入门 要在您的服务器上启用此功能,请在您的服务器上启用此功能。
部署形状
标准的 compose 文件运行以下服务:
| 服务 | 目 的 |
|---|---|
postgres | PostgreSQL 数据库中持久数据 kanera_pgdata. |
valkey | 实时扇区、存在和共享速率限制所需的 Valkey 实例。 |
migrate | 一次性数据库迁移服务,在应用程序服务启动之前运行。 |
api | 主要的Kanera API和实时服务器。 |
worker | 单一后台工作者用于调度器、webhook 交付、通知、清理和实时发件箱备份。 |
public-api | 公共集成 API。 |
mcp | MCP 由公共 API 支持的可流式传输 HTTP 服务器。 |
web | 构建了由 nginx 提供服务的 Kanera Web 应用程序。 |
db-backup | 可选加密的 PostgreSQL 备份调度器。 |
浏览器应该连接到 web 请勿将主机暴露在外面。 api 服务直接; web nginx 容器代理应用程序 API 和 Socket.IO 流量内部。
暴露 public-api 只有当您想要外部集成时才会这样。 mcp 仅当您希望远程 MCP 客户端通过 HTTP 连接时。
推荐域名
在全部三个应用程序都公开时,为应用程序、公共 API 和 MCP 使用单独的域:
| 域名 | 服务 | 使用 |
|---|---|---|
kanera.example.com | web | Kanera 网络应用程序。 |
api.kanera.example.com | public-api | REST API、webhook 和 API 参考。 |
mcp.kanera.example.com | mcp | 面向 AI 客户端的远程 MCP 端点。 |
公共 API 和 MCP 域是可选的,您可以仅从 Web 应用开始,然后稍后添加其他域。
发布端口
默认的编写文件会保持服务的隐私。 Docker 直接在服务器上,添加一个 compose.override.yml 文件:
services:
web:
ports:
- "8080:80"
public-api:
ports:
- "3001:3001"
mcp:
ports:
- "3002:3002"
然后将您的 HTTPS 反向代理指向:
| 公共URL | 上游 |
|---|---|
https://kanera.example.com | http://127.0.0.1:8080 |
https://api.kanera.example.com | http://127.0.0.1:3001 |
https://mcp.kanera.example.com | http://127.0.0.1:3002 |
只发布 public-api 以及 mcp 当你需要它们的时候。
信任代理设置
当 Kanera 处于受信任的反向代理(如 nginx、Traefik、Caddy)后面时,或在发送真实客户端 IP 的入侵时,设置这些:
API_TRUST_PROXY=true
PUBLIC_API_TRUST_PROXY=true
API_TRUST_PROXY 帮助应用身份验证速率限制使用真实客户端 IP。 PUBLIC_API_TRUST_PROXY 对于公共 API 速率限制也会执行相同的操作。
放开他们 false 只有当服务直接面向互联网或直接面向 Cloudflare 时。