LanguageGB
App Deployment

Deploy a Laravel app

Laravel apps run via PHP-FPM and nginx. The platform installs Composer dependencies, creates a SQLite database, and runs migrations automatically.

What this means

What this means

A Laravel app is a PHP application built with the Laravel framework. The platform clones your repository, runs composer install, creates a SQLite database file at database/database.sqlite, and runs php artisan migrate --force automatically. The app is served via PHP-FPM and nginx — no separate start command is needed.

Before you start

Before you start

Your GitHub repository must contain the artisan file at the root (standard Laravel project structure). Include a composer.json. Your .env file should not be committed — database credentials are injected automatically. Make sure your app does not hardcode a port or hostname.

Step-by-step guidance

Step-by-step guidance

  1. Purchase an App Hosting plan or start a free trial from the Services page.
  2. Push your Laravel project to a public GitHub repository with artisan at the root.
  3. Do not commit your .env file — database credentials will be injected automatically.
  4. Navigate to Portal → Services and open your App Hosting service.
  5. Set Action to Deploy Laravel app and Runtime to laravel.
  6. Paste your GitHub repository URL into the Artifact Reference field.
  7. Leave build and start command fields empty — Composer and PHP-FPM are configured automatically.
  8. Click Redeploy App. The platform runs composer install, configures PHP-FPM, and runs php artisan migrate.
  9. A SQLite database file is created at database/database.sqlite and migrations run against it automatically. To use MySQL or PostgreSQL instead, point your .env at your own database server using environment variables.
  10. Visit your assigned domain to confirm the Laravel app is running.

What CM Cloud support will review

What CM Cloud support will review

Support checks that the repository is accessible, artisan is present, Composer dependencies install cleanly, migrations succeed, and the app responds correctly via PHP-FPM.

What is not automated yet

What is not automated yet

Database seeders are not run automatically. If you need to seed data after deployment, contact support or add a post-migration command to the deploy workflow.

Safety note

Safety note

Reading this article does not trigger payment, provisioning, DNS, registrar, Cloudflare, or provider changes.

Safe next action

Safe next action

Push your Laravel project with artisan at the root and composer.json present, then open the deploy form.

Contact Support