# Vendoo 1.32.0 – Installation, Update und Prüfung

## A. Windows-Update von 1.31.0

1. Vendoo sowie offene Setup-, Node- und FLUX-Fenster schließen.
2. Das Release-ZIP vollständig in einen temporären Ordner entpacken.
3. Im entpackten Paket den Ordner `vendoo` öffnen.
4. Den **Inhalt** dieses Ordners nach `W:\ChatGPT\Vendoo` kopieren.
5. Windows-Abfrage **Dateien im Ziel ersetzen** bestätigen.
6. `W:\ChatGPT\Vendoo` vorher **nicht löschen, leeren oder umbenennen**.
7. `.env`, `db\vendoo.db`, `uploads`, `backups`, `operations`, lokale FLUX-Modelle und ComfyUI-Daten nicht löschen.
8. `W:\ChatGPT\Vendoo\setup.bat` starten.
9. Menüpunkt **3 – Update** ausführen.
10. Danach Menüpunkt **2 – Starten** ausführen.
11. `http://127.0.0.1:8124/healthz` und `http://127.0.0.1:8124/readyz` prüfen.

Windows benötigt die neuen Pfadvariablen nicht. Ohne Eintrag bleiben DB, Uploads und Backups exakt an ihren bisherigen Orten.

## B. Docker-Neuinstallation

1. Release entpacken und in den gewünschten Server-/NAS-Ordner wechseln.
2. `.env.example` als `.env` kopieren.
3. Einen starken Einrichtungs-Code erzeugen, mindestens 32 zufällige Zeichen, und als `VENDOO_SETUP_TOKEN` setzen. Beispiele:

```bash
openssl rand -hex 32
```

PowerShell:

```powershell
[Convert]::ToHexString([Security.Cryptography.RandomNumberGenerator]::GetBytes(32)).ToLower()
```

Die `.env` anschließend nur für den Administrator lesbar machen (`chmod 600 .env` auf Linux/NAS).
4. Für lokalen Test `PUBLIC_BASE_URL` zunächst leer lassen. Für Produktion die echte HTTPS-URL und Host-/Origin-Allowlist setzen.
5. Starten:

```bash
docker compose config
docker compose build --pull
docker compose up -d
```

6. Zustand prüfen:

```bash
docker compose ps
docker compose logs --tail=200 vendoo
```

7. Lokal `http://127.0.0.1:8124/readyz` öffnen. Erwartet wird HTTP 200 und `"ok": true`.
8. Vendoo öffnen, ersten Administrator anlegen und dabei den `VENDOO_SETUP_TOKEN` als Einrichtungs-Code eingeben.
9. Danach Reverse Proxy und HTTPS konfigurieren. Port 8124 nicht direkt aus dem Internet veröffentlichen.
10. Testbackup erstellen und Prüfsumme kontrollieren.

## C. Portainer/NAS

### Empfohlen: Named Volumes

`compose.yaml` direkt als Stack verwenden. Portainer legt fünf persistente Volumes an. Das Image läuft ohne Rootrechte.

### Option: sichtbare NAS-Ordner

1. Einen dedizierten Zielordner verwenden, zum Beispiel `/volume1/docker/vendoo`, und darunter anlegen:

```text
runtime/db
runtime/uploads
runtime/backups
runtime/operations
runtime/logs
```

2. Diese Ordner UID/GID 1000 schreibbar machen. Den Vendoo-Container nicht als Root starten.
3. Compose mit Override starten:

```bash
docker compose -f compose.yaml -f compose.bind-mounts.example.yaml up -d --build
```

Bei `Kein Schreibzugriff ... (Container-UID 1000)` keine Root-Ausführung aktivieren, sondern die Ordnerrechte korrigieren. `LOCAL_IMAGE_ENABLED` bleibt im Hauptcontainer standardmäßig `false`; ein vorhandenes FLUX/ComfyUI wird separat betrieben und über `LOCAL_IMAGE_URL` angebunden.

## D. Docker-Update

```bash
./scripts/docker-backup.sh
# neuen Vendoo-Code über den alten Codeordner kopieren; .env nicht ersetzen
docker compose config
docker compose build --pull
docker compose up -d --force-recreate
docker compose ps
docker compose logs --tail=200 vendoo
```

Anschließend `/readyz`, Login, Artikelübersicht, ein vorhandenes Bild, Speichern eines Testartikels, SmartCopy und Publish-Center ohne echte Veröffentlichung prüfen.

### Rollback

1. Container stoppen.
2. Vorheriges Image beziehungsweise vorherigen Code wieder verwenden.
3. Volumes nicht löschen.
4. Container starten und Readiness prüfen.
5. Nur wenn eine Datenmigration das verlangt, das zuvor erzeugte gemeinsame DB-/Upload-Backup in einen sicheren Testpfad zurückspielen und erst danach produktiv restaurieren.

## E. Backup und Restore

Backup mit kurzem geordnetem Stopp:

```bash
./scripts/docker-backup.sh
```

Restore ersetzt die aktuell gemounteten DB-, Upload-, Backup-, Operations- und Logdaten. Das Skript prüft eine vorhandene SHA-256-Datei und erstellt vorab automatisch ein zusätzliches Sicherheitsbackup:

```bash
./scripts/docker-restore.sh /pfad/zum/vendoo-data.tar.gz --confirm
```

Danach zwingend `/readyz`, Login, Benutzer, Artikel, Bilder und Backup-Liste prüfen.

## F. Funktionsprüfung

- Login, Logout und erneute Anmeldung
- Rollen-/Adminschutz
- Artikel laden, erstellen, bearbeiten und speichern
- Bild hochladen und erneut abrufen
- Galerie-Viewer und Zoom
- SmartCopy öffnen und Inhalte kopieren
- Publish-Center laden, ohne echte Veröffentlichung auszulösen
- `/healthz` und `/readyz`
- Containerneustart; Artikel und Bilder müssen erhalten bleiben
- Backup erzeugen und SHA-256 prüfen
- FLUX-Ausfall: Vendoo muss weiter starten und Kernfunktionen bereitstellen
