diff options
| author | Christian Cleberg <[email protected]> | 2026-04-08 14:29:21 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-08 14:29:21 -0500 |
| commit | a7c25076d16bde9ec928b9ef01bce952406ea7b1 (patch) | |
| tree | 802c5f84902f240c6aab95acc1e6348dfbd806c2 /README.md | |
| download | hutch-notify-a7c25076d16bde9ec928b9ef01bce952406ea7b1.tar.gz hutch-notify-a7c25076d16bde9ec928b9ef01bce952406ea7b1.tar.bz2 hutch-notify-a7c25076d16bde9ec928b9ef01bce952406ea7b1.zip | |
initial commit
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec35961 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# hutch-notify + +Minimal backend for push notifications in Hutch. + +## Purpose + +- register APNs device tokens +- store notification subscriptions +- poll sr.ht for changes +- send push notifications via APNs + +Designed to be: +- simple +- cheap to run +- easy to reason about + +## Stack + +- Python (FastAPI) +- SQLite (initially) +- APNs (HTTP/2, token-based auth) + +## Status + +Early development. + +Current scope: +- device registration +- test push endpoint + +Planned: +- build notifications +- ticket notifications +- inbox notifications (later) + +## Running locally + +```bash +python3.12 -m venv .venv +source .venv/bin/activate +pip install -r requirements.txt # or use pyproject + +uvicorn app.main:app --reload +``` + +## Environment + +Create an `.env` file: + +```bash +API_KEY=change-me +DATABASE_URL=sqlite+aiosqlite:///./hutch_notify.db + +APNS_KEY_ID= +APNS_TEAM_ID= +APNS_BUNDLE_ID= +APNS_PRIVATE_KEY_PATH= + +SRHT_TOKEN= +``` + +## Notes + +- iOS app must register with APNs and send device token to this server +- APNs key (`.p8`) must be kept secure +- Notifications are event-driven, but initial version uses polling + |
