Laravel · Deploy+

Hosting für Laravel, mit Deployment bei jedem Push.

PHP 8.3 bis 8.5, Composer, Node für Vite, MySQL 8 und Redis, bereits eingerichtet. Sie verbinden das Repository, und jeder Push veröffentlicht eine neue Version mit Ihren Migrationen, ohne Ausfallzeit; geht etwas schief, kehren Sie in Sekunden zur vorherigen zurück.
tuapp.com Produktion

Deploy+v42 veröffentlicht

main · a91f3c2 · vor 3 Min.

  • PHP 8.4 OPcache · Composer 2 ✓
  • MySQL 8 tuapp_prod · 214 MB ✓
  • Redis In-Memory-Cache ✓
  • Scheduler schedule:run · vor 12 s
  • Queues default · 0 ausstehend ✓

PHP 8.1 bis 8.5

die Version, die Ihr Laravel braucht, pro Projekt

Deploy+ inklusive

aus GitHub, GitLab, Bitbucket oder Gitea

Redis inklusive

Cache in allen Tarifen; persistent ab Avanza

Rollback in Sekunden

die letzten Versionen bleiben auf dem Server

Anforderungen

Was eine Laravel-App braucht, ohne einen Server aufzusetzen.

Die Anforderungen aus der Laravel-Dokumentation, Punkt für Punkt, im Vergleich zu dem, was jeder Hosting-Tarif von Hostsuar mitbringt.
  • PHP 8.3 oder höher · Laravel 12: 8.2 Von 5.4 bis 8.5, mit der gewünschten Version für jedes Projekt.
  • Erweiterungen ctype, curl, dom, fileinfo, filter, hash, mbstring, openssl, pcre, pdo, session, tokenizer, xml Verfügbar im PHP-Selektor, zusammen mit intl, gd, redis oder imagick.
  • Abhängigkeiten Composer 2 Im Terminal Ihres Kontos und im Deploy+-Skript.
  • Assets Node und npm für Vite Node über NVM: Deploy+ installiert es vorher, wenn Ihr Skript es verwendet.
  • Datenbank MySQL 8, PostgreSQL oder SQLite MySQL 8, und Deploy+ legt die Datenbank an und schreibt die .env, wenn Sie das Repository verbinden.
  • Cache, Queues und Sessions database standardmäßig seit Laravel 11 Queues und Sessions in Ihrem MySQL oder, ab Avanza, in persistentem Redis; für den Cache ist Redis in allen Tarifen enthalten.
  • Scheduler Cron jede Minute mit schedule:run Deploy+ trägt ihn beim Veröffentlichen in Ihren Cron ein, mit dem PHP Ihrer Version.
  • Deployment Git und SSH Deploy+ mit signiertem Webhook; SSH und Git in Ihrem Konto, sobald aktiviert.

Anforderungen laut die Laravel-Dokumentation.

Deploy+

Die letzte Meile, erledigt.

Ihren Code haben Sie bereits in Git. Deploy+ bringt ihn in die Produktion, so wie Sie es auf einem eigenen Server tun würden, mit bereits vorbereitetem Laravel-Profil.

Deployment

Ein Push, eine neue Version, null Sekunden Ausfallzeit

Deploy+ klont den Commit in einen eigenen Ordner, führt Composer, den Vite-Build, die Migrationen und php artisan optimize aus und schaltet erst dann, wenn alles geklappt hat, den Link um, der ihn veröffentlicht. Schlägt ein Schritt fehl, bleibt die vorherige Version online.
signierter Webhook Laravel-Profil ohne Ausfallzeit

Deploy #42 · main

Laravel-Profil

› git clone a91f3c2 1,8 s

› composer install --no-dev --optimize-autoloader 12,4 s

› npm ci && npm run build vite 21,0 s

› php artisan migrate --force 0,9 s

› php artisan optimize config · routes · views 1,2 s

releases/42 → current 0 s Unterbrechung

Das Profil

Es weiß, wohin public, storage und die .env gehören

Es veröffentlicht aus public, hält storage und die .env außerhalb des Codes, damit sie jede Version überdauern, und legt, wenn Sie es ankreuzen, die Datenbank an und schreibt die Verbindung.

.env + storage

von allen Versionen gemeinsam genutzt; die .env bearbeiten Sie im Panel

Gemeinsam für alle Versionen

~/deploy/tuapp/

