2.7 KiB
2.7 KiB
Stripe Setup Guide for DashCaddy.net
1. Create a Stripe Account
Go to stripe.com and create an account (or log in).
2. Create Your Product and Prices
In the Stripe Dashboard:
- Go to Products > Add Product
- Name:
DashCaddy Premium - Description:
Premium license for DashCaddy - Self-hosting dashboard - Create two prices:
- Monthly: $20.00 USD / month (recurring)
- Yearly: $99.00 USD / year (recurring)
- Note down both Price IDs (they look like
price_1234...)
3. Get Your API Keys
- Go to Developers > API Keys
- Copy your Publishable key (
pk_test_...orpk_live_...) - Copy your Secret key (
sk_test_...orsk_live_...)
4. Set Up Webhooks
- Go to Developers > Webhooks
- Click Add endpoint
- URL:
https://dashcaddy.net/api/webhooks/stripe - Select these events:
checkout.session.completedcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_failed
- Copy the Webhook signing secret (
whsec_...)
5. Configure Environment Variables
Copy .env.example to .env.local and fill in your values:
cp .env.example .env.local
Edit .env.local:
STRIPE_SECRET_KEY=sk_live_your_actual_secret_key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_your_actual_publishable_key
STRIPE_WEBHOOK_SECRET=whsec_your_actual_webhook_secret
STRIPE_PRICE_MONTHLY=price_your_monthly_price_id
STRIPE_PRICE_YEARLY=price_your_yearly_price_id
NEXT_PUBLIC_APP_URL=https://dashcaddy.net
6. Test with Stripe CLI (Optional)
For local development, use Stripe CLI to forward webhooks:
stripe listen --forward-to localhost:3000/api/webhooks/stripe
Use test card 4242 4242 4242 4242 with any future date and any CVC.
7. License Key Delivery
The webhook handler at src/app/api/webhooks/stripe/route.ts has TODO comments
where you need to implement:
- Generate license key using the same format as DashCaddy's license-keygen (DC-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)
- Store it in a database (Stripe metadata can also hold it)
- Email it to the customer (use Stripe's receipt email or a service like SendGrid/Resend)
- Link it to the Stripe subscription ID so you can manage renewals/cancellations
Pricing Strategy Notes
- Monthly ($20/mo): Positioned as the flexibility option
- Yearly ($99/yr): ~$8.25/mo — 58% savings, this will be the primary seller
- 14-day free trial: Enabled on both plans via
trial_period_days: 14 - Promotion codes: Enabled via
allow_promotion_codes: true