mirror of
https://github.com/casjaysdevdocker/apprise
synced 2026-06-23 20:01:03 -04:00
main
--domainname on the container sets the kernel domainname, which c-ares uses to infer a search domain even when /etc/resolv.conf has no search line. This caused c-ares to query github.com.casjay.work AAAA and get the host's own IPv6 address, routing all outbound HTTPS to the local nginx instead of the real server. Adding 'search .' and 'options ndots:0' explicitly disables search domain inference regardless of the kernel domainname setting. - rootfs/usr/local/etc/resolv.conf: add search . and options ndots:0 rootfs/usr/local/etc/resolv.conf
Welcome to apprise
REST API gateway for the apprise
notification library. POST a notification to http://<host>:8000/notify (or
/notify/<key> for stateful configs) and apprise fans it out to dozens of
notification services (Discord, Slack, Telegram, Pushover, email, MQTT, ...).
This image bundles nginx + gunicorn + Django + apprise-api on top of Alpine.
Ports
| Port | Purpose |
|---|---|
| 8000 | Apprise REST API + web UI |
Volumes
| Path | Purpose |
|---|---|
/config |
Apprise YAML/text configs (/config/apprise/store/<key>.yml), nginx overrides (/config/nginx/), per-service env (/config/env/apprise.sh) |
/data |
Logs (/data/logs/apprise/), runtime state |
Install my system scripts
sudo bash -c "$(curl -q -LSsf "https://github.com/systemmgr/installer/raw/main/install.sh")"
sudo systemmgr --config && sudo systemmgr install scripts
Automatic install/update
dockermgr update apprise
Install and run container
dockerHome="/var/lib/srv/$USER/docker/casjaysdevdocker/apprise/apprise/latest/rootfs"
mkdir -p "$dockerHome/data" "$dockerHome/config"
docker run -d \
--restart always \
--name casjaysdevdocker-apprise-latest \
--hostname apprise \
-e TZ=${TIMEZONE:-America/New_York} \
-v "$dockerHome/data:/data:z" \
-v "$dockerHome/config:/config:z" \
-p 8000:8000 \
casjaysdevdocker/apprise:latest
via docker-compose
version: "2"
services:
apprise:
image: casjaysdevdocker/apprise
container_name: casjaysdevdocker-apprise
environment:
- TZ=America/New_York
- HOSTNAME=apprise
volumes:
- "./data:/data:z"
- "./config:/config:z"
ports:
- 8000:8000
restart: always
First-run usage
- Visit
http://localhost:8000/to see the apprise-api welcome UI. - Save a stateful config (a named bundle of notification URLs):
curl -X POST http://localhost:8000/add/mykey -d 'urls=mailto://user:pass@gmail.com' - Send a notification through it:
curl -X POST http://localhost:8000/notify/mykey -d 'body=hello&title=test' - One-shot stateless notify (no saved config):
curl -X POST http://localhost:8000/notify -d 'urls=json://localhost&body=hi&title=test'
Useful environment variables
| Variable | Default | Purpose |
|---|---|---|
TZ |
America/New_York |
Timezone for log timestamps |
APPRISE_WORKER_COUNT |
(2*CPUs)+1 |
gunicorn worker count |
APPRISE_WORKER_TIMEOUT |
300 |
gunicorn worker timeout (seconds) |
APPRISE_BASE_URL |
(none) | Mount under a URL prefix, e.g. /apprise |
APPRISE_STATEFUL_MODE |
simple |
simple, hash, or disabled |
Get source files
dockermgr download src casjaysdevdocker/apprise
OR
git clone "https://github.com/casjaysdevdocker/apprise" "$HOME/Projects/github/casjaysdevdocker/apprise"
Build container
cd "$HOME/Projects/github/casjaysdevdocker/apprise"
buildx
Authors
Description
Languages
Shell
93.6%
Dockerfile
6.4%