Try the real panel. No repo. No card. View your panel

Stripe billing

The free plan does not need Stripe. Turn this on when you want self-serve upgrades to Pro ($49/mo) and Business ($249/mo).

1. Stripe Dashboard

  1. Create two recurring products/prices (monthly).
  2. Copy price IDs → STRIPE_PRICE_STARTER and STRIPE_PRICE_TEAM.
  3. Developers → API keys → STRIPE_SECRET_KEY (sk_live_… or sk_test_… on staging).

2. Webhook

Endpoint: https://tycoonbox.io/webhooks/stripe

Events:

  • checkout.session.completed
  • customer.subscription.updated
  • customer.subscription.deleted

Signing secret → STRIPE_WEBHOOK_SECRET.

3. Secrets

Add to .kamal/secrets (see .kamal/secrets.example), then:

bin/stripe-setup          # checklist
bin/kamal-secrets-sync    # if you use it
bin/kamal-deploy-io       # or your deploy target

Kamal already maps these secret env vars in config/deploy.yml.

4. Verify

  • bin/stripe-setup shows all keys present.
  • Admin Launch checklist → Stripe billing = green.
  • /pricing → Pro card shows Start trial (or checkout) instead of “Start on free”.
  • Signed-in free account → Upgrade starts Stripe Checkout.

Optional metered prices: STRIPE_METER_CONTAINER_HOURS_PRICE_ID, STRIPE_METER_STANDARD_RESOURCE_HOURS_PRICE_ID.