Skip to content

Server-Setup und Projektdeployment auf Laravel Forge

Dieses Dokument beschreibt Schritt für Schritt, wie man über Laravel Forge einen Hetzner-Server einrichtet und ein Projekt deployt.


1. Server direkt über Forge erstellen

  1. In Forge anmelden und zu Servers → New Server gehen.
  2. Provider auswählen: Hetzner.
  3. Server konfigurieren:
    • Server-Typ: Application Server
    • Größe: passend zum Projekt
    • Region: z.B. Falkenstein
    • Datenbank: In der Regel MariaDB
  4. Die Credentials (sudo und db root) im KeePass speichern
    • Neuer Ordner für neues Projekt
    • Schema: <Projektname> <servername> sudo und <Projektname> <servername> db root

2. Den eigenen SSH Key auf dem Server (via in Forge) hinterlegen

  1. Navigiere zu Settings → SSH.
  2. Neuen SSH Key hinzufügen. Falls im Account bereits ein Key hinterlegt ist, kann dieser verwendet werden.

3. Site auf Forge anlegen

  1. Sites → New Site
  2. Angaben:
    • Type: Other
    • Domain: Immer custom Domain <projektname>.farbcode.net (kein redirect von www)
    • Repository: GitHub verbinden
    • Branch wählen

4. Deployment einrichten

  1. {site} → Settings → Deployments
  2. Deployment Script von einem anderen Projekt kopieren (z.B. kjp, oasebw oder smartrecycle01) oder anpassen
  3. Shared paths anpassen (i.d.R. From storage To app/storage)
  4. Storage-Ordner mit leeren Ordnern füllen
    • storage
    • framework
      • cache
      • sessions
      • testing
      • views
    • logs
  5. Health Checks aktivieren

5. Domains und Zertifikate einrichten

  1. {site} → Domains
  2. <projektname>.farbcode.net zur primären Domain machen
  3. In der Regel mnoch ws.<projektname>.farbcode.net anlegen (auch als custom Domain)
  4. Let's Encrypt Zertifikate für beide Domains erstellen.

6. Nginx Einstellungen anpassen

  1. {site} → Domains → Edit Nginx configuration
  2. "General Site configuration" anpassen (vgl. andere Projekte (z.B. kjp, oasebw oder smartrecycle01))
  3. Projektspezifische Konfiguration anpassen (vgl. andere Projekte (z.B. kjp, oasebw oder smartrecycle01))

7. Environment Variables setzen

  1. Mit dem Remote Host verbinden (SSH)
  2. .env und .env.client im Projekt-Root erstellen (den genauen Pfad mit dem deployment Script abgleichen)

8. Datenbank anlegen

  1. Auf dem Server neue Datenbank (inkl. User) anlegen (Server -> Storage -> Database)
  2. Zugangsdaten direkt in die .env eintragen (müssen i.d.R. nicht ins KeePass übernommen werden.)

9. Projekt deployen


10. Services & Scheduler einrichten

  • Laravel Pulse
  • Laravel Reverb
  • Laravel Horizon
  • Cron Scheduler

11. Backups einrichten

siehe Backup-Setup für forge-Server