Apprise API, Ported to Go
612
A drop-in, single-binary reimplementation of the caronc/apprise-api HTTP API in Go. Speaks the same stateless routes and response shapes as Apprise API swagger.yaml v1.5.0, backed by unraid/apprise-go for delivery — pure Go, no cgo, no Python runtime.
Start the server:
docker run --rm -p 8000:8000 fogtype/apprize
Send a notification:
# ntfy - watch it land at https://ntfy.sh/apprize-demo
curl localhost:8000/notify \
-d 'urls=ntfys://apprize-demo' \
-d body=hello
# email - needs real SMTP credentials
curl localhost:8000/notify \
-d 'urls=mailtos://user:[email protected]' \
-d body=hello
# Docker
docker run --rm -p 8000:8000 fogtype/apprize
# Podman
podman run --rm -p 8000:8000 fogtype/apprize
# Go
go install git.fogtype.com/nebel/apprize@latest
apprize --bind :8000
# Build from source
git clone https://git.fogtype.com/nebel/apprize
cd apprize
go build
./apprize --bind :8000
# compose.yml
services:
apprize:
image: fogtype/apprize
restart: unless-stopped
ports:
- "8000:8000"
docker compose up -d
Flags override environment variables. Names use the APPRIZE_ prefix; the
upstream HTTP_PORT is also honoured for the listen port.
| Env | Flag | Default | Purpose |
|---|---|---|---|
APPRIZE_BIND (or HTTP_PORT) | --bind | :8000 | Listen address |
APPRIZE_API_KEY | --api-key | (none) | Enables simple auth only when set |
APPRIZE_STATELESS_URLS | — | (none) | Default URLs for POST /notify |
APPRIZE_RECURSION_MAX | — | 1 | Inbound recursion limit |
APPRIZE_DENY_SERVICES | — | (none) | Schemas to reject (comma/space separated) |
APPRIZE_ALLOW_SERVICES | — | (none) | Allow-list of schemas (exclusive when set) |
| Method & path | Purpose |
|---|---|
GET /status | Server status |
GET /details | Version and supported schemas |
POST /notify | Stateless notification |
apprize intentionally diverges from upstream where apprise-go cannot match it, and omits the persistent-configuration half of the API entirely:
/add, /del, /get, /cfg,
POST /notify/{key}, and GET /json/urls/{key} are not implemented.
There is no storage layer; the server is fully stateless./status reports attach_lock=true.X-Apprise-Recursion-Count is
enforced, but it is not injected into outbound requests./details is simplified — returns supported schemas and version, not
per-service templates.Content type
Image
Digest
sha256:a726f0742…
Size
6.4 MB
Last updated
about 1 month ago
docker pull fogtype/apprize