Launch readiness checklist
This checklist supports a minimum viable launch for app.jumpcli.com. It distinguishes features customers may trial from formal commercial capabilities that must remain disabled, preventing test credits or unverified integrations from being released as paid services.
Currently available
- The workspace, gallery, job status, and SSE events are served through
app.jumpcli.com. - Customers can create accounts, sign in, recover passwords, select a free test plan, and use image credits without waiting for review. Operators can still deactivate or reactivate accounts.
- Account registration, review outcomes, password changes, account deactivation/reactivation, and free test-plan activation/cancellation enter the asynchronous mail queue; unavailable SMTP is retried and failed records are retained.
- The free catalog is fixed to
starter-test,creator-test, andstudio-test, with 20, 80, and 200 image credits respectively for the current month by default. They create neither payment orders nor Meteroid production usage. - 1Panel/OpenResty terminates TLS; JumpCLI listens only on
127.0.0.1:19091, with127.0.0.1/32as the trusted forwarded source. - Formal Meteroid billing is not enabled yet. When integrated, it must use a pinned official service version and remain reachable only on the Docker internal network.
Pre-launch checks
- In
.env, confirmPUBLIC_ORIGIN=https://app.jumpcli.com,ALLOWED_HOSTS=app.jumpcli.com,ACCESS_COOKIE_SECURE=true,FORCE_HTTPS=true,TRUST_PROXY_HEADERS=true, andTRUSTED_PROXY_IPS=127.0.0.1/32. - Set distinct, non-empty
ADMIN_EMAIL,ADMIN_PASSWORD, andADMIN_KEY. The first production startup does not record an automatically generated administrator password. - Verify SMTP sender identity, DKIM, SPF/DMARC, and actual delivery to a controlled mailbox. Do not put SMTP passwords in logs or documentation.
- Verify the upstream model address, key, and allowed models, then complete one controlled image generation as an operator.
- Confirm that
data/,images/, andmaintenance/belong to the runtime account selected byPUID/PGIDin.env, preventing SQLite restarts caused by an unwritable directory. - Set a unique
APP_VERSION, build withproduction_build_release.sh, store the immutableAPP_IMAGEit prints, then recreate withdocker-compose.production.ymland--no-build --pull never. Openhttps://app.jumpcli.com/ready.
Must remain disabled
- Formal plans, automatic renewals, payment orders, Alipay callbacks, refunds, and invoices.
- The Meteroid production organization, API token, product/price/metric mappings, and production customer-subscription projection.
- A live Casdoor OIDC production integration; JumpCLI's own account system currently operates.
- Balance warnings, generation-failure alerts, and operator alert channels; they require separate notification preferences, deduplication, and alert recipients.
Until these items are complete, customers may use only clearly labelled free test plans. Do not release any page, email, or API response that says payment succeeded or paid entitlements are active.
Production-billing cutover
Only after completing the third-party payment provider's API, signature validation, and callback replay tests should you create the organization, products, prices, image_success metric, and each plan mapping in Meteroid. Verify the full controlled-order path—order, callback verification, entitlement activation, invoice refresh, and refund/failure handling—then disable BILLING_TEST_MODE before publishing formal plans.