Production-Ready Laravel Hosting Setup
From first SSH login or cPanel session to a documented handoff — not a zip upload and a screenshot of “it loads.”
A Laravel app that “works on my machine” is not in production. Production means HTTPS, a database that is not on the laptop, queues that survive a reboot, and a second person who can ship a fix. This service is that wiring — Caddy, Nginx, or Apache with PHP-FPM, plus Cloudflare when you already use it.
I will not turn a cheap shared host into a Kubernetes story. If the app needs Redis, Supervisor, and a real VPS, I will say so before we burn a day on cPanel limits.
cPanel or VPS
Match the setup to your host — shared panel (cPanel/Plesk) or a cloud VPS on Ubuntu or Debian. I will not force a VPS on a client who only has cPanel, or the reverse, without saying what you give up.
SSL & Domains
Certificates, www/apex redirects, and canonical host hygiene so you do not rank two versions of the same site or leak cookies on HTTP.
Queues & Cron
Queue workers, the Laravel scheduler, and process supervision. Mail, imports, and webhooks should not depend on someone leaving a terminal open.
App Env
Env files, config and route caches, storage links, and permissions. The boring mistakes — APP_DEBUG on, wrong APP_KEY, missing storage — are the ones that show up on launch day.
Baseline Hardening
SSH keys, firewall basics, and least-privilege habits on a VPS. This is not a full security audit; it is the minimum so the box is not a default Ubuntu install with password auth still on.
Handoff Notes
How to deploy again, where logs live, what to monitor, and what to do when disk or workers fail. If you cannot operate it without me, the job is not done.
Ship Without Surprises
Checklist-driven so launch day stays calm — inventory, provision, deploy, handoff.
Inventory
App requirements, PHP version, services (Redis, queues, cron), and who owns DNS. Missing DNS access is the usual silent blocker.
Provision
Web server, PHP-FPM, database, Redis if needed, and SSL. On cPanel this looks different than on a VPS; the checklist is the same.
Deploy
Release the app, run migrations, warm caches, verify queues and a real HTTP check — not only the homepage.
Handoff
Written runbook for updates, backups, and common failures. You should be able to deploy again from the notes.
Who deploy work is for
This is go-live and environment setup, not an ongoing DevOps team on retainer — unless you add monthly care afterward.
Best for
- The Laravel app is ready (or nearly ready) and you need cPanel, Plesk, or a VPS to serve it on a real domain.
- Queues, cron, or SSL were “we will do that later” and later is now.
- You want notes so the next deploy is not a screen-share with the last freelancer.
Not a fit if
- You need 24/7 on-call SRE for a multi-region fleet. I will not pretend a single VPS setup is that.
- The app itself is still a mess — rescue or customization first, then deploy.
- You want me to manage a Windows IIS stack or a host I cannot SSH or panel into.
What “go-live” includes — and what it does not
Send host type and Laravel version in the first message and I can outline a plan without a discovery novel.
Do you work on cPanel, or only VPS?
Both. cPanel and Plesk for clients who already have shared or managed hosting; Ubuntu/Debian VPS when you need workers, Redis, and a web server you control. I will recommend which one matches the app.
Will you set up Cloudflare?
Yes, when you already have an account or want DNS and TLS in front of the origin. I will not force Cloudflare if a simple Let’s Encrypt certificate on the box is enough.
Do you include backups?
I set a baseline (what to back up, where, how often) and document it. Off-site backup products vary by host; I will not invent a storage bill you did not agree to.
Can you migrate from one host to another?
Yes, as a scoped migrate-and-cutover, not as a surprise add-on to “just install SSL.” Database, files, DNS TTL, and a rollback window all get a line in the plan.
What if I also need features after go-live?
That is a different service — customization, rescue, or a monthly hour bank. Deploy ends when production is operable. Mixing both in one vague quote is how launches slip.
Ready to go live?
Share your host type and Laravel version — I will outline the deploy plan, including what cPanel cannot do that a VPS can.