サービスとルーティング
このページでは、Kanera スタックの実行内容、公開する部分、およびその前にリバース プロキシを配置する方法について説明します。
後で読んでください はじめに デプロイメントが実行中であるか、最初にドメインを計画する場合は開始前です。
展開形状
標準の構成ファイルは次のサービスを実行します。
| サービス | 目的 |
|---|---|
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 の 3 つすべてを公開する場合は、それぞれに別のドメインを使用します。
| ドメイン | サービス | 使用する |
|---|---|---|
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 を送信する Ingress の背後にある場合は、これらを設定します。
API_TRUST_PROXY=true
PUBLIC_API_TRUST_PROXY=true
API_TRUST_PROXY アプリの認証レート制限が実際のクライアント IP を使用するのに役立ちます。 PUBLIC_API_TRUST_PROXY パブリック API レート制限についても同様です。
放っておいてください false サービスがインターネットに直接接続されている場合、または Cloudflare に直接接続されている場合のみ。