Sign inSign up

fogtype/apprize

By fogtype

Updated about 1 month ago

Apprise API, Ported to Go

Image
Integration & delivery
0

612

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_MAX1Inbound 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 1 month ago

docker pull fogtype/apprize