Files
codeandClaude Fable 5 8ab413804a normalize all stacks to conventions
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it
- TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis)
- compose section order fixed (volumes before environment, command after networks)
- all default secrets are the literal ChangeThisPassword (grep-friendly,
  users must change them); removed a real key from ollama sample.env
- sample.env synced with compose: missing vars added with defaults, dead vars removed
- invoiceninja_dev/openarchiver_dev: app services had no environment block,
  wired all sample.env vars through so the stacks actually work
- opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose
- TZ values unquoted consistently

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 06:24:54 +00:00
..
2026-07-16 04:08:21 +00:00
2026-07-16 06:24:54 +00:00

Ntfy

Overview

Ntfy (pronounced "notify") is a simple HTTP-based pub-sub notification service. With ntfy, you can send notifications to your phone or desktop via scripts from any computer, without having to sign up or pay any fees.

Project Details

Getting Started

  1. Start the container: docker compose up -d
  2. Access ntfy: http://localhost:80 or http://localhost:8080
  3. Configure your notification topics via the web interface

Environment Variable Notes

  • NTFY_IMAGE Docker image to use (default: binwiederhier/ntfy)
  • NTFY_PORT HTTP port to expose (default: 80)
  • NTFY_HTTP_PORT Internal HTTP port (default: 8080)
  • NTFY_RESTART Restart policy (default: unless-stopped)
  • TZ Timezone for container (default: UTC)
  • NTFY_BASE_URL Base URL for ntfy instance (default: http://localhost)
  • NTFY_CACHE_FILE SQLite cache file path (default: /var/lib/ntfy/cache.db)
  • NTFY_AUTH_FILE SQLite auth file path (default: /var/lib/ntfy/auth.db)
  • NTFY_AUTH_DEFAULT_ACCESS Auth policy (default: deny-all)
  • NTFY_BEHIND_PROXY Run behind reverse proxy (default: true)
  • NTFY_ATTACHMENT_CACHE_DIR Attachment cache directory (default: /var/lib/ntfy/attachments)
  • NTFY_ENABLE_LOGIN Enable user login (default: true)

Volume Notes

  • /data Persistent storage for ntfy configuration, authentication, and cache files

Network Notes

Requires proxy network

Docker Run

docker run -d \
  --name ntfy \
  -e NTFY_IMAGE=binwiederhier/ntfy \
  -e NTFY_PORT=80 \
  -e NTFY_HTTP_PORT=8080 \
  -e NTFY_RESTART=unless-stopped \
  -e TZ=UTC \
  -e NTFY_BASE_URL=http://localhost \
  -e NTFY_CACHE_FILE=/var/lib/ntfy/cache.db \
  -e NTFY_AUTH_FILE=/var/lib/ntfy/auth.db \
  -e NTFY_AUTH_DEFAULT_ACCESS=deny-all \
  -e NTFY_BEHIND_PROXY=true \
  -e NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments \
  -e NTFY_ENABLE_LOGIN=true \
  -v /data/ntfy:/etc/ntfy \
  -v /data/ntfy-var:/var/lib/ntfy \
  -v /data/ntfy-cache:/var/cache/ntfy \
  -p 80:80 \
  -p 8080:8080 \
  binwiederhier/ntfy

Additional Notes / Gotchas

  • Requires SQLite database for cache and authentication
  • Authentication is enabled by default; you need to create users via the web interface
  • Static attachments are cached in /var/lib/ntfy/attachments
  • The service supports both HTTP and WebSocket connections
  • Configure TLS/SSL with a reverse proxy like Nginx for production use
  • Use the REST API to send notifications: curl -X PUT http://localhost:80/TOPIC_NAME -d 'Notification message'

Dockhand Stack, Deploy from Git

Cookbooks Repository stackname: ntfy Compose file path: ntfy_dev/compose.yaml Additional env file (optional): ntfy_dev/sample.env

Then "Load" ntfy_dev/sample.env into the Environmental variables in dockhand

Create the Stack