Saltar al contenido principal

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​

ServicioQué esPuertos
dbPostgreSQL 16 — el plano de control y el plano de diagramas por defectointerno
appEl servidor: API tRPC + REST /api/v1 + el websocket de HocuspocusHTTP 8787, WS 8788
webLa SPA, servida tras nginxhttp://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
aviso

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.