1.2 KiB
1.2 KiB
jirorian
Nostr-native image upload API for Cloudflare R2.
Authenticates requests via NIP-98, issues presigned R2 PUT URLs, and manages access via a custom Nostr registration event (kind 5392). NIP-96 compliant.
Requirements
- Cloudflare R2 bucket with public CDN URL
- A Nostr keypair for the service identity
- A Nostr relay
Configuration
All configuration is via environment variables:
| Variable | Description |
|---|---|
R2_ENDPOINT |
https://<account_id>.r2.cloudflarestorage.com |
R2_ACCESS_KEY_ID |
R2 access key |
R2_SECRET_ACCESS_KEY |
R2 secret key |
R2_BUCKET_NAME |
Target bucket |
R2_CDN_URL |
Public CDN base URL |
SERVICE_NOSTR_PRIVKEY |
Service Nostr private key (hex) |
SERVICE_RELAY_URL |
Relay to subscribe to for registrations |
JIRORIAN_DB |
SQLite DB path (default: jirorian.db) |
Development
nix develop # enter dev shell with uv + virtualenv
uv run fastapi dev jirorian/main.py
Deployment
Packaged as a Nix flake, consumed by the NixOS host configuration as a flake input.