Commit Graph

4 Commits

Author SHA1 Message Date
Jeff Emmett f5c61a3992 fix: migrate OAuth URLs from auth.jeffemmett.com to auth.ridentity.online
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:27:16 -08:00
Jeff Emmett a536a9bc0f feat: add Phase 4 x402 metering and Phase 5 hardening
Phase 4: Usage metrics service (container stats, post count, storage),
billing calculator with pro-rated monthly pricing, usage + payment
routes, x402 middleware wired to provisioning endpoint.

Phase 5: In-memory rate limiter (general 10/min + provision 2/hour),
admin routes (force teardown, suspend/resume), Dockerfile hardened
with non-root user and healthcheck. Suspended instance status added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:45:55 -08:00
Jeff Emmett dca3140065 feat: remove Sablier + add Phase 2 SIWE auth and CRDT token gating
Sablier removal:
- Postiz needs Temporal running 24/7 for scheduled posts, so Sablier
  auto-sleep is incompatible. Default changed to sablier: false.
- Template engine and provisioning route updated accordingly.

Phase 2 - Authentication & Token Gating:
- SIWE (Sign-In with Ethereum) wallet auth via siwe + viem
- Nonce endpoint at GET /v1/auth/nonce
- Dual auth: API key (admin) or SIWE Bearer token (wallet users)
- CRDT token gate checks balance via rSpace internal API
- Token burn tracking in SQLite (token_burns table)
- x402 payment middleware ported from rspace-online (Phase 4 ready)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:30:28 -08:00
Jeff Emmett dc78c119b3 feat: add Phase 1 provisioning API (Hono/Bun)
Self-service API for provisioning Postiz instances at <slug>.rsocials.online.

- Hono server on port 3001 with API key auth
- SQLite instance registry with provision logging
- Template engine (TypeScript port of generate.sh)
- Docker compose deployer with health checks
- Sablier config auto-management (add/remove routing)
- Cloudflare tunnel hostname auto-management
- Resource monitor (/proc/meminfo, max 12 instances)
- Secret generation (JWT + Postgres password)

Routes: POST/GET/DELETE /v1/spaces, GET /health

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:16:40 -08:00