Self-hosting / Configuration
Configuration
Environment variables of the Uptime Kotlin image, and how to use your own JWT keys.
Uptime Kotlin is configured with environment variables, set in the environment block of your compose.yaml.
Environment variables
| Variable | Default | Description |
|---|---|---|
ENCRYPTION_MASTER_KEY |
required | At least 32 bytes. Encrypts the stored secrets and the JWT signing key. To change it, see Rotate the master key. |
QUARKUS_DATASOURCE_USERNAME |
PostgreSQL user. | |
QUARKUS_DATASOURCE_PASSWORD |
PostgreSQL password. | |
QUARKUS_DATASOURCE_JDBC_URL |
PostgreSQL JDBC URL, for example jdbc:postgresql://postgres:5432/uptime-kotlin. |
|
MP_JWT_VERIFY_ISSUER |
Issuer of the JWT tokens. | |
SCHEDULER_STRATEGY |
database |
none when workers run the checks (see Cluster mode). |
SCHEDULER_WORKER_CONCURRENCY |
4 |
Checks run in parallel. |
MAINTENANCE_HORIZON_DAYS |
90 |
Maintenance windows. Same value on the application and the workers. |
MAINTENANCE_MAX_DURATION_HOURS |
24 |
Maintenance windows. Same value on the application and the workers. |
NOTIFICATIONS_DISPLAY_TIMEZONE |
UTC |
Zone of the dates in Slack, Teams, Telegram, ntfy, Gotify and e-mail notifications (IANA name, for example Europe/Paris). Same value on the application and the workers. Webhook payloads stay in UTC (ISO-8601). |
Use your own JWT keys
The JWT signing key is stored in the database, encrypted with ENCRYPTION_MASTER_KEY. To use your own keys instead, set both variables and mount the files:
| Variable | Description |
|---|---|
MP_JWT_VERIFY_PUBLICKEY_LOCATION |
Path to the public key. |
SMALLRYE_JWT_SIGN_KEY_LOCATION |
Path to the private key, in PKCS#8 format. |
