Skip to content
homeport

Laravel

Laravel, deployed from the repo

Push a Laravel app and homeport recognises it from composer.json. It runs on FrankenPHP, with PHP already compiled in, so there is no image to write and no PHP-FPM to tune.

What homeport reads

composer.json + composer.lock
Checks your platform requirements first, then installs exactly what the lockfile says, without dev dependencies.
package.json
When it has a build script, your front-end assets are built with Bun before the app is packaged.
homeport.yaml
How the binary serves, and optionally a release command such as migrations and extra processes such as a queue worker.

What you get

  • Runs on FrankenPHP: one process, no web server to configure
  • Apps sleep when idle and wake on the next request
  • HTTPS on a homeport.run address, and your own domain on paid plans
  • Environment variables set in the dashboard, exportable as .env

When you need more

The build makes one binary: FrankenPHP with your app inside. Its php-server command serves the app, and its php-cli runs artisan, so every command here is arguments to that binary, without a shell. run is the one line you need; add migrations on release or a queue worker the same way:

run: php-server --listen :$PORT
release: php-cli artisan migrate --force
processes:
  worker: php-cli artisan queue:work