Skip to content

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, and studio-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, with 127.0.0.1/32 as 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 ​

  1. In .env, confirm PUBLIC_ORIGIN=https://app.jumpcli.com, ALLOWED_HOSTS=app.jumpcli.com, ACCESS_COOKIE_SECURE=true, FORCE_HTTPS=true, TRUST_PROXY_HEADERS=true, and TRUSTED_PROXY_IPS=127.0.0.1/32.
  2. Set distinct, non-empty ADMIN_EMAIL, ADMIN_PASSWORD, and ADMIN_KEY. The first production startup does not record an automatically generated administrator password.
  3. Verify SMTP sender identity, DKIM, SPF/DMARC, and actual delivery to a controlled mailbox. Do not put SMTP passwords in logs or documentation.
  4. Verify the upstream model address, key, and allowed models, then complete one controlled image generation as an operator.
  5. Confirm that data/, images/, and maintenance/ belong to the runtime account selected by PUID/PGID in .env, preventing SQLite restarts caused by an unwritable directory.
  6. Set a unique APP_VERSION, build with production_build_release.sh, store the immutable APP_IMAGE it prints, then recreate with docker-compose.production.yml and --no-build --pull never. Open https://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.

JumpCLI documentation is maintained in a separate repository.