Architektur
Request-Pfad, Datenmodell, Auslieferung, Erweiterungsmodell und der Umfang einer einzelnen Installation.
Request-Pfad
Ein winget-Client spricht HTTPS mit Ihrem Reverse-Proxy, der einfaches HTTP an den Origin weiterleitet. Der Origin liest und schreibt in PostgreSQL sowie — für auf ihm abgelegte Installer — in sein eigenes Speicher-Volume.
GET /api/{siteToken}/information— Quell-Metadaten und unterstützte Versionen.POST /api/{siteToken}/manifestSearch— Volltextsuche.GET /api/{siteToken}/packageManifests/{id}— Manifest-Auslieferung mit serverseitiger Platzhalter-Auflösung.
Es werden ausschließlich freigegebene Versionen ausgeliefert.
Datenmodell
Pakete, Versionen und Manifeste sind relational gespeichert, in Formen, die wingets eigenes Manifest-Schema spiegeln, zusammen mit dem unangetasteten Upstream-Snapshot und jedem Overlay darüber. Sites, Edge-Nodes, Benutzer, das Audit-Log und Telemetrie-Ereignisse liegen in derselben Datenbank. Eine Datenbank ist der gesamte Zustand einer Installation, plus das Installer-Volume.
Installer-Auslieferung
Auf dem Origin abgelegte Installer werden von seinem eigenen Volume unter /dl/... ausgeliefert,
mit bei jeder Auslieferung neu berechnetem SHA-256.
Node-Steuerungsebene
Der Origin enrollt, scopt und überwacht Edge-Nodes; er betreibt den Node selbst nicht. Siehe Edge-Nodes.
Erweiterungsmodell
Auth-Provider registrieren sich über einen Plugin-Host und werden über Berechtigungen
freigeschaltet, die aus dem Lizenz-Token gelesen werden — ein Plugin aktiviert sich erst, wenn die
passende Berechtigung vorliegt. @kvellman/plugin-sdk ist die öffentliche Typ-Oberfläche dafür.
Stack
Nuxt 4 (Vue 3 + Nitro), TypeScript, PostgreSQL mit Drizzle ORM, Zod und die offiziellen winget-JSON-Schemas (via ajv) für die Manifest-Validierung, Nuxt UI, deutsche und englische Oberfläche. Ausschließlich On-Premise — selbst hostbar, inklusive Air-Gap-Betrieb.
Umfang einer Installation
Ein Anwendungsprozess übernimmt Requests, Installer-Auslieferung und geplante Arbeit (Telemetrie-Rollup, Katalog-Sync). Installer liegen auf einem lokalen Volume oder werden per URL referenziert. Konten sind in der Core-Edition an die jeweilige Installation gebunden. Die Komponenten einer Installation sind der Anwendungscontainer und eine Datenbank.