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
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:
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