shared/ → releases/20260905-1012/

.envbearbeitbar

storage/aus dem Profil

public/uploads/Ihre

In jede neue Version verlinkt; auch ein Rollback rührt sie nicht an.

Scheduler und Queues

Der Scheduler per Cron, die Queues sofort

schedule:run jede Minute mit dem PHP Ihrer App. Ab Avanza laufen Ihr Queue-Worker oder Horizon als persistente Prozesse weiter und starten von selbst neu, wenn sie abstürzen. In jedem Tarif kann der Scheduler einen Worker starten, der die Queue abarbeitet und anhält, wenn sie leer ist.
schedule:run queue:work Horizon persistente Prozesse

Eine Cron-Zeile

jede Minute

* * * * * php ~/tuapp/current/artisan schedule:run

routes/console.php

  • queue:work --stop-when-empty jede Minute
  • emails:resumen-diario 08:00
  • model:prune 02:00
  • nächste Ausführung

Rollback

Zurückgehen dauert Sekunden

Der Verlauf speichert jedes Deployment mit seinem Commit, wer es gestartet hat und dem vollständigen Log. Die letzten Versionen bleiben auf dem Server: Um zu einer zurückzukehren, wird nichts geklont.

5 Versionen

standardmäßig aufbewahrt; Sie entscheiden, wie viele

Deployment-Verlauf

5 gespeicherte Versionen
DatumAuslöserZeit
heute 10:12 · a91f3c2 Push 38 s
gestern 18:30 · e07b9d4 Manuell 41 s
gestern 11:05 · 4c1d8e7 Rollback 2 s
Mo 09:48 · 4c1d8e7 Push 35 s

gestern 18:30 · e07b9d4

die Version bleibt auf dem Server

Zu dieser Version zurückkehren

Das Skript

Das Skript, das wir für Laravel empfehlen.

Es geht von dem aus, das das Laravel-Profil vorschlägt, und ergänzt die Migrationen. Es läuft auf der neuen Version, bevor sie veröffentlicht wird: Schlägt ein Befehl fehl, wird nicht veröffentlicht. Danach startet Deploy+ Ihre persistenten Worker mit dem neuen Code neu.

npm ci && npm run build
nur, wenn Ihre App Assets mit Vite baut; Deploy+ installiert vorher Node
migrate --force
die Migrationen laufen vor dem Veröffentlichen, gegen die Produktionsdatenbank
optimize
cacht Konfiguration, Routen, Views und Events der neuen Version; die persistenten Worker startet Deploy+ beim Veröffentlichen neu
Deployment-Skript · Laravel-Profil
  1. 1composer install --no-dev --optimize-autoloader --no-interaction
  2. 2npm ci && npm run build
  3. 3php artisan migrate --force
  4. 4php artisan optimize
Variablen, gesperrte Befehle und Node in der Deploy+-Anleitung

Forge, VPS oder Hosting

Brauchen Sie einen Server für Ihre Laravel-App?

Für die meisten Apps nicht. Der Unterschied ist, wer den Server verwaltet und welche Prozesse Sie dauerhaft laufen lassen können.
  • Der Server

    Ein VPS mit Forge
    Sie verwalten ihn; Forge konfiguriert ihn
    Ein VPS von Hand
    Sie richten ihn ein und verwalten ihn
    Hostsuar
    Wir verwalten ihn
  • Patches und Sicherheit

    Ein VPS mit Forge
    Ihre Sache
    Ein VPS von Hand
    Ihre Sache
    Hostsuar
    Unsere Sache, mit Virenscanner und Isolierung
  • Deployment

    Ein VPS mit Forge
    Forge, mit Ihrem Skript
    Ein VPS von Hand
    Ihr eigenes Skript
    Hostsuar
    Deploy+ inklusive, mit Rollback
  • Backups

    Ein VPS mit Forge
    Die, die Sie einrichten
    Ein VPS von Hand
    Die, die Sie einrichten
    Hostsuar
    80 Wiederherstellungspunkte inklusive
  • Queues und Horizon

    Ein VPS mit Forge
    Ja
    Ein VPS von Hand
    Ja
    Hostsuar
    Ja, laufend ab Avanza
  • WebSockets (Reverb)

    Ein VPS mit Forge
    Ja
    Ein VPS von Hand
    Ja
    Hostsuar
    Mit einem Pusher-kompatiblen Dienst; wir helfen Ihnen beim Anbinden
  • Octane

    Ein VPS mit Forge
    Ja
    Ein VPS von Hand
    Ja
    Hostsuar
    Nein: PHP wird von LiteSpeed ausgeliefert
  • Support

    Ein VPS mit Forge
    Der des Tools
    Ein VPS von Hand
    Ihrer
    Hostsuar
    Techniker, die mit Laravel arbeiten

Was nicht passt, ist alles, was einen eigenen Server davor braucht: Octane, weil PHP hier von LiteSpeed ausgeliefert wird, und Reverb, ein Server, der auf einem eigenen Port lauscht, was wir nicht unterstützen. Für Echtzeit arbeitet Laravel von Haus aus mit Pusher und kompatiblen Diensten. Queue-Worker und Horizon laufen ab Avanza als persistente Prozesse: Dafür einen Server zu verwalten, ist Arbeit, die Sie sich sparen können.

Fragen

Laravel auf Hosting, ohne Kleingedrucktes.

Kann ich Laravel-Queues auf einem Hosting nutzen?

Ja, auf zwei Arten. Ab dem Tarif Avanza läuft ein queue:work oder Horizon als persistenter Prozess: Er verarbeitet jeden Job sofort und startet von selbst neu, wenn er abstürzt. Avanza erlaubt 3 Prozesse, Max 5 und Elastic 8. In jedem Tarif kann der Scheduler jede Minute ein queue:work --stop-when-empty starten, das alles Ausstehende abarbeitet und sich beendet. Alles zählt zu den Ressourcen Ihres Tarifs.

Funktionieren Horizon, Reverb und Octane?

Horizon ja, ab dem Tarif Avanza: Sie lassen es als persistenten Prozess auf einem persistenten Redis laufen, beides über den Kundenbereich. Reverb nicht auf dem Hosting selbst: Es ist ein Server, der auf einem eigenen Port lauscht, und solche Programme unterstützen wir nicht. Für WebSockets verbinden Sie Ihre App mit einem Pusher-kompatiblen Dienst wie Pusher Channels oder Ably, den Laravel von Haus aus unterstützt, und wir helfen Ihnen beim Anbinden. Octane nicht: PHP wird hier von LiteSpeed ausgeliefert, und Octane braucht einen eigenen Anwendungsserver (Swoole, RoadRunner oder FrankenPHP). Livewire, Inertia, Filament, Sanctum, Socialite oder Scout funktionieren ohne Besonderheiten.

Welche PHP-Version brauche ich?

Laravel 13 verlangt PHP 8.3 oder höher, Laravel 12 PHP 8.2. Sie haben 5.4 bis 8.5 und wählen die Version pro Domain oder pro Ordner, sodass eine alte und eine neue App im selben Konto nebeneinander laufen. Bei einer mit Deploy+ veröffentlichten Website wird die Version in der .htaccess Ihres Repositorys festgelegt, damit sie bei jedem Deployment mit dem Code mitwandert.

Kann ich eine Testumgebung haben?

Ja. Verbinden Sie dasselbe Repository zweimal: den Branch main mit der Domain und zum Beispiel develop mit staging.tuapp.com, jeweils mit eigener .env und eigener Datenbank. Jeder Push auf einen Branch wird nur auf dessen Website deployt.

Habe ich SSH und Composer?

Ja. Den SSH-Zugang aktivieren Sie in den Optionen des Dienstes im Kundenbereich, und zusätzlich haben Sie das integrierte Terminal von cPanel, mit Git und Composer. Und in Deploy+ können Sie einen Artisan-Befehl auf der veröffentlichten Version ausführen, ohne ein Terminal zu öffnen.

Und wenn ich von Forge oder einem anderen Hosting komme?

Sie verbinden dasselbe Repository, und Deploy+ deployt es genauso; mitbringen müssen Sie die Datenbank und das, was Sie in storage ablegen. Wenn Sie von einem anderen Anbieter kommen, helfen wir Ihnen beim Umzug.

Passende Anleitungen in unserer Dokumentation

Ihr nächster Push, in Produktion.

Jeder Tarif enthält Deploy+, Redis und das PHP, das Ihre Laravel-Version braucht. Aufgebaut von Leuten, die jeden Tag mit Laravel arbeiten; wenn Sie von einem anderen Anbieter kommen, helfen wir Ihnen beim Umzug. Tarife ab 4,10 €/Monat.