2.9 KiB
Commercial Deployment
Diese Datei beschreibt die technische Härtung der offiziellen, lizenzierten Distribution. Sie ist keine Vertrags- oder Lizenzvorlage.
Runtime-Secrets
Bevorzugt werden Datei-Secrets:
LICENSE_TOKEN_FILE=/run/secrets/license/token
BULK_API_KEY_FILE=/run/secrets/bulk/key
statt Secrets direkt in Prozesslisten, Compose-Dateien oder Git-Repositories zu hinterlegen.
Lizenzmodi
offline: vollständig lokale Signaturprüfung;hybrid: zentrale Prüfung mit signiertem Lease-Cache und Offline-Grace-Periode;online: aktuelle zentrale Prüfung erforderlich.
Für hochverfügbare Publisher-Installationen ist hybrid meist der geeignetste technische Kompromiss. Für einen streng kontrollierten, zentral widerrufbaren Dienst kann online sinnvoll sein.
Full-/API-Container
Ein lizenziertes Full-Deployment kann beispielsweise setzen:
REQUIRE_LICENSE=true
LICENSE_MODE=hybrid
WHITE_LABEL=true
WHITE_LABEL=true wirkt nur mit der Capability white_label.
Bulk
Der Bulk-Dienst sollte separat skaliert werden. Er benötigt:
bulk_api
und sollte mit BULK_REQUIRE_API_KEY=true betrieben werden. Das mitgelieferte Dockerfile.bulk erzwingt diese Defaults bereits.
Kubernetes
deploy/kubernetes-bulk.yaml enthält:
- 3 Replikate;
- Rolling Update ohne geplante Unterbrechung;
- PodDisruptionBudget;
- HPA;
- Topology Spread;
- non-root;
- read-only root filesystem;
- seccomp
RuntimeDefault; - keine Linux-Capabilities;
- deaktiviertes ServiceAccount-Token;
- Lizenz- und API-Key-Secrets als Dateien;
- internen ClusterIP-Service;
- keinen öffentlichen Ingress.
CORS
API_ALLOWED_ORIGIN=* ist für offen konsumierbare Badge-/Manifest-APIs bequem. Für interne kommerzielle APIs kann CORS vollständig deaktiviert werden:
API_ALLOWED_ORIGIN=
oder auf einen kontrollierten Origin beschränkt werden.
Observability
X-Request-IDwird übernommen oder erzeugt;- Requests werden strukturiert als JSON protokolliert;
/metricsliefert Prometheus-Metriken;/healthzist reine Liveness;/readyzberücksichtigt bei Bulk die Lizenz-Capability und die notwendige API-Key-Konfiguration.
Supply Chain
Die GitHub-Actions-Vorlage baut Full- und Bulk-Images für amd64/arm64, erzeugt BuildKit-Provenance und SBOMs und signiert den veröffentlichten Multi-Arch-Digest keyless mit Sigstore/Cosign über GitHub OIDC. Produktive Deployments sollten freigegebene Digests statt ausschließlich latest verwenden und die Signatur vor dem Rollout prüfen. Siehe SUPPLY-CHAIN.md.
Getrennte Bulk-Topologie
In einer professionellen Topologie sollte der interne Bulk-Dienst BASE_URL für seine eigene Instanz-/Domainbindung verwenden und OUTPUT_BASE_URL auf die öffentlich erreichbare Deklarationsinstanz setzen. So bleiben erzeugte Links gültig, obwohl SERVICE_MODE=bulk selbst keine HTML-Deklarationen oder Badge-Endpunkte bereitstellt.