The Apprise API container is highly configurable via environment variables.
| Variable | Default | Description |
|---|
APPRISE_STATEFUL_MODE | hash | Controls the persistent storage backend.
simple: Saves configs as human-readable files (/config/{KEY}.yaml). Recommended for most users.
hash: Saves configs as indexed hashes. Efficient for high-volume.
disabled: Disables persistent storage entirely (Stateless only). |
APPRISE_WORKER_COUNT | (Auto) | Number of Gunicorn workers. Defaults to (2 * CPUs) + 1. Set to 1 for low-resource environments. |
APPRISE_WORKER_TIMEOUT | 300 | Worker timeout in seconds. |
APPRISE_BASE_URL | (None) | Set this if running behind a reverse proxy under a subpath (e.g., /apprise). |
APPRISE_ADMIN | no | Set to yes to enable the /cfg endpoint, allowing you to list all saved keys in the Web UI. |
| Variable | Default | Description |
|---|
APPRISE_CONFIG_LOCK | no | Set to yes to make the configuration read-only. Prevents adding or modifying keys via API. |
ALLOWED_HOSTS | * | Space-delimited list of allowed Host headers. |
APPRISE_DENY_SERVICES | (Default List) | Comma-separated list of schemas to block (e.g., dbus, windows, macos are blocked by default in Docker). |
APPRISE_ALLOW_SERVICES | (All) | Comma-separated list of allowed schemas. If set, only these services will work. |
| Variable | Default | Description |
|---|
APPRISE_ATTACH_SIZE | 200 | Maximum attachment size in MB. Set to 0 to disable attachments. |
APPRISE_UPLOAD_MAX_MEMORY_SIZE | 3 | Maximum size (MB) of request body kept in memory before spilling to disk. |
APPRISE_RECURSION_MAX | 1 | Max recursion depth for apprise:// calls to other servers. |
| Variable | Default | Description |
|---|
HTTP_PORT | 8000 | Internal container port. |
PUID | 1000 | User ID to run the service as. |
PGID | 1000 | Group ID to run the service as. |
IPV4_ONLY | no | Force IPv4 only. |
IPV6_ONLY | no | Force IPv6 only. |
The container also supports the following variables, which map directly to the server settings.
| Variable | Default | Description |
|---|
APPRISE_DEFAULT_CONFIG_ID | apprise | Default configuration key used by the web UI. |
APPRISE_WEBHOOK_URL | (Empty) | Optional webhook that receives a POST payload after each notification attempt. |
APPRISE_CONFIG_DIR | <BASE_DIR>/var/config | Directory storing configurations. |
APPRISE_STORAGE_DIR | <APPRISE_CONFIG_DIR>/store | Directory storing persistent storage. |
APPRISE_STORAGE_MODE | auto | Persistent storage mode. Values: memory, auto, flush. |
APPRISE_STORAGE_PRUNE_DAYS | 30 | Number of days before persistent storage is pruned. |
APPRISE_STORAGE_UID_LENGTH | 8 | Default URL id length used by persistent storage. |
APPRISE_ATTACH_DIR | <BASE_DIR>/var/attach | Directory storing uploaded attachments. |
APPRISE_ATTACH_SIZE | 200 | Maximum attachment size in MB. Set to 0 to disable attachments. |
APPRISE_MAX_ATTACHMENTS | 6 | Maximum number of attachments per request. Set to 0 to disable the limit. |
APPRISE_ATTACH_ALLOW_URL | * | Allow list for remote attachment URLs. |
APPRISE_ATTACH_REJECT_URL | 127.0.* localhost* | Deny list for remote attachment URLs. |
APPRISE_STATELESS_URLS | (Empty) | Default URLs used by stateless /notify/ requests when no urls are supplied. |
APPRISE_STATELESS_STORAGE | no | Allow stateless requests to use persistent storage when enabled. |
APPRISE_DENY_SERVICES | (Platform list) | Comma-separated list of schemas to disable. |
APPRISE_ALLOW_SERVICES | (Empty) | Exclusive allow list. If set, anything not in this list is disabled. |
APPRISE_PLUGIN_PATHS | <BASE_DIR>/var/plugin | Comma-separated list of plugin paths to scan. |
APPRISE_API_ONLY | no | Disable the web UI and allow only the API endpoints. |
APPRISE_DEFAULT_THEME | light | Default theme for the web UI. Values: light, dark. |
APPRISE_INTERPRET_EMOJIS | (Unset) | If set, overrides emoji interpretation. Values: yes or no. |
| Variable | Default | Description |
|---|
SECRET_KEY | (Bundled default) | Django secret key. Always override this in production. |
DEBUG | no | Enable debug mode. Supports yes, 1, true, and similar. |
LOG_LEVEL | INFO | Log level for both Django and Apprise logs. |
ALLOWED_HOSTS | * | Space-delimited allowed host list. |
APPRISE_UPLOAD_MAX_MEMORY_SIZE | 3 | Maximum request body size (MB) stored in memory before Django raises RequestDataTooBig. |