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
- Create two recurring products/prices (monthly).
- Copy price IDs →
STRIPE_PRICE_STARTERandSTRIPE_PRICE_TEAM. - Developers → API keys →
STRIPE_SECRET_KEY(sk_live_…orsk_test_…on staging).
2. Webhook
Endpoint: https://tycoonbox.io/webhooks/stripe
Events:
checkout.session.completedcustomer.subscription.updatedcustomer.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-setupshows 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.