Files
docker-compose-cookbooks/ntfy_dev/README.md
T

3.2 KiB
Raw Blame History

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