Symfony Hosting
Symfony, deployt ohne Downtime
Verbinde dein Repository und pushe. Jeder Deploy installiert die Composer-Pakete in einem frischen Release, leert den Cache, führt deine Doctrine-Migrationen aus und schaltet erst dann um, während Supervisor deine Messenger-Worker auf dem neuen Code am Laufen hält.
In drei Schritten vom Repository in die Produktion
- 1
Server erstellen
Bei Hetzner Cloud, DigitalOcean, Vultr, Akamai, AWS oder Google Cloud oder auf jedem Ubuntu-24.04-VPS. Wähle PHP 8.1 bis 8.5 und MySQL, MariaDB oder PostgreSQL; Redis, Node.js und Supervisor sind mit dabei.
- 2
Symfony-Site anlegen
Wähle die Symfony-Vorlage und dein Repository bei GitHub, GitLab oder Bitbucket. Nginx liefert
/publicüber PHP-FPM aus, und die Site bekommt eine kostenloseon-deploy.link-Adresse, die sofort funktioniert. - 3
Pushen
Ein Webhook deployt jeden Push auf deinen Branch. Das neue Release geht erst live, wenn Composer, der Cache und die Migrationen alle erfolgreich waren.
Deploy-Skript
Das Standard-Deploy-Skript für Symfony
Reines Bash, das mit set -e im neuen Release als Benutzer der Site läuft. Migrationen laufen nur, wenn dein Projekt einen migrations-Ordner hat. Bearbeite das Skript im Browser, um eigene Schritte wie asset-map:compile oder einen npm-Build zu ergänzen.
Nutze $VIMONTO_PHP und $VIMONTO_COMPOSER statt php und composer, damit das Skript der PHP-Version der Site folgt, wenn du sie änderst. $VIMONTO_BRANCH und $VIMONTO_COMMIT verraten dir, was gerade deployt wird.
$VIMONTO_COMPOSER install --no-dev --no-interaction --prefer-dist --optimize-autoloader
$VIMONTO_PHP bin/console cache:clear --env=prod
if [ -d migrations ]; then
$VIMONTO_PHP bin/console doctrine:migrations:migrate --no-interaction --allow-no-migration --env=prod
fiGebaut dafür, wie Symfony in Produktion läuft
Messenger-Worker
Schalte die Messenger-Worker ein und wähle deine Transports, etwa
async scheduler_default, sowie 1 bis 20 Prozesse. Supervisor führtmessenger:consumeaus, und jeder Deploy sendetmessenger:stop-workers.Rollbacks in Sekunden
Die neuesten fünf Releases bleiben auf dem Server. Zurücksetzen macht ein früheres Release wieder live, ohne etwas neu zu bauen.
Eine gemeinsame .env
Schreibe die Produktions-
.envauf der Seite Umgebung. Sie wird verschlüsselt gespeichert, in jedes Release verlinkt und mit einem Verlauf der letzten 50 Versionen aufbewahrt.Private Pakete
Zugangsdaten für private Composer- und npm-Registries werden verschlüsselt gespeichert und nur während des Builds genutzt, über
COMPOSER_AUTHund eine temporäre npm-Konfiguration.
Jeder Deploy, Schritt für Schritt
Verfolge die Phasen Abrufen, Build und Live, während ein Deploy läuft, mit der Ausgabe jedes Schritts. Schlägt ein Schritt fehl, wird das Release verworfen, und die Live-Site bleibt unverändert.

Fragen zum Symfony Hosting
Wo setze ich APP_ENV, APP_SECRET und DATABASE_URL?
Auf der Seite Umgebung der Site. Die .env, die du dort speicherst, wird auf den Server geschrieben, anstelle der .env aus deinem Repository in jedes Release verlinkt und übersteht Deploys und Rollbacks. Setze APP_ENV=prod, damit die Composer-Skripte mit deinen Produktions-Bundles laufen.
Welche PHP-Versionen kann ich nutzen?
PHP 8.1 bis 8.5. Installiere mehrere Versionen nebeneinander auf einem Server und wähle pro Site eine aus; das Deploy-Skript folgt ihr über $VIMONTO_PHP.
Kann ich den Symfony Scheduler betreiben?
Ja. Füge seinen Transport zu den Messenger-Workern hinzu, zum Beispiel async scheduler_default. Für einen einfachen Cron-Befehl legst du stattdessen einen geplanten Job auf dem Server an.
Funktioniert es mit API Platform oder einem Monorepo?
Ja. Jede Symfony-App mit einer public/index.php funktioniert. In einem Monorepo setzt du das Stammverzeichnis der Site auf den Ordner der App, etwa /api.
Was kostet es?
Der kostenlose Tarif umfasst 1 Server und 3 Sites mit allen Funktionen. Premium kostet 15 € pro Monat und Organisation, ohne Grenzen. Deine Server rechnet dein Cloud-Anbieter ab.
Verwandte Seiten
- DeploymentsReleases ohne Downtime, Push to Deploy, Deploy-URLs für die CI und Rollbacks mit einem Klick.
- PHPReine PHP-Apps mit mehreren PHP-Versionen nebeneinander und anpassbaren PHP-FPM-Einstellungen.
- LaravelLaravel-Deploys ohne Downtime, mit Horizon, Reverb, Pulse, Queues und Scheduler nur einen Schalter entfernt.
- Hetzner CloudServer in Deutschland, Finnland, den USA und Singapur, mit DNS und Backups in Object Storage.
Dein nächster Deploy ist live, bevor dein Kaffee fertig ist.
Erstelle eine Organisation, verbinde einen Server und pushe. Mehr nicht.