A drop-in, single-binary reimplementation of the caronc/apprise-api HTTP API in Go.
0

Configure Feed

Select the types of activity you want to include in your feed.

4 1 3

Clone this repository

https://tangled.org/fogtype.com/apprize https://tangled.org/did:plc:4bnnapinci6t3sivugecrax2
git@tangled.org:fogtype.com/apprize git@tangled.org:did:plc:4bnnapinci6t3sivugecrax2

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Apprize#

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.

Build & run#

Requires Go 1.26+.

go build
./apprize --bind :8000

Docker#

docker build -t apprize .
docker run --rm -p 8000:8000 apprize

The image runs apprize directly and defaults to:

  • APPRIZE_BIND=:8000

Configuration#

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)

API#

Method & path Purpose
GET /status Server status
GET /details Version and supported schemas
POST /notify Stateless notification

Limitations#

apprize intentionally diverges from upstream where apprise-go cannot match it, and omits the persistent-configuration half of the API entirely:

  • No persistent config endpoints/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.
  • Attachments are not delivered — accepted then logged as unsupported; /status reports attach_lock=true.
  • No recursion-header propagation — inbound 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.
  • No web UI — API only.

License#

GNU AGPL-3.0