# Huy-Digital Terminal — Update-Server

Diese Verzeichnis wird per Caddy unter `https://updates.huy-digital.com/`
ausgeliefert (statisches Dateiverzeichnis).

## Was gehört hier rein?

electron-updater (generic provider) erwartet:

```
updates/
├── latest.yml                                ← Manifest (Windows)
├── latest-mac.yml                            ← Manifest (macOS, später)
├── HuyDigital-Terminal-Setup-X.Y.Z.exe       ← NSIS-Installer
├── HuyDigital-Terminal-Setup-X.Y.Z.exe.blockmap   ← Delta-Updates
└── (ältere Versionen optional behalten)
```

## Wie wird hochgeladen?

Auf dem Build-Rechner (Windows) nach erfolgreichem Build:

```bash
cd terminal/dist
scp HuyDigital-Terminal-Setup-X.Y.Z.exe \
    HuyDigital-Terminal-Setup-X.Y.Z.exe.blockmap \
    latest.yml \
    rex@178.104.210.217:/opt/huy-digital/updates/
```

`latest.yml` enthält Version + SHA-512-Hash der Files. electron-updater
prüft den Hash vor Install — wer den Hash NICHT verändert kann (= Update-
Server-Compromise minus Hash-Manipulation), kommt nicht durch.

## Was passiert bei Anti-Downgrade?

`autoUpdater.allowDowngrade = false` in `src/main/updater.js` → die App
akzeptiert nur Versionen höher als die installierte. Wer auf dem Server
ein altes Manifest hinterlegt, erreicht installierte User NICHT.

## Sicherheit

- Caddy serviert nur GET (statisch) — kein Upload-Endpunkt.
- TLS automatisch via Let's Encrypt.
- Verzeichnis kann NUR von rex (Owner) UND caddy (Lesen via Pfad) angefasst werden.
- Dateien hier sollten signiert sein (nach GmbH-Gründung: Microsoft EV Authenticode).
- Bis dahin: User muss SmartScreen "trotzdem ausführen" klicken (Test-Phase).
