mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
- 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>
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
- Project Repository: https://github.com/binwiederhier/ntfy
- Container Image: Docker Hub
- Compose Example: Ntfy Docker Compose
- Documentation: Ntfy Docs
- Reverse Proxy Port:
80
Getting Started
- Start the container:
docker compose up -d - Access ntfy:
http://localhost:80orhttp://localhost:8080 - 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