Sign inSign up

fogtype/apprize

By fogtype

•Updated about 2 months ago

Apprise API, Ported to Go

Image
Integration & delivery
0

1.3K

fogtype/apprize repository overview

⁠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.

⁠Quick start

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

other services⁠

⁠Install

# 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
⁠Docker Compose
# compose.yml
services:
  apprize:
    image: fogtype/apprize
    restart: unless-stopped
    ports:
      - "8000:8000"
docker compose up -d

⁠Configuration

Flags override environment variables. Names use the APPRIZE_ prefix; the upstream HTTP_PORT is also honoured for the listen port.

EnvFlagDefaultPurpose
APPRIZE_BIND (or HTTP_PORT)--bind:8000Listen 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—1Inbound 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 & pathPurpose
GET /statusServer status
GET /detailsVersion and supported schemas
POST /notifyStateless 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⁠

⁠Acknowledgements

Tag summary

Content type

Image

Digest

sha256:a726f0742…

Size

6.4 MB

Last updated

about 2 months ago

docker pull fogtype/apprize