aboutsummaryrefslogtreecommitdiff

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