Services et routage
Cette page explique ce que la pile Kanera exécute, les parties à exposer et comment placer un proxy inverse devant elles.
Lisez-le après Commencer un déploiement est en cours, ou avant de commencer si vous souhaitez d'abord planifier les domaines.
Forme de déploiement
Le fichier de composition standard exécute ces services :
| Service | Objectif |
|---|---|
postgres | Base de données PostgreSQL avec données persistantes dans kanera_pgdata. |
valkey | Instance Valkey requise pour la diffusion en temps réel, la présence et les limites de débit partagé. |
migrate | Service de migration de base de données unique qui s'exécute avant le démarrage des services d'application. |
api | API principale Kanera et serveur en temps réel. |
worker | Travailleur en arrière-plan unique pour les planificateurs, la livraison de webhooks, les notifications, le nettoyage et le repli de la boîte d'envoi en temps réel. |
public-api | API d'intégration publique. |
mcp | Serveur HTTP MCP Streamable soutenu par l'API publique. |
web | Création de l'application Web Kanera servie par nginx. |
db-backup | Planificateur de sauvegarde PostgreSQL chiffré en option. |
Le navigateur doit se connecter au web service. N'exposez pas le principal api servir directement ; le web L'API de l'application proxy du conteneur nginx et le trafic Socket.IO en interne.
Exposer public-api seulement si vous souhaitez des intégrations externes. Exposer mcp uniquement si vous souhaitez que les clients MCP distants se connectent via HTTP.
Domaines recommandés
Utilisez des domaines distincts pour l'application, l'API publique et MCP lorsque vous exposez les trois :
| Domaine | Service | Utiliser |
|---|---|---|
kanera.example.com | web | L'application Web Kanera. |
api.kanera.example.com | public-api | API REST, webhooks et référence API. |
mcp.kanera.example.com | mcp | Point de terminaison MCP distant pour les clients IA. |
Les domaines publics API et MCP sont facultatifs. Vous pouvez commencer avec uniquement l'application Web et ajouter les autres plus tard.
Publier des ports
Le fichier de composition par défaut maintient les services privés. Si vous exécutez Docker directement sur un serveur, ajoutez un compose.override.yml fichier :
services:
web:
ports:
- "8080:80"
public-api:
ports:
- "3001:3001"
mcp:
ports:
- "3002:3002"
Pointez ensuite votre proxy inverse HTTPS vers :
| URL publique | En amont |
|---|---|
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 |
Publier uniquement public-api et mcp quand vous en avez besoin.
Paramètres du proxy de confiance
Définissez-les lorsque Kanera se trouve derrière un proxy inverse de confiance tel que nginx, Traefik, Caddy ou une entrée qui envoie l'adresse IP réelle du client :
API_TRUST_PROXY=true
PUBLIC_API_TRUST_PROXY=true
API_TRUST_PROXY aide les limites de taux d'authentification des applications à utiliser l'adresse IP réelle du client. PUBLIC_API_TRUST_PROXY fait de même pour les limites de débit de l'API publique.
Laissez-les false uniquement lorsque le service est directement accessible sur Internet ou directement sur Cloudflare.