Eine Staging-Site ist eine Kopie einer Site auf demselben Server, die einen anderen Branch desselben Repositorys unter einer eigenen Adresse deployt. Damit probierst du einen Branch wie develop oder staging aus, bevor er live geht: Jeder Push auf diesen Branch deployt die Staging-Site, und nur die Staging-Site.
Staging-Sites sind echte Sites. Jede hat eigene Seiten (Deployments, Umgebung, Domains, Logs und so weiter), ein eigenes Verzeichnis auf dem Server, einen eigenen Deploy-Key und eine eigene Deploy-URL. Du findest sie auf der Seite Staging der Site, die sie abbilden, und darunter auf der Seite Sites des Servers.
Eine Staging-Site erstellen
- Öffne die Site und klicke in der Seitenleiste auf Staging.
- Klicke auf Neue Staging-Site.
- Wähle den Branch. Mit einer Git-Verbindung werden die Branches des Repositorys vorgeschlagen (der Branch, den die Site selbst deployt, fehlt in der Liste); du kannst auch einen Branch eintippen, den du später pushst.
- Wähle die Adresse:
- eine Adresse auf
on-deploy.link, vorausgefüllt mit einem generierten Namen, der mitstaging-beginnt (wenn generierte Adressen verfügbar sind). Sie bekommt automatisch HTTPS, sobald die Adresse auflöst; oder - klicke auf Eigene Domain verwenden und gib eine Domain ein, etwa
staging.example.com. Liegt die Domain in einer Zone einer deiner DNS-Integrationen, siehst du die Einträge, die Vimonto Deploy anlegt, genau wie beim Hinzufügen einer Domain. Für eine Staging-Domain wird keinwww.-Eintrag angelegt.
- eine Adresse auf
- Lass Die .env kopieren eingeschaltet, um mit der
.envder Site zu starten (wird angezeigt, wenn die Site eine hat). - Lass Bei jedem Push deployen eingeschaltet, damit die Staging-Site bei jedem Push auf ihren Branch deployt wird (wird für Sites mit Git-Verbindung angezeigt).
- Klicke auf Staging-Site erstellen.
Die Staging-Site wird wie eine neue Site als Hintergrundtask eingerichtet, und ihr erster Deploy startet, sobald die Einrichtung fertig ist.
Welche Datenbank nutzt eine Staging-Site?
Nie die Live-Datenbank. Auf einem Server mit Datenbank bekommt jede Staging-Site eine neue, leere Datenbank und einen eigenen Benutzer, benannt nach ihrer Adresse (zum Beispiel staging_example_com). Führe darauf deine Migrationen und Seeder aus: php artisan migrate --force im Deploy-Skript verändert immer nur die Staging-Datenbank.
Auf einem Server ohne Datenbank (zum Beispiel einem Webserver, dessen Datenbank auf einem separaten Datenbankserver läuft) bekommt die Staging-Site keine Datenbank-Einstellungen: Die kopierte .env hat leere DB_DATABASE, DB_USERNAME und DB_PASSWORD. Lege eine Datenbank für Staging an und trage sie auf der Seite Umgebung ein, nie mit den Zugangsdaten der Live-Datenbank.
Was bekommt eine Staging-Site?
Eine Staging-Site entsteht mit Site klonen auf demselben Server, mit diesen Unterschieden:
| Staging-Site | |
|---|---|
| Repository, Git-Verbindung, Build-Einstellungen, Deploy-Skript, Benachrichtigungen, Weiterleitungen und Sicherheitsregeln | Von der Site kopiert |
| Branch | Der gewählte Branch |
| Adresse und Verzeichnis auf dem Server | Eigene |
| Deploy-Key, Deploy-URL und Push-Webhook | Eigene |
| Datenbank | Eine eigene neue Datenbank mit Benutzer (nie die Datenbank der Site) |
| Zertifikate, Queue-Worker und Prozesse, Site-Features, von der App gespeicherte Dateien | Nicht kopiert |
Die .env einer Staging-Site
Mit eingeschaltetem Die .env kopieren bekommt die Staging-Site die .env der Site mit:
APP_URLauf die Staging-Adresse gesetzt;APP_ENV=staging;- den Werten
DB_CONNECTION,DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAMEundDB_PASSWORDder eigenen Datenbank, oder leeren Datenbank-Einstellungen auf einem Server ohne Datenbank.
Alles andere, etwa Mail-, Cache- und Queue-Einstellungen, bleibt wie auf der Live-Site. Ändere das auf der Seite Umgebung der Staging-Site, wenn sie eigene Werte braucht.
Bei ausgeschaltetem Die .env kopieren bekommt die Staging-Site eine frische .env wie eine neue Site, mit APP_ENV=staging.
Wie Pushes deployt werden
Die Site und jede ihrer Staging-Sites haben bei deinem Git-Host einen eigenen Webhook mit je eigener Deploy-URL. Ein Push erreicht alle, und jede deployt nur, wenn der Push auf ihren eigenen Branch ging:
- ein Push auf
maindeployt die Site, diemainfolgt; - ein Push auf
developdeployt die Staging-Site, diedevelopfolgt.
Die anderen Webhooks antworten, dass der Push nicht auf ihren Branch ging, und es passiert nichts weiter. Schalte Bei jedem Push deployen für eine Staging-Site später auf ihrer Seite Deployments ein oder aus.
Staging-Sites deployen, öffnen und löschen
Die Seite Staging listet jede Staging-Site der Site mit ihrem Branch, ob sie bei jedem Push deployt, und ihrem letzten Deployment. Für jede kannst du:
- auf Jetzt deployen klicken, um ihren Branch sofort zu deployen;
- auf Site öffnen klicken, um ihre Adresse in einem neuen Tab zu öffnen;
- auf ihre Adresse klicken, um zu den eigenen Seiten der Staging-Site zu gelangen;
- auf Löschen klicken, ihre Adresse eintippen und auf Staging-Site löschen klicken, um sie zu entfernen.
Eine Staging-Site zu löschen funktioniert wie das Löschen einer Site: Sie wird mit ihren Releases, ihrer .env, ihren Workern und Zertifikaten vom Server entfernt, und Vimonto Deploy löscht die DNS-Einträge, die es dafür angelegt hat, sowie ihren Deploy-Key und Webhook bei deinem Git-Host. Ihre Datenbank bleibt erhalten; lösche sie auf der Seite Datenbanken des Servers.
Der Header der Site zeigt, wie viele Staging-Sites sie hat; der Header einer Staging-Site zeigt Staging von mit einem Link zurück zu ihrer Site.
Wer darf Staging-Sites erstellen?
Jedes Mitglied kann Staging-Sites sehen. Erstellen, Deployen und Löschen erfordert die Berechtigung, Sites zu verwalten, die Owner, Administratoren, Manager und Developer haben. Staging-Sites liegen auf demselben Server wie ihre Site, daher können Mitglieder, die die Site öffnen können, auch ihre Staging-Sites öffnen.
Häufig gestellte Fragen
Kann jede Site Staging-Sites haben?
Sites mit einem Repository können es. WordPress-, phpMyAdmin- und lastverteilte Sites nicht, und eine Staging-Site kann keine eigenen Staging-Sites haben.
Was passiert mit Staging-Sites, wenn ich die Site lösche?
Sie bleiben als eigene Sites bestehen. Lösche sie vorher auf der Seite Staging, wenn du sie nicht mehr brauchst.
Kann ich eine Staging-Site auf einen anderen Server legen?
Nicht von der Seite Staging aus: Staging-Sites liegen auf dem Server ihrer Site. Nutze Site klonen, um eine Kopie auf einem anderen Server anzulegen.
Warum wird der Branch der Staging-Site nicht vorgeschlagen?
Branches werden für Sites mit Git-Verbindung vorgeschlagen. Bei einer Site, die nur eine Git-URL hat, tippst du den Branch-Namen ein.