mirror of
https://github.com/casjaysdevdocker/apprise
synced 2026-06-24 02:01:01 -04:00
ea5ca1a4ed80ff469e1f5f8cc7a2daf821918d31
Hosts with a search domain cause containers to inherit it. When the zone has a wildcard AAAA record, public hostnames resolve to the host's own IPv6 address instead of the real server, breaking all outbound HTTPS and DNS from inside the container. The entrypoint already has a hook: if /usr/local/etc/resolv.conf exists it replaces /etc/resolv.conf at container startup. Ship a clean resolv.conf with Cloudflare + Google DNS and no search domain so container DNS is always correct regardless of host configuration. - rootfs/usr/local/etc/resolv.conf: new file — clean DNS, no search domain 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%