Skip to main content

Environment variables

This document was generated using AI assistance

Content may include inaccuracies, outdated information, or technical errors. Users are advised to cross-check critical information before implementation.

The compose file reads its configuration from the .env file next to it. The same variables are passed to the containers when you run them by hand, and the .env.example files shipped in the application archive list them per container.

The values shipped in the repository let docker compose up work on a laptop. A production deployment must supply its own value for every secret: OAUTH2_CLIENT_SECRET, DATABASE_PASSWORD, REDIS_PASSWORD, KEYCLOAK_ADMIN_PASSWORD, KEYCLOAK_DATABASE_PASSWORD, SMTP_PASSWORD and OPENAI_API_KEY. Generate them yourself, keep the .env file out of version control, and change them before the instance is reachable from a network.

URLs

These addresses end up in links the browser follows, so they must be the public addresses of your installation, not container names.

VariableControlsDefault
APPLICATION_URLPublic URL of the application, as users type ithttp://localhost:8080
API_GATEWAY_URLPublic URL of the API gateway, used by the interface and by API clientshttp://localhost:8080
METAMODEL_URLBase URL for metamodels. Each metamodel is addressed as METAMODEL_URL/scope/project/version/model, and models reference their metamodel by that URL, so it should stay constanthttp://localhost:8080
FRONTEND_PORTHost port the interface is published on8080
ABOUT_URLProduct information page, linked from the top-right corner. Leave empty to hide the linkempty
DOCUMENTATION_URLDocumentation site, linked from the top-right corner. Leave empty to hide the linkempty
APPLICATIONS_URLApplications portal, linked from the top-right corner. Leave empty to hide the linkempty
LANGUAGESLanguages the interface is offered in, as a comma-separated list of codes, in the order they are shown in the user menuen,fr,ru

Session and CORS

VariableControlsDefault
SESSION_TIMEOUTLifetime of a session stored in Redis. Keep it aligned with SSO Session Idle in the Keycloak realm30d
ALLOWED_ORIGINSExtra origins allowed to call the API gateway, in addition to APPLICATION_URL, ABOUT_URL and APPLICATIONS_URLempty
ALLOWED_ORIGIN_PATTERNSExtra origin patterns allowed to call the API gatewayempty

OAuth 2.0

The first three addresses are opened by the browser and must be public. The last three are called by the API gateway itself and may use an internal container address.

VariableControlsDefault
OAUTH2_ISSUER_URLRealm issuer URLhttp://localhost:8181/realms/architeezy
OAUTH2_AUTHORIZATION_URLAuthorization endpoint the browser is redirected to on sign-in<issuer>/protocol/openid-connect/auth
OAUTH2_ACCOUNT_URLAccount page, opened from the user menu<issuer>/account/
OAUTH2_CLIENT_IDConfidential client the application signs in witharchiteezy
OAUTH2_CLIENT_SECRETSecret of that client. Must match the secret in Keycloaksupply your own
OAUTH2_API_CLIENT_IDPublic client used by external API clientsarchiteezy-api
OAUTH2_TOKEN_URLToken endpoint, called server to serverhttp://keycloak:8080/realms/architeezy/protocol/openid-connect/token
OAUTH2_JWK_SET_URLKey set used by the gateway and the backend to verify tokenshttp://keycloak:8080/realms/architeezy/protocol/openid-connect/certs
OAUTH2_USER_INFO_URLUser info endpoint, called server to serverhttp://keycloak:8080/realms/architeezy/protocol/openid-connect/userinfo

Database

The application database is created on the first start of the db container from DATABASE_USERNAME and DATABASE_PASSWORD. The same pair is handed to the backend as its datasource credentials.

VariableControlsDefault
DATABASE_USERNAMEOwner of the architeezy databasearchiteezy
DATABASE_PASSWORDPassword of that usersupply your own
DATABASE_PORTHost port PostgreSQL is published on5441

Redis

VariableControlsDefault
REDIS_PASSWORDPassword Redis requires and the API gateway presentssupply your own
REDIS_PORTHost port Redis is published on6382

SMTP

Mail is optional. Leave the whole group empty and the application runs without sending mail.

VariableControlsDefault
SMTP_HOSTMail server hostempty
SMTP_PORTMail server portempty
SMTP_PROTOCOLMail protocol, for example smtpempty
SMTP_USERNAMEAccount used to authenticateempty
SMTP_PASSWORDPassword of that accountsupply your own
SMTP_SSL_ENABLEDWhether to connect over SSLempty
SMTP_STARTTLS_ENABLEDWhether to upgrade the connection with STARTTLSempty
SMTP_MAIL_FROMSender address of outgoing mailempty
SMTP_MAIL_TOAddress the application writes toempty

LLM

The AI assistant talks to any service that speaks the OpenAI protocol. The default points at a model served on the host machine.

VariableControlsDefault
OPENAI_URLBase URL of the OpenAI-compatible APIhttp://host.docker.internal:11434/v1
OPENAI_API_KEYAPI key sent with each requestsupply your own
OPENAI_MODELModel nameqwen3:4b
OPENAI_TEMPERATURESampling temperature0

Keycloak

VariableControlsDefault
KEYCLOAK_URLPublic URL of Keycloak, used as its hostnamehttp://localhost:8181
KEYCLOAK_PORTHost port Keycloak is published on8181
KEYCLOAK_ADMIN_USERNAMEBootstrap administrator of the master realmadmin
KEYCLOAK_ADMIN_PASSWORDPassword of that administratorsupply your own
KEYCLOAK_DATABASE_USERNAMEOwner of the keycloak databasekeycloak
KEYCLOAK_DATABASE_PASSWORDPassword of that usersupply your own
KEYCLOAK_DATABASE_PORTHost port the Keycloak database is published on5444

Two more values are derived from the variables above and passed to Keycloak when the realm is imported: the redirect URI API_GATEWAY_URL/login/oauth2/code/keycloak and the web origin APPLICATION_URL. Change either URL and the corresponding client setting has to be updated in Keycloak.