Instalar AI Gateway
Elige una plataforma y conoce los servicios del stack de Docker Compose.
Ejecuta el gateway con Postgres y Redis. El repositorio incluye un stack de Docker Compose para desarrollo local, servidores Linux, Coolify, Portainer y Dokploy. El dashboard es un servicio independiente.
Elige tu plataforma
- Desarrollo local: ejecútelo en su máquina para el desarrollo.
- Coolify: implementa la stack de Compose en Coolify.
- Portainer: implementa la stack de Compose en Portainer.
- Dokploy: implementa la stack de Compose en Dokploy.
- Docker en un servidor Linux:
docker composesimple en cualquier host.
Topologías
La conexión del gateway con Postgres y Redis determina si necesitas TLS. Como el gateway se ejecuta en Bun, los certificados autofirmados pueden causar el problema de TLS descrito aquí.
| Topología | Conexión | TLS | Funciona en Bun |
|---|---|---|---|
| Compose (todo en uno): gateway + Postgres + Redis juntos | red interna de Docker | ninguno (texto sin formato) | ✅ recomendado |
| Base de datos administrada (Neon / Aiven / Upstash…) | internet | CA pública | ✅ |
| Base de datos autofirmada expuesta públicamente (puerto Coolify/Dokploy sin formato) | internet | autofirmado | ⚠️ puede fallar; consulta Solución de problemas |
Las guías usan por defecto la primera topología: el gateway se comunica con Postgres y Redis a través de la red privada de Compose, sin TLS. El aislamiento de red restringe el acceso y evita el problema de certificados de Bun.
Archivos de Compose
docker/compose.yamles la base de producción. Expone servicios a la red privada sin publicar puertos de host.docker/compose.local.yamlagrega asignaciones de host de solo loopback para desarrollo local o un proxy inverso de host. Cárguelo explícitamente; no lo agrega a un deployment de PaaS de producción.
Servicios del stack
El repositorio incluye un docker/compose.yaml que muestra toda el stack:
- postgres (
postgres:18-alpine) y redis (redis:8-alpine), con comprobaciones de estado y volúmenes con nombre (pgdata,redisdata). - migrate: ejecuta las migraciones SQL y finaliza; el gateway espera a que termine. Si el panel de la PaaS ofrece asignarle un dominio, deja ese campo vacío.
- gateway (
:4000internamente): construido a partir deapps/api/Dockerfile. - dashboard (
:3001internamente): interfaz opcional para operadores, desactivada salvo queDASH_ENABLEDsea verdadero. Tiene su propio dominio y se conecta al gateway medianteGATEWAY_URL. El gateway no necesita configuración adicional ni tiene que ser público. Consulta Dashboard → Servicio.
Coolify y Dokploy usan solo docker/compose.yaml y conectan su proxy a la red privada. Para desarrollo local o un reverse proxy en el host, añade explícitamente el archivo de configuración local:
git clone https://github.com/boelabs/ai-gateway.git && cd ai-gateway
MASTER_KEY=$(openssl rand -base64 48) \
ENCRYPTION_KEY_HEX=$(openssl rand -hex 32) \
docker compose -f docker/compose.yaml -f docker/compose.local.yaml up -ddocker/compose.local.yaml proporciona valores conocidos solo para desarrollo. La configuración de producción deja ambos secretos vacíos: el gateway no arranca hasta que los configures. En Coolify, Portainer o Dokploy, introdúcelos en la interfaz. Por defecto, DATABASE_URL y REDIS_URL apuntan a los servicios internos postgres/redis sin TLS; cámbialos si usas instancias administradas. Consulta Configuración inicial.
Asigna dominios solo a los servicios gateway y dashboard que desees exponer. Mantén Postgres, Redis y el trabajo único migrate interno. La base de Compose de producción aplica esto al no publicar puertos de host.