Deployment

Origin mit Docker hinter Caddy oder vorhandenem Traefik betreiben, plus Edge-Nodes.

winget verlangt HTTPS

Eine winget-REST-Quelle muss über HTTPS mit vertrauenswürdigem Zertifikat laufen (bei neueren winget-Versionen auch für localhost). Plane TLS für jeden Endpunkt, mit dem Clients sprechen.

Origin via Docker

Der Community-Stack ist App + PostgreSQL. Zwei Reverse-Proxy-Varianten sind dabei:

  • Caddy (docker-compose.yml) — automatisches Let's Encrypt für eine öffentliche Domain.
  • Vorhandener Traefik (docker-compose.traefik.yml) — ohne Caddy; die App hängt sich in Traefiks Netz und wird per Labels geroutet. Ideal, wenn Port 80/443 schon von Traefik belegt ist.
# hinter vorhandenem Traefik:
docker compose -f docker-compose.traefik.yml --env-file .env.deploy up -d

Setze KVELLMAN_IMAGE auf ein vorgebautes Image (woanders gebaut und in eine Registry gepusht), um nicht auf einem kleinen Server zu bauen; Migrationen laufen beim Container-Start automatisch.

Edge-/Mirror-Nodes (Enterprise)

Ein Standort kann einen headless Edge-Node betreiben, der die winget-API und Installer-Downloads lokal ausliefert und bei Bedarf von der Origin cached. Clients tragen den Node als Quelle ein; die erste Installation zieht über den Node, der Rest aus dem LAN. Nodes enrollen sich bei der Origin (Einmal-Key → dauerhafte mTLS-Identität) und werden zentral gesteuert (Paket-Scope, Installer-Filter, Push/Vorab-Spiegeln, Health).

Telemetrie & Schalter

Repository-Nutzungstelemetrie (Suchen, Manifest-Abrufe, Downloads) ist standardmäßig aus und wird per Umgebungsvariable aktiviert. Gleiches Muster gilt für den Upstream-Katalog-Sync und einen GitHub-Token für Importe.

Die vollständige Schritt-für-Schritt-Anleitung (Origin, Edge-Node unter WSL, TLS für LAN/localhost, Registry-Workflow) steht in DEPLOYMENT.md im Open-Core-Repository.