70 lines
No EOL
2.7 KiB
JSON
70 lines
No EOL
2.7 KiB
JSON
{
|
|
"phase": "production-live",
|
|
"version": "0.4.1",
|
|
"staging": {
|
|
"status": "running",
|
|
"namespace": "snapapi-staging",
|
|
"replicas": 1,
|
|
"image": "docker.io/library/snapapi:v0.4.1",
|
|
"healthCheck": "passing"
|
|
},
|
|
"production": {
|
|
"status": "running",
|
|
"namespace": "snapapi",
|
|
"replicas": 2,
|
|
"image": "docker.io/library/snapapi:v0.4.1",
|
|
"healthCheck": "passing",
|
|
"domain": "https://snapapi.eu",
|
|
"tls": "Let's Encrypt (valid until 2026-05-20)"
|
|
},
|
|
"blockers": [
|
|
"Stripe webhook URL needs to be registered in Stripe Dashboard"
|
|
],
|
|
"completed": [
|
|
"Core screenshot API (POST /v1/screenshot)",
|
|
"Playground endpoint (POST /v1/playground) — no auth, IP rate limited (5/hr), watermarked",
|
|
"Watermark service — overlays 'snapapi.eu — upgrade for clean screenshots' on playground output",
|
|
"Health check (GET /health)",
|
|
"SSRF protection (blocks private IPs, metadata, K8s services)",
|
|
"Browser pool with auto-recycling",
|
|
"PostgreSQL DB integration (api_keys + usage tables)",
|
|
"Usage tracking with per-key limits",
|
|
"REDESIGNED landing page — playground as hero demo, no free tier, paid-only pricing",
|
|
"Swagger/OpenAPI interactive docs at /docs",
|
|
"OpenAPI 3.0.3 spec at /openapi.json (updated for v0.3.0)",
|
|
"Production deployment (2 replicas, HA, anti-affinity)",
|
|
"Production TLS (Let's Encrypt) on snapapi.eu",
|
|
"Staging deployment (1 replica)",
|
|
"Cache-aside key lookup (multi-replica fix)",
|
|
"Mobile-responsive design",
|
|
"Per-route CSP",
|
|
"Removed free signup flow (v0.3.0)",
|
|
"Stripe billing integration — 3 paid plans (Starter €9, Pro €29, Business €79)",
|
|
"Stripe Checkout flow (plan selection → Stripe → success page with API key)",
|
|
"Stripe webhook handler (subscription lifecycle, product filtering for shared account)",
|
|
"Status page at /status (auto-refresh, dark theme)",
|
|
"Closed BUG-002 and BUG-003 (no longer applicable — no free tier)",
|
|
"Git push access from openclaw-vm (deploy key: forgejo-snapapi)"
|
|
],
|
|
"notDone": [
|
|
"Register Stripe webhook URL in Stripe Dashboard",
|
|
"Staging TLS (blocked on DNS)",
|
|
"Uptime monitoring (external)"
|
|
],
|
|
"stripeProducts": {
|
|
"starter": {
|
|
"productId": "prod_U0YOVzPDAht9eH",
|
|
"priceId": "price_1T2XHnRtlDv9c8GoNehDYEhS"
|
|
},
|
|
"pro": {
|
|
"productId": "prod_U0YOlQO6hAF7Tg",
|
|
"priceId": "price_1T2XHoRtlDv9c8GoCsinPNM4"
|
|
},
|
|
"business": {
|
|
"productId": "prod_U0YOSor6qXhHs8",
|
|
"priceId": "price_1T2XHpRtlDv9c8GoThHfd8kS"
|
|
}
|
|
},
|
|
"lastSession": "2026-02-19T13:35:00Z",
|
|
"codeLocation": "Forgejo repo openclawd/SnapAPI. Clone: git clone forgejo-snapapi:openclawd/SnapAPI.git"
|
|
} |