Going Live Checklist
Work through this before you open WhatsMine to real customers. It covers the operational pieces that code alone can't guarantee — queue workers, cron, webhooks and email.
1. Environment
- [ ]
APP_ENV=production - [ ]
APP_DEBUG=false - [ ]
APP_KEYis set (the installer does this) - [ ]
APP_URLis your real HTTPS domain - [ ] Database credentials are correct
- [ ]
QUEUE_CONNECTIONisdatabaseorredis(notsync) - [ ]
CACHE_STOREandSESSION_DRIVERset appropriately
2. Background processing (critical)
These two pieces power campaigns, inbound messages, AI runs and emails. If they aren't running, those features silently stop.
- [ ] Queue worker running under a supervisor (Supervisor/systemd):
php artisan queue:work --queue=whatsapp,broadcast,ai,social,leads,automation,default --tries=3 --max-time=3600 - [ ] Scheduler cron entry added:
* * * * * cd /path/to/app && php artisan schedule:run >> /dev/null 2>&1 - [ ] Confirm the scheduler heartbeat is green in Admin → Cron Setup.
See Deployment for full Supervisor/Nginx examples.
3. Email
- [ ] A working mail transport is configured (
MAIL_MAILER≠log, or an active SMTP config in Admin → Email System). - [ ]
MAIL_FROM_ADDRESS/MAIL_FROM_NAMEset. - [ ] Sent a test email from Admin → Email System and received it.
- [ ] Email templates are enabled (welcome, invoice, subscription lifecycle, password reset).
4. Payments (if you're charging)
- [ ] At least one gateway enabled and configured in Admin → Payment Gateways.
- [ ] Webhook endpoint registered in each gateway dashboard:
- Stripe →
https://your-domain.com/webhooks/stripe - PayPal →
https://your-domain.com/webhooks/paypal - Paddle →
https://your-domain.com/webhooks/paddle
- Stripe →
- [ ] Webhook signing secret stored (a missing secret rejects all webhooks in production).
- [ ] Each plan has the correct price IDs (Stripe/Paddle) — see Plans & Billing.
- [ ] Ran a full test-mode subscription through checkout → renewal → invoice download.
See the Payments Integration page for the exact events to subscribe to.
5. Channels (Meta / WhatsApp)
- [ ] Meta App configured in Admin → Integrations (App ID, App Secret, verify token, config IDs).
- [ ] App is Live in the Meta dashboard with the required permissions approved.
- [ ] Webhook URLs reachable over HTTPS (auto-registered for embedded signup; manual for Instagram/Messenger).
- [ ] Queue worker is consuming the
whatsappqueue.
See Meta / WhatsApp and Messenger & Instagram.
6. Branding & content
- [ ] App name, logo, favicon and primary colour set in Admin → Settings.
- [ ] Landing page content reviewed/edited in Admin → Site Content.
- [ ] Legal pages (Privacy, Terms, Cookies) reviewed in Admin → CMS Pages.
- [ ] Support email set.
7. Security
- [ ]
APP_DEBUG=false(never expose stack traces). - [ ] HTTPS enforced (valid SSL certificate).
- [ ] Strong Super-Admin password; consider enabling 2FA.
- [ ] File permissions:
storage/andbootstrap/cache/are writable by the web user. - [ ] Database backups scheduled (
php artisan db:backup).
8. Production optimisation
Run these after each deploy:
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
php artisan queue:restart
9. Smoke test
- [ ] Visit the marketing site, sign up a test customer, complete onboarding.
- [ ] Connect a channel and send/receive a test message.
- [ ] Create and launch a small test campaign.
- [ ] Subscribe the test customer to a paid plan (test mode) and confirm the invoice.
- [ ] Check Admin → Audit Log and Admin → Queue for errors.
✅ All green? You're ready to launch.