Add ntfy authentication support (username/password and API key)

- Settings table gets ntfy_username, ntfy_password, ntfy_api_key columns
- Backend applies Basic or Bearer auth header when sending notifications
- Settings page UI lets you toggle between no auth, basic, or token auth
- Masked credential display on load to avoid exposing stored secrets
- README updated with auth modes documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 23:49:54 -07:00
parent 1ff44e4276
commit 1bed02ebb5
8 changed files with 109 additions and 16 deletions

View File

@@ -12,7 +12,7 @@ Sproutly takes the guesswork out of seed starting. Enter your plant varieties on
- **Seed Library** — manage plant varieties with frost-relative timing, germination days, sun/water requirements
- **Garden Tracker** — log growing batches and track status from `planned``germinating``seedling``potted up``hardening off``garden``harvested`
- **Year Timeline** — visual calendar showing when each variety's stages fall across the year
- **Ntfy Notifications** — daily summary push notifications to your phone, configurable time and topic
- **Ntfy Notifications** — daily summary push notifications to your phone, configurable time, topic, and authentication
- **Settings** — set your last frost date, fall frost date, location, timezone, and notification preferences
## Stack
@@ -45,7 +45,7 @@ Access the app at **http://localhost:8053**
### First Steps
1. Go to **Settings** and enter your last frost date — this anchors all planting schedule calculations
2. Optionally configure an [ntfy](https://ntfy.sh) topic for push notifications
2. Optionally configure an [ntfy](https://ntfy.sh) topic for push notifications — supports no auth, username/password, or API key/token
3. Browse the pre-loaded **Seed Library** (12 common vegetables, herbs, and flowers included)
4. Start logging batches in **My Garden** as you sow seeds
@@ -97,7 +97,18 @@ Key endpoints:
- `GET/PUT /api/settings/` — app settings
- `POST /api/notifications/test` — send test ntfy notification
- `POST /api/notifications/daily` — trigger daily summary
- `GET /api/notifications/log` — recent notification history
## Ntfy Authentication
For private ntfy servers or access-controlled topics, the Settings page supports three auth modes:
| Mode | When to use |
|------|-------------|
| None | Public ntfy.sh topics |
| Username & Password | ntfy server with basic auth enabled |
| API Key / Token | ntfy account access token (generate in ntfy account settings) |
## Status
This project is in early development. Core infrastructure and UI prototype are functional. UI design and feature set are evolving based on user feedback.
Core infrastructure is functional. UI design and feature set are evolving based on user feedback.