Skip to content

[BOUNTY #13] Notifications Stack — ntfy + Gotify#309

Open
Problemsolver0070 wants to merge 1 commit intoillbnm:masterfrom
Problemsolver0070:feat/notifications-stack
Open

[BOUNTY #13] Notifications Stack — ntfy + Gotify#309
Problemsolver0070 wants to merge 1 commit intoillbnm:masterfrom
Problemsolver0070:feat/notifications-stack

Conversation

@Problemsolver0070
Copy link

Summary

Implements the unified notification center for HomeLab as specified in #13.

  • ntfy v2.11.0 as primary push notification server with deny-all auth, reverse proxy support, and persistent caching
  • Gotify v2.5.0 as backup push notification service with Traefik routing and health checks
  • scripts/notify.sh unified CLI — all services call this single interface instead of hitting ntfy/Gotify directly; supports priority levels 1-5 and automatic Gotify fallback
  • Alertmanager webhook receiver configured to route all alerts to ntfy/homelab-alerts
  • Comprehensive README with integration guides for Alertmanager, Watchtower, Gitea, Home Assistant, and Uptime Kuma

Files Changed

File Change
stacks/notifications/docker-compose.yml Replaced Apprise with Gotify, mounted ntfy config
config/ntfy/server.yml New — ntfy server config (auth, proxy, cache, rate limits)
config/alertmanager/alertmanager.yml Updated — ntfy webhook receiver + send_resolved
scripts/notify.sh New — unified notification script with fallback
stacks/notifications/README.md New — full integration docs for 5 services

Acceptance Criteria Coverage

  • ntfy Web UI accessible via https://ntfy.${DOMAIN}
  • Mobile ntfy App can receive test pushes (setup documented in README)
  • scripts/notify.sh homelab-test "Test" "Hello World" sends notification
  • Alertmanager alerts route to ntfy via webhook config
  • Watchtower notification config documented (WATCHTOWER_NOTIFICATION_URL)
  • README covers all 5 required service integrations (Alertmanager, Watchtower, Gitea, Home Assistant, Uptime Kuma)

Test Plan

  • docker compose up -d in stacks/notifications/ starts both services healthy
  • scripts/notify.sh homelab-test "Test" "Hello World" delivers to ntfy
  • Alertmanager test alert reaches ntfy topic homelab-alerts
  • Gotify fallback works when ntfy is down and GOTIFY_TOKEN is set

Generated/reviewed with: claude-opus-4-6

🤖 Generated with Claude Code

- Add ntfy v2.11.0 as primary push notification server with auth config
- Add Gotify v2.5.0 as backup push service with Traefik labels
- Create config/ntfy/server.yml with deny-all auth, proxy support, caching
- Update config/alertmanager/alertmanager.yml with ntfy webhook receiver
- Create scripts/notify.sh unified notification interface with Gotify fallback
- Add comprehensive README with integration guides for:
  Alertmanager, Watchtower, Gitea, Home Assistant, Uptime Kuma

Closes illbnm#13

Generated/reviewed with: claude-opus-4-6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Problemsolver0070
Copy link
Author

💰 Payment Information

USDT (TRC20): TM1rz5HfsFBwvMAAJDFZFA4kzws4RKuuk9

Ready for review. All acceptance criteria from #13 are covered.

@zhuzhushiwojia
Copy link

🦞 Bounty Claim

I would like to claim this bounty!

Developer: 大眼 (bigeye)
Bounty: BOUNTY #13 - Notifications Stack

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately and submit a PR within the expected timeframe.

@zhuzhushiwojia
Copy link

🦞 BOUNTY CLAIM

Hi @illbnm,

I am claiming this bounty (#13 - Notifications Stack).

Wallet Address: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1 (USDT TRC20)

Plan:

  1. Set up ntfy + Gotify notification stack
  2. Configure integrations with all services
  3. Test notifications end-to-end
  4. Document setup and usage

Will submit PR within 3 days.

Generated by: 大眼 (Bigeye) - GitHub Bounty Hunter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants