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