Docker
Quick Start
Without Authentication (default)
docker compose upThis starts EDDI on port 7070 and MongoDB. No login required.
With Keycloak Authentication
This repository ships a Keycloak overlay. Layer it on the base stack:
docker compose -f docker-compose.yml -f docker-compose.auth.yml upThis starts:
Keycloak 26 on port
8180(admin console:http://localhost:8180, loginadmin/admin)EDDI on port
7070with OIDC auth enabledMongoDB for data storage
Pre-configured test users:
eddi
eddi
admin
viewer
viewer
viewer (read-only)
Manual Docker Setup
Start MongoDB:
Start EDDI (without auth) — local development only:
⚠️ These three opt-outs disable authentication on every endpoint, including
/secretstore(the vault) and/mcp(agent CRUD). The port is bound to127.0.0.1below so the container is not reachable from the network. Do not publish it on0.0.0.0, and do not use this form on a shared or cloud host. For anything beyond your own machine, use the authenticated example below.
Note: The image runs in production mode, where
AuthStartupGuardandHighValueSurfaceGuardrefuse to boot while OIDC is off. Without these three opt-outs the container exits at startup. This is exactly whatdocker-compose.ymlsets for you.
Start EDDI (with auth):
Environment Variables
Authentication
QUARKUS_OIDC_TENANT_ENABLED
false
Enable/disable Keycloak auth
QUARKUS_OIDC_AUTH_SERVER_URL
http://localhost:8180/realms/eddi
Keycloak realm URL
QUARKUS_OIDC_CLIENT_ID
eddi-backend
OIDC client ID
QUARKUS_HTTP_CORS_ORIGINS
http://localhost:3000,...
Allowed CORS origins
EDDI_SECURITY_ALLOW_UNAUTHENTICATED
false
Opt out of the production auth requirement. Required to boot with OIDC disabled
EDDI_MCP_ALLOW_UNAUTHENTICATED
false
Knowingly expose /mcp without authentication. Required to boot with OIDC disabled
EDDI_SECRETSTORE_ALLOW_UNAUTHENTICATED
false
Knowingly expose /secretstore without authentication. Required to boot with OIDC disabled
Note:
QUARKUS_OIDC_TENANT_ENABLEDis a runtime toggle. No rebuild needed to enable/disable auth.
AI Tools
Full Example
Last updated
Was this helpful?