---
title: Releases & Deployments
sidebar_label: Releases & Deployments
---

Dieses Dokument beschreibt, wie Releases vorbereitet und durchgeführt werden und welche Tests aus Ops‑Sicht Pflicht sind.

## 1. Vor dem Release

- Changelog grob durchsehen (Feature‑/Bugfix‑Umfang verstehen).
- Datenbank‑Migrations prüfen:
  - Sind `up`/`down` sauber und idempotent?
  - Gibt es lange laufende Migrations (Index‑Builds)?
- Konfig‑Änderungen:
  - Neue ENV‑Variablen in `dokploy`/Compose hinterlegt?
  - Secrets über Secret‑Store / Dokploy‑UI konfiguriert?

## 2. Pflicht‑Tests vor Prod‑Deploy

- **PHPUnit**:
  - `php artisan test` oder mindestens relevante Suites (z.B. „Checkout“, „Storage“).
- **Frontend‑Build**:
  - `npm run build` (bzw. CI‑Job).
- **E2E‑Smoke‑Tests** (siehe `docs/testing/e2e.md`):
  - Guest‑Flow: Event beitreten, Foto hochladen, Anzeige prüfen.
  - Tenant‑Flow: Login, Event anlegen, Medienübersicht öffnen.

## 3. Deployment‑Ablauf (Beispiel Dokploy)

- Neues Image wird gebaut und getaggt (z.B. `fotospiel-app:2025-11-20`).
- Dokploy‑Stack aktualisieren:
  - App‑Container.
  - Queue/Horizon‑Container.
  - Docs‑Container (falls betroffen).
- Nach dem Deploy:
  - `php artisan migrate --force`.
  - Queues prüfen (`horizon:status`, `queue:failed`).
  - Schnelle Smoke‑Tests in Prod (nur lesende Aktionen oder Test‑Tenant).

## 4. Rollback‑Strategie

- Vor dem Deploy aktuellen Datenbank‑Snapshot sicherstellen.
- Vorheriges Image‑Tag notieren.
- Rollback:
  - Dokploy/Compose auf vorheriges Image zurückdrehen.
  - Falls Migrations rückwärtskompatibel: ggf. `migrate:rollback`.
  - Incident‑Eintrag mit Ursache und Lessons Learned ergänzen.

