Configuration
All configuration is supplied through environment variables. Copy .env.dev.dist (development) or .env.dist (production) and fill in your values.
Auto-generated secrets
The following secrets are automatically generated on first boot if left unset. They are persisted to a shared Docker volume so they survive container restarts.
| Variable |
Default |
Description |
OAUTH2_SECRET_KEY |
(auto) |
Secret key for signing access tokens — leave unset to auto-generate |
OAUTH2_REFRESH_SECRET_KEY |
(auto) |
Secret key for signing refresh tokens — leave unset to auto-generate |
OAUTH2_CREDS_FILE |
/var/lib/misp-workbench/oauth-creds/oauth2.json |
Path where auto-generated OAuth2 secrets are persisted |
When OAUTH2_SECRET_KEY / OAUTH2_REFRESH_SECRET_KEY are not set, the entrypoint generates random 256-bit hex keys and writes them to OAUTH2_CREDS_FILE:
{
"secret_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"refresh_secret_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
The file is written with mode 0600. It is read at startup by the API, worker, beat, and flower containers via the shared oauth-creds Docker volume.
Set both variables explicitly if you need fixed credentials (e.g. existing tokens must remain valid across redeployments).
Database
| Variable |
Default |
Description |
POSTGRES_HOSTNAME |
postgres |
PostgreSQL host |
POSTGRES_PORT |
5432 |
PostgreSQL port |
POSTGRES_USER |
postgres |
Database user |
POSTGRES_PASSWORD |
— |
Database password |
POSTGRES_DB |
misp |
Database name |
Redis
| Variable |
Default |
Description |
REDIS_HOSTNAME |
redis |
Redis host |
REDIS_PORT |
6379 |
Redis port |
REDIS_CELERY_DB |
0 |
Redis DB index for Celery broker |
REDIS_CACHE_DB |
5 |
Redis DB index for cache/notifications |
OpenSearch
| Variable |
Default |
Description |
OPENSEARCH_HOSTNAME |
opensearch |
OpenSearch host |
OPENSEARCH_PORT |
9200 |
OpenSearch port |
OPENSEARCH_INITIAL_ADMIN_PASSWORD |
— |
Admin password (required on first start) |
Authentication (JWT)
| Variable |
Default |
Description |
OAUTH2_ALGORITHM |
HS256 |
JWT signing algorithm |
OAUTH2_ACCESS_TOKEN_EXPIRE_MINUTES |
300 |
Access token lifetime in minutes |
OAUTH2_REFRESH_TOKEN_EXPIRE_DAYS |
7 |
Refresh token lifetime in days |
Storage
| Variable |
Default |
Description |
STORAGE_ENGINE |
local |
local or s3 |
S3_ENDPOINT |
garage:3900 |
S3 / Garage endpoint |
S3_ACCESS_KEY |
(auto) |
S3 access key — leave unset to let Garage generate one automatically |
S3_SECRET_KEY |
(auto) |
S3 secret key — leave unset to let Garage generate one automatically |
S3_CREDS_FILE |
/var/lib/misp-workbench/secrets/s3.json |
Path where auto-generated credentials are persisted |
S3_BUCKET |
attachments |
S3 bucket name |
S3_SECURE |
false |
Use TLS for S3 connection |
When S3_ACCESS_KEY / S3_SECRET_KEY are not set, s3setup.py calls the Garage CreateKey API to generate credentials and writes them to S3_CREDS_FILE:
{
"access_key_id": "GKxxxxxxxxxxxxxxxxxxxx",
"secret_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
The file is written with mode 0600. It is read at startup by the API, worker, and beat containers via the shared garage-creds Docker volume mounted at the same path.
Garage (S3-compatible storage)
| Variable |
Default |
Description |
GARAGE_ADMIN_URL |
http://garage:3903 |
Garage admin API URL |
GARAGE_ADMIN_TOKEN |
— |
Garage admin token |
GARAGE_METRICS_TOKEN |
— |
Garage metrics token |
Mail
| Variable |
Default |
Description |
MAIL_SERVER |
mailhog |
SMTP server host |
MAIL_PORT |
1025 |
SMTP port |
MAIL_USERNAME |
— |
SMTP username |
MAIL_PASSWORD |
— |
SMTP password |
MAIL_FROM |
info@misp-workbench.local |
From address used for platform emails |
Task monitoring (Flower)
| Variable |
Default |
Description |
FLOWER_BASIC_AUTH |
flower:flower |
user:password for Flower UI |
FLOWER_URL |
http://flower:5555/ |
Internal Flower API URL used by the backend |
MISP Modules
| Variable |
Default |
Description |
MODULES_HOST |
modules |
MISP modules service host |
MODULES_PORT |
6666 |
MISP modules service port |