diff options
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 + |
