Shared Hosting (cPanel) Deployment
Shared Hosting (cPanel) Deployment
Store Console prefers a VPS (Docker or LEMP), but it runs on a capable shared host too. Shared hosting means no root access, usually MySQL instead of PostgreSQL, no Redis, and no long-running processes — this page covers exactly what changes.
Minimum Host Capabilities
- PHP 8.4 with the standard Laravel extensions (most cPanel PHP selectors include them)
- MySQL 8.0+ or MariaDB 10.6+ (PostgreSQL preferred where available)
- Cron jobs (at least every minute)
- SSH access strongly recommended for
composerandartisan
Step 1: Upload and Point the Document Root
Upload and extract your licensed zip outside public_html, then point the (sub)domain's document root at the app's public/ directory from cPanel → Domains. Never expose the application root itself.
Step 2: Configure .env for Shared Hosting
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cpaneluser_storeconsole
DB_USERNAME=cpaneluser_sc
DB_PASSWORD=your_password
QUEUE_CONNECTION=database
CACHE_STORE=database
SESSION_DRIVER=database
BROADCAST_CONNECTION=null
These drivers are first-class: the queue, cache, and session tables ship in the default migrations, so no Redis is required.
Step 3: Migrate and Build
php artisan migrate --seed
npm run build # or build locally and upload public/build
Step 4: Cron Entries (replaces Horizon and systemd)
Add two cron jobs in cPanel → Cron Jobs:
* * * * * php /home/USER/storeconsole/artisan schedule:run
* * * * * php /home/USER/storeconsole/artisan queue:work database --stop-when-empty --max-time=55
The second entry drains every queue once per minute and exits, which is safe under shared-host process limits. Horizon and its dashboard are not used on shared hosting.
What Degrades — and How
- AI semantic features (vector search, embeddings) need PostgreSQL + pgvector — on MySQL they switch off cleanly while AI chat, generation, and report tools keep working through your configured provider
- Real-time chat & notifications use Reverb/WebSockets on a VPS — without it the UI falls back to periodic polling automatically (
BROADCAST_CONNECTION=null) - Background jobs run up to a minute later than on a dedicated worker — acceptable for mail, invoices, and reports; heavy stores should move to a VPS
When to Upgrade to a VPS
Move to a VPS when you enable POS or Delivery dispatch (latency-sensitive), rely on AI search, or process more than a few orders per minute. Your data migrates with a standard database dump — no reinstall needed.