Installation
Deploy WhatsApp SaaS on shared hosting (cPanel) or run it locally for development.
Server requirements
- PHP 8.2 or higher
- Extensions: BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
- MySQL 5.7+ or MariaDB 10.3+
- Writable directories:
core/storage,core/bootstrap/cache - Composer dependencies bundled in
core/vendor/ - Pre-built frontend assets in
core/public/build/(or build locally with npm)
Folder structure
The app uses a shared-hosting layout:
public_html/ ← Web document root (upload this folder)
index.php ← Front controller
setup.php ← Pre-install diagnostics
.htaccess ← Rewrites & security rules
core/ ← Laravel app (NOT web-accessible)
app/
config/
database/
public/build/ ← Compiled CSS/JS
storage/
vendor/
core/ folder must never be directly accessible from the browser. The .htaccess file blocks /core/* requests with a 403 error.
Upload & pre-install check
-
Upload files
Upload the entire
public_htmlfolder to your hosting document root. -
Run diagnostics
Visit
https://yourdomain.com/setup.php. This page checks PHP version, extensions, folder permissions, vendor, and build assets. It can auto-fix common issues. -
Fix any red errors
Ensure
storageandbootstrap/cacheare writable. Contact hosting support if PHP extensions are missing.
Web installer
-
Open installer
Visit
https://yourdomain.com/install -
Test database
Enter MySQL host, database name, username, and password. Click Test Connection.
-
Run install
The installer will migrate tables, seed default plans and settings, and create your super admin account.
-
Complete
After success, log in at
/login. Super admin panel is at/admin.
Cron jobs (required for production)
Campaigns, subscription expiry, and queue processing rely on scheduled tasks.
- Log in as super admin → Admin → System Settings
- Copy the Cron Token
- Add a hosting cron job (every minute):
curl -s "https://yourdomain.com/cron/scheduler?token=YOUR_CRON_TOKEN"
Available cron endpoints:
| URL | Purpose |
|---|---|
/cron/scheduler | Runs all scheduled tasks (use this one) |
/cron/queue | Process queued jobs |
/cron/campaigns | Send pending campaign messages |
/cron/subscriptions/expire | Mark expired subscriptions |
/cron/subscriptions/reminders | Send expiry reminder emails |
Local development
cd public_html/core composer install npm install cp .env.example .env php artisan key:generate php artisan migrate php artisan serve --port=8000
For frontend hot reload: npm run dev. For production build: npm run build.