jirorian/README.md
randogoth 5f35041ab4 Add minimal README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 17:28:51 +03:00

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.