Skip to main content

Hub configuration

The Hub reads settings from environment variables or a private .env file in hub-backend/. Names are case-insensitive; this page uses upper case. The source launcher and the Docker launcher set the values they need for you.

Never commit .env. Keep secrets in a secret manager or the deployment environment.

Environment and database​

VariableDefaultNotes
SODUWORK_ENVdevelopmentproduction turns on the production checks
DATABASE_URLsqlite+aiosqlite:///./box_hub.dbUse postgresql+asyncpg://… outside development
DB_MIGRATION_MODEautoauto migrates at start (single instance). check expects a release job to migrate first
DB_POOL_SIZE101–100
DB_MAX_OVERFLOW200–100
DB_POOL_TIMEOUT15Seconds, 1–120
DB_POOL_RECYCLE1800Seconds, at least 60
DB_STATEMENT_TIMEOUT_MS300000 disables

Identity and access​

VariableDefaultNotes
ADMIN_USERadminUsed only to create the first administrator when there are no users
ADMIN_PASSemptyGenerated in development; required otherwise
AUTH_SECRETemptySigning key for tokens. Generated in development; required otherwise
TOKEN_TTL_HOURS168Seven days
CORS_ORIGINS*Comma-separated. * is refused in production
DEVICE_AUTH_COMPATtrueMust be false in production. Accepts legacy device headers during a migration
HUB_PUBLIC_URLemptyThe HTTPS address people use. Required in production; used for OAuth callbacks
OIDC_HTTP_TIMEOUT_SECONDS10Timeout for enterprise SSO calls

Execution​

VariableDefaultNotes
HUB_LOCAL_EXECUTION_ENABLEDtrueWhether the Hub itself may run agents. The Docker setup sets false
CLOUD_EXECUTION_RUNNER_IDSemptyComma-separated allowlist of runner IDs for cloud chats. Empty keeps normal routing
OFFLINE_AFTER_SECONDS30When a silent client counts as offline

Connectors​

VariableDefaultNotes
CONNECTOR_OAUTH_KEYemptyFernet key that encrypts connector authorizations
CONNECTOR_GOOGLE_CLIENT_ID, CONNECTOR_GOOGLE_CLIENT_SECRETemptyGoogle app
CONNECTOR_MICROSOFT_CLIENT_ID, CONNECTOR_MICROSOFT_CLIENT_SECRETemptyMicrosoft app
CONNECTOR_MICROSOFT_TENANTorganizations
REPOSITORY_SYNC_INTERVAL_SECONDS900Repository catalog refresh; 0 disables

See Integrations.

Files​

VariableDefaultNotes
ATTACH_MAX_MB20Maximum size of one task attachment
LIBRARY_STORAGE_BACKENDlocallocal, remote or auto
LIBRARY_STORAGE_DIRuploads/libraryFor local
LIBRARY_MAX_MB00 means no application limit; your proxy can still set one
VIDEO_MAX_MB25620–2048

Remote library storage (S3-compatible or NFS) has its own LIBRARY_MINIO_* and LIBRARY_NFS_* settings in hub-backend/app/config.py.

Client updates​

VariableDefaultNotes
CLIENT_UPDATE_PUBLIC_KEYSemptyJSON of trusted Ed25519 public keys. Empty uses the checked-in trust file

Keep the signing private key out of the long-running Hub. Mount it only where releases are signed.

Where to find the rest​

hub-backend/app/config.py lists every setting with its default and range. Settings not on this page are for clustering, optional integrations or internal features, and most deployments don't need them.

Edit this page