Laravel & PHP Hosting in Kenya
Push a Laravel, Symfony or plain PHP project to GitHub. Chajio Cloud installs your Composer packages, builds your Vite assets and serves public/ on two replicas, with free SSL and a managed database.
$ git push origin main
▸ Detected PHP: composer.json, with a Node.js build step
▸ npm ci && npm run build
▸ composer install
▸ Serving public/ as the web root
▸ Starting Apache and PHP-FPM
✓ Live on 2 replicas: https://my-app.live.chajio.cloud
How it works
How we build and run your Laravel & PHP app
Detect
A
composer.jsonmarks a PHP app. A plain PHP site with anindex.phpand nocomposer.jsonbuilds too.Build assets
If your
package.jsonhas abuildscript, as Laravel with Vite does, it runs first, sopublic/buildis ready.Install
Composer installs your packages. The PHP version and extensions come from
requireincomposer.json.Serve
When
public/index.phpexists (Laravel, Symfony, Slim),public/becomes the web root, so your source code is never served.
Get ready
Getting your Laravel & PHP app ready
{
"require": {
"php": "^8.3",
"ext-gd": "*",
"ext-intl": "*",
"laravel/framework": "^12.0"
}
}Ask for the PHP version you develop on and the extensions you use, and they are installed with it.
->withMiddleware(function (Middleware $middleware) {
$middleware->trustProxies(at: '*');
})HTTPS ends at the platform’s load balancer. Trusting it lets Laravel know visitors came over HTTPS, so url() and redirects use https://.
APP_KEY=base64:your-key
APP_ENV=production
APP_DEBUG=false
APP_URL=https://www.example.com
LOG_CHANNEL=stderr
DB_CONNECTION=mariadbGenerate the key with php artisan key:generate --show. Give the managed database the variable name DB_URL and Laravel reads the connection from it. stderr puts your logs on the Logs tab.
web: php artisan migrate --force && heroku-php-apache2 public/Optional: runs your migrations each time a new version starts, then serves public/ as before.
Works with
What you can run
Laravel
With Vite, Livewire or Inertia.
Filament
Laravel admin panels deploy like any Laravel app.
Symfony
Served from public/.
Slim
Served from public/.
CodeIgniter 4
Served from public/.
Plain PHP
An index.php is enough.
In production
Running your Laravel & PHP app in production
Files reset on each deploy
Every version starts from a fresh copy, and two run at once. Store uploads on S3-compatible storage (FILESYSTEM_DISK=s3) and keep sessions and cache in the database, Laravel’s default since version 11.
MariaDB for MySQL apps
MySQL itself isn’t offered yet, but MariaDB speaks the same protocol: Laravel’s mariadb and mysql drivers both connect to it.
Turn debug off
APP_DEBUG=true in production shows your environment, including secrets, on every error page. Keep it false and read errors on the Logs tab.
Running WordPress?
App Hosting suits apps you build and deploy from Git. For WordPress, shared hosting gives you one-click installs, email accounts and backups without a repository.
Every plan
Included on every plan
2 replicas of every app
Two copies behind a load balancer, so a restart or a failed machine never takes you offline.
A managed database
PostgreSQL, MariaDB or MongoDB, with its own standby replica on another machine.
Deploy on every push
Connect GitHub once; every push to your branch builds and goes live.
One-click rollbacks
Go back to any earlier successful deployment from the Deployments tab.
Free SSL, your domain
Certificates issued and renewed for you, plus a free .live.chajio.cloud address.
Build and runtime logs
Watch builds as they run, and see what your app prints as it serves visitors.
CPU, memory and network
Metrics for every app, from the last 15 minutes to the last 30 days.
Zero-downtime deploys
A new version takes visitors only once its health check passes.
Pricing
Laravel & PHP hosting plans
Free Plan
5GB DB Storage · 2GB RAM
Then Ksh 350/mo
- 2 vCPU
- 2 Apps
- 1 Database
- 2 App Replicas (HA)
- 2 Database Replicas (HA)
- PostgreSQL, MariaDB or MongoDB
- Deploy from GitHub
- Auto-deploy on push
- One-click rollbacks
- Deployment history
- Build & runtime logs
- CPU, RAM, disk & network metrics
- Disk usage tracking
- Environment variables
- Custom domain
- Free SSL
Growth Plan
10GB DB Storage · 2GB RAM
- 3 vCPU
- 4 Apps
- 2 Databases
- 2 App Replicas (HA)
- 2 Database Replicas (HA)
- PostgreSQL, MariaDB or MongoDB
- Deploy from GitHub
- Auto-deploy on push
- One-click rollbacks
- Deployment history
- Build & runtime logs
- CPU, RAM, disk & network metrics
- Disk usage tracking
- Environment variables
- Custom domain
- Free SSL
Business Plan
20GB DB Storage · 4GB RAM
- 4 vCPU
- 6 Apps
- 3 Databases
- 2 App Replicas (HA)
- 2 Database Replicas (HA)
- PostgreSQL, MariaDB or MongoDB
- Deploy from GitHub
- Auto-deploy on push
- One-click rollbacks
- Deployment history
- Build & runtime logs
- CPU, RAM, disk & network metrics
- Disk usage tracking
- Environment variables
- Custom domain
- Free SSL
Pro Plan
30GB DB Storage · 8GB RAM
- 8 vCPU
- 10 Apps
- 5 Databases
- 2 App Replicas (HA)
- 2 Database Replicas (HA)
- PostgreSQL, MariaDB or MongoDB
- Deploy from GitHub
- Auto-deploy on push
- One-click rollbacks
- Deployment history
- Build & runtime logs
- CPU, RAM, disk & network metrics
- Disk usage tracking
- Environment variables
- Custom domain
- Free SSL
FAQ
Laravel & PHP hosting questions
The one your composer.json asks for in require, for example "php": "^8.3". Extensions you list there, such as ext-gd or ext-intl, are installed with it.
No. A Laravel project is recognised from its composer.json, its Vite assets are built and public/ is served automatically. A Dockerfile is only needed if you want full control over the image.
MariaDB, with DB_CONNECTION=mariadb, or PostgreSQL. Both are managed for you and included on every plan. Laravel’s mysql driver also connects to MariaDB, so apps written for MySQL work.
You can, but shared hosting is the better fit: it comes with one-click WordPress installs, email accounts, daily backups and LiteSpeed caching, and it is cheaper for a typical site.
Put them before the web server in a Procfile, for example web: php artisan migrate --force && heroku-php-apache2 public/, so they run each time a new version starts.
You can start on the Free plan: free for your first month, then Ksh 350 a month, with 2 vCPU, 2GB RAM, 2 apps and a managed database. The Growth, Business and Pro plans add more CPU, memory, apps and databases as you grow.
Yes. We accept M-Pesa, Visa, Mastercard, PayPal, and bank transfers, and every plan is priced in Kenyan shillings. M-Pesa is the quickest option for Kenyan customers.
More App Hosting
Deploying something else?
Deploy your Laravel & PHP app today
Your first month is on us, with a managed database and two replicas from day one.