Docker Compose
El repositorio incluye una pila lista para usar en infra/docker/compose.yaml. Es la forma más rápida de obtener una instancia funcional en un único host.
Servicios
| Servicio | Qué es | Puertos |
|---|---|---|
| db | PostgreSQL 16 — el plano de control y el plano de diagramas por defecto | interno |
| app | El servidor: API tRPC + REST /api/v1 + el websocket de Hocuspocus | HTTP 8787, WS 8788 |
| web | La SPA, servida tras nginx | http://localhost:8080 |
Inicio rápido
docker compose -f infra/docker/compose.yaml up
Abre http://localhost:8080 y tendrás un EntityFlow de host único completamente funcional, con ambos planos alojados en el PostgreSQL incluido.
Reapuntar el plano de diagramas
Para almacenar los diagramas en tu propia base de datos, define EF_DIAGRAM_DB_URL. Cuando el plano de diagramas no sea PostgreSQL, también debes definir EF_CONTROL_DB_URL apuntando a una instancia de PostgreSQL para el plano de control:
# Plano de diagramas en tu propio Postgres (el plano de control lo comparte)
export EF_DIAGRAM_DB_URL="postgres://user:pass@db.internal:5432/entityflow"
# Plano de diagramas en MySQL — el plano de control debe seguir siendo Postgres
export EF_DIAGRAM_DB_URL="mysql://user:pass@mysql.internal:3306/entityflow"
export EF_CONTROL_DB_URL="postgres://user:pass@pg.internal:5432/ef_control"
docker compose -f infra/docker/compose.yaml up
Consulta Usa tu propia base de datos para ver la lista completa de motores compatibles y los esquemas de cadena de conexión.
Aspectos esenciales para producción
Para cualquier uso más allá de la evaluación local, define un secreto de autenticación robusto:
export EF_AUTH_SECRET="$(openssl rand -base64 48)"
docker compose -f infra/docker/compose.yaml up -d
EF_AUTH_SECRET (32 caracteres o más) debe estar definido para cualquier despliegue no local. Sin él, las sesiones no son seguras.
Como el inicio de sesión es sin contraseña, las personas solo pueden iniciar sesión cuando la instancia puede enviar correo electrónico: apúntala a tu servidor SMTP (o a Resend o Mailjet):
export EF_MAIL_FROM="entityflow@acme.com"
export EF_SMTP_HOST="smtp.acme.com"
export EF_SMTP_USER="entityflow"
export EF_SMTP_PASSWORD="<smtp-password>"
Consulta Configuración → Correo electrónico para ver todas las variables de correo electrónico. En una instancia de evaluación local, EF_MAIL_PROVIDER=log escribe en su lugar los códigos de inicio de sesión en el registro del servidor; no lo uses nunca en producción.
Para la lista completa de parámetros ajustables — redes, autenticación, correo electrónico, tiempo real, observabilidad y mucho más — consulta la Referencia de configuración.