Deploy Symfony to hardware you control.

Depfloy provisions PHP 8.4 and nginx, then deploys each push as a new release built beside the running one. The symlink flips only after the build succeeds.

What runs on the server
Runtime
PHP 8.4
Releases
Zero-downtime symlink flip
Rollback
One click; rebuild depends on runtime and retained releases
The deploy script Depfloy runs
composer install --no-dev --optimize-autoloader
php bin/console cache:clear --no-warmup
php bin/console cache:warmup
Console commands belong in the release

Migrations, cache warmup and asset builds run as part of the deploy script, on the server, before anything goes live.

Messenger workers are supervised

Long-running consumers are managed as background jobs — restarted after each deploy so they pick up the new code, and visible next to the project they belong to.

var/ stays out of the release

Directories that hold runtime state are shared across releases rather than rebuilt, so sessions and uploads are not lost on deploy.

Symfony deploys with the same release model as every other framework here. What tends to matter in practice is the surrounding runtime — workers, cron and the directories that must not be wiped — and those are configured per project.

FAQ

Symfony questions

Which PHP version is used? +
PHP 8.4 is provisioned by default, and the version is managed from the server's PHP screen.
Can I run doctrine migrations on deploy? +
Yes — add the command to the project's deploy script. It runs on the server as part of building the release.
How are scheduled tasks handled? +
Cron entries are configured per project from the dashboard, so a scheduled console command lives next to the code that defines it.

9 other frameworks deploy the same way.

The release model is identical; only the build steps differ.

Deploy Symfony to your own server.

7 days free, no credit card. Your servers keep running exactly as Depfloy configured them.