mirror of
https://github.com/casjaysdevdocker/apprise
synced 2026-07-31 14:11:42 -04:00
fbc888b5c518f3d55d45bc876c75156fd31c6f78
apprise / release-apprise (push) Failing after 1m48s
- rootfs/usr/local/bin/entrypoint.sh:
1. The "start all services" gate
(`if [ "$START_SERVICES" = "yes" ] || [ -z "$1" ]`) always evaluated
true on a first-run container regardless of $1, because
START_SERVICES is force-set to "yes" whenever no PID file exists yet.
Any command passed to `docker run` — `exec ...`, `sh -c ...`,
`shell`, or an arbitrary program — was swallowed into the
service-start+monitor branch before reaching the `case "$1"`
statement that already handles those subcommands, hanging the
container as a daemon instead of running the given command. Changed
the condition to `if [ -z "$1" ]` so the daemon branch only fires
when no command was given at all.
2. The `*/bin/sh | */bin/bash | bash | sh | shell)` case branch
unconditionally shifted $1 before `__exec_command "$@"` (a bare
`exec "$@"`). For `docker run image sh -c 'cmd'` this turned the
exec into `exec -c cmd` (command not found, exit 127) instead of
`exec sh -c 'cmd'`. Split the branch: real interpreter names
(*/bin/sh, */bin/bash, bash, sh) now pass through unshifted; the
"shell" keyword (not a real interpreter) gets its own branch that
shifts and prepends "sh" to any remaining args, or falls back to a
bare `__exec_command` (exec bash -l) when none remain.
Verified `bash -n` passes. Found and fixed upstream in
dockersrc/go, confirmed identical in this repo's generated
entrypoint.sh, and mechanically applied here with the same patch.
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="/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
94.1%
Dockerfile
5.9%