Passa al contenuto principale

Docker Compose

Il repository include uno stack pronto all'uso in infra/docker/compose.yaml. È il modo più rapido per ottenere un'istanza funzionante su un singolo host.

Servizi​

ServizioChe cos'èPorte
dbPostgreSQL 16 — il piano di controllo e il piano dei diagrammi predefinitointerno
appIl server: API tRPC + REST /api/v1 + il websocket HocuspocusHTTP 8787, WS 8788
webLa SPA, servita dietro nginxhttp://localhost:8080

Avvio rapido​

docker compose -f infra/docker/compose.yaml up

Apri http://localhost:8080 e avrai un EntityFlow su singolo host perfettamente funzionante, con entrambi i piani ospitati nel PostgreSQL integrato.

Reindirizzare il piano dei diagrammi​

Per archiviare i diagrammi nel tuo database, imposta EF_DIAGRAM_DB_URL. Quando il piano dei diagrammi non è PostgreSQL, devi impostare anche EF_CONTROL_DB_URL su un'istanza PostgreSQL per il piano di controllo:

# Piano dei diagrammi sul tuo Postgres (il piano di controllo lo condivide)
export EF_DIAGRAM_DB_URL="postgres://user:pass@db.internal:5432/entityflow"

# Piano dei diagrammi su MySQL — il piano di controllo deve restare 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 il tuo database per l'elenco completo dei motori supportati e degli schemi delle stringhe di connessione.

Elementi essenziali per la produzione​

Per qualsiasi utilizzo oltre la valutazione locale, imposta un secret di autenticazione robusto:

export EF_AUTH_SECRET="$(openssl rand -base64 48)"
docker compose -f infra/docker/compose.yaml up -d
warning

EF_AUTH_SECRET (32 caratteri o più) deve essere impostato per qualsiasi distribuzione non locale. Senza di esso, le sessioni non sono sicure.

L'accesso è senza password, quindi le persone possono accedere solo quando l'istanza è in grado di inviare e-mail: collegala al tuo server SMTP (oppure 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 Configurazione → E-mail per tutte le variabili relative all'e-mail. Su un'istanza di valutazione locale, EF_MAIL_PROVIDER=log scrive invece i codici di accesso nel log del server: non usarlo mai in produzione.

Per l'elenco completo dei parametri configurabili — rete, autenticazione, e-mail, tempo reale, osservabilità e altro ancora — consulta il Riferimento di configurazione.