# Vendoo 1.34.0 – GitHub Deployment

## Repository

- Repository: `Masterluke77/vendoo`
- Sichtbarkeit: privat
- Stabiler Branch: `main`
- Entwicklungsbranch: `develop`
- Erstimport-Branch: `release/1.34.0-initial-import`

## Kontrollierter Erstimport

Unter Windows wird `GitHub-Deploy-Assistent.bat` gestartet. Der Assistent:

1. prüft beziehungsweise installiert Git für Windows über `winget`,
2. klont die vorhandene GitHub-Baseline in einen temporären Arbeitsordner,
3. verwendet oder erstellt `release/1.34.0-initial-import`,
4. kopiert nur den bereinigten Vendoo-Quellstand,
5. blockiert `.env`, Datenbanken, Uploads, Backups, Logs, Laufzeitdaten und Modelle,
6. führt nach Möglichkeit `tools/verify-git-safety.mjs` aus,
7. zeigt alle Änderungen vor dem Commit,
8. verlangt zur Freigabe die exakte Eingabe `PUSH`,
9. pusht ausschließlich den Release-Branch,
10. öffnet den vorbereiteten Pull-Request-Vergleich im Browser.

Der Assistent löscht oder verändert keine produktiven Vendoo-Daten. Der temporäre Git-Arbeitsordner wird nach Abschluss entfernt.

## Pull Request und Merge

Der Pull Request wird gegen `main` erstellt. Vor dem Merge müssen die GitHub-Actions-Prüfungen erfolgreich sein:

- reproduzierbare Installation über `npm ci`,
- Git-Sicherheitsgate,
- JavaScript-/MJS-Syntax,
- Deployment-Gate 1.34.0,
- Datenbankmigrationstest,
- Compose-Prüfung für lokal, NAS und VPS,
- Docker-Testbuild.

Empfohlen ist ein Squash-Merge. Erst danach wird ein GitHub Release `v1.34.0` veröffentlicht.

## Release-Automation

Beim Veröffentlichen eines GitHub Releases:

- wird ein bereinigtes Release-Staging erzeugt,
- werden Einzeldatei-SHA-256-Prüfsummen erzeugt,
- wird `Vendoo_1.34.0.zip` gebaut,
- wird eine SHA-256-Datei für das ZIP erzeugt,
- werden beide Dateien an das GitHub Release angehängt,
- wird ein Multi-Arch-Container für `linux/amd64` und `linux/arm64` gebaut,
- wird das Image als `ghcr.io/masterluke77/vendoo` in die GitHub Container Registry veröffentlicht,
- wird der veröffentlichte Image-Digest mit einer GitHub-Provenienz-Attestierung versehen.

Das Release-ZIP wird nicht dauerhaft in die Git-Historie committed.

## Secrets

Produktive Secrets gehören ausschließlich in:

- die lokale `.env`, die der Installer automatisch erzeugt,
- den persistenten Runtime-Konfigurationsspeicher von Vendoo,
- gegebenenfalls geschützte GitHub Environments für spätere Deployments.

Nicht zulässig sind Secrets in Quellcode, Issues, Pull Requests, Workflow-Ausgaben oder Release-Paketen.

## Späteres Produktionsdeployment

Ein automatisches Deployment auf NAS oder VPS wird erst freigeschaltet, wenn diese Gates praktisch bestätigt sind:

- Backup und Restore auf dem Zielsystem,
- Readiness nach Update,
- Rollback auf die vorherige Container-Version,
- TLS und Domainprüfung,
- getrennte Staging- und Produktionsumgebung,
- manuelle Freigabe des GitHub Environments `production`.
