服務與路由
本頁介紹 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 時。