Environment Variables¶
Environment variables hold bootstrap values. Everything else is a runtime setting in the web UI; see Settings. Changing a variable needs a container restart.
Secrets¶
| Variable | Required | Default | Purpose |
|---|---|---|---|
SECRET_KEY |
yes | – | Fernet key; encrypts stored secrets, keys the session-token hashes and signs backups; see session token |
SECRET_KEYS |
no | – | Comma-separated keys for rotation (first = primary) |
JUSTUP_BACKUP_HMAC_SECRET |
no | derived from SECRET_KEY(S) |
Dedicated backup signing key; NEW,OLD for rotation |
SECRET_KEY is a urlsafe-base64 32-byte Fernet key:
There is no default. Store the key only in the environment.
Key rotation¶
Put the new key first. The first key encrypts; the others only decrypt existing data.
Session tokens depend on the first key only: after you change it, all users sign in
again, and an old key in second place does not keep sessions valid (it still decrypts
stored secrets). The shipped docker/docker-compose.yml forwards SECRET_KEYS to the
container; a Compose file without that line ignores the variable.
Backup key¶
JUSTUP_BACKUP_HMAC_SECRET entries need at least 32 characters with at least 8
distinct characters (for example openssl rand -hex 32). Weak, empty, or duplicate
entries make backup and restore fail with a configuration error. New backups are
signed with the first entry; all entries verify. Keep an old entry until no backup
signed with it is needed. See Backup & restore.
Server and network¶
| Variable | Default | Purpose |
|---|---|---|
JUSTUP_HOST |
0.0.0.0 |
Bind address in the container |
JUSTUP_PORT |
8000 |
Bind port in the container; an invalid value falls back to 8000 with a warning |
UPMON_TRUSTED_PROXIES |
empty | Proxy addresses trusted for X-Forwarded-For, X-Real-IP, and X-Forwarded-Proto |
LOG_LEVEL |
INFO |
Log level (CRITICAL, ERROR, WARNING, INFO, DEBUG); access lines appear only at DEBUG. An invalid value falls back to INFO with a warning |
justUp! supports exactly one app process per data directory. There is no
WORKERS variable.
The supplied Compose file publishes no port. Add ports: ["8000:8000"] or use a
reverse proxy; adjust the mapping if you change JUSTUP_PORT.
Data and user mapping¶
| Variable | Default | Purpose |
|---|---|---|
JUSTUP_DATA_DIR |
/app/data in the container |
Data directory |
PUID, PGID |
1000 |
Owner of the data directory and the app process |
signal-cli¶
| Variable | Default | Purpose |
|---|---|---|
SIGNAL_CLI_PATH |
image default | Path to the signal-cli binary |
SIGNAL_DATA_DIR |
/app/data/signal |
signal-cli data directory |
JAVA_XMS, JAVA_XMX |
64m, 256m |
Java heap for signal-cli |
See Notifications.
Runtime settings¶
These are not variables. Admins change them in the UI without a restart:
| Setting | Default |
|---|---|
purge_enabled |
on |
pdf_page_size |
a4 |
metrics_timeout_minutes |
5 (1-10) |
session_max_days |
1 (1-7) |
geoip_auto_update |
on |
rate_limit_auth |
10/minute |
quality_targets |
built-in list (min. 3) |
quality_min_score |
70 (0-100) |
quality_rtt_threshold_ms |
500 (1-10000) |
provider_lookup_enabled |
on |
online_geo_fallback_enabled |
on until you switch it off; an opt-out is stored and kept |
provider_lookup_cache_ttl_seconds |
1800 (60-86400) |
ip_api_key (encrypted) |
empty |
signal_api_sender_number |
empty |