Pipelet
Self-Hosted · Auf deinem Cluster · Kein Vendor-Lock-In

Pipelet auf deinem Kubernetes

26 signed Container-Images, ein Helm-Chart, zwei Tenancy-Modi. Daten bleiben bei dir — Compliance-, Datenresidenz-, oder Air-Gap-Anforderungen kein Problem. Identische Images wie die Pipelet-SaaS, identische Updates, identische Monitoring-Hooks.

Kubernetes ≥ 1.27 Helm 3.16+ cosign / SBOM Air-Gap-fähig DSGVO Quellcode-Zugriff
Drei Distributionspfade Ein einziger Build erzeugt 26 signed Container-Images, die über drei Pfade verteilt werden: SaaS auf pipelet.com, Azure Marketplace Container Offer und BYO Kubernetes via Helm-Chart. GitHub Actions Build · Test · cosign sign 26 images · SPDX SBOM ghcr.io/munichseb/* signed + SBOM-attestiert SaaS pipelet.com Pipelet hosted Login + 10 min ready Azure Marketplace Container Offer 1-Click in deine AKS MS handhabt Billing Self-Hosted helm install pipelet AKS · EKS · GKE · On-Prem Daten bleiben bei dir Identische Images. Identische Updates. Identische Sicherheit. Cosign-Verify in jeder Umgebung möglich.

Warum Self-Hosting

Datenresidenz

Alle Stations-, Session-, CDR- und Driver-Daten leben in deiner DB, in deinem Cluster, in deinem Land. Kein Cross-Border-Transfer, keine US-Cloud-Act-Belastung — relevant für regulierte Operatoren und kommunale Versorger.

Compliance-fit

Cosign-signed Images mit SPDX-SBOMs für Vulnerability-Audits. NetworkPolicy + RLS + readOnlyRootFilesystem out-of-the-box. Zertifizierungen wie ISO 27001 oder TISAX laufen über deine Infra-Dokumentation, nicht über uns.

Kein Vendor-Lock-In

Quellcode-Zugriff über die Pipelet-Repos, Helm-Chart als OCI-Artifact, alle 26 Service-Images aus offenen Build-Pipelines. Export-Recht auf alle Daten via Postgres-dumps. Im Worst-Case läuft dein Setup auch ohne Pipelet weiter.

Skaliert mit dir

Sizing-Defaults treffen 50–250 Charger pro Tenant. Horizontal scaling per Helm-Values, vertikal per Postgres-Tier. Wir haben Kunden, die mit 30 Stations starten und in 18 Monaten auf 5.000 wachsen — gleicher Stack, größere DB.

Was du beim Self-Hosting bekommst

26 Container-Images

Die komplette Suite — OCPP-Broker + Server, CPMS, Driver-/Fleet-/Admin-/EMP-Portale, OCPI-Roaming, Plug & Charge, Billing, Automation, MCP-Server, Developer-Portal, Homepage. Alle aus dem gleichen Build, alle auf ghcr.io.

Helm-Chart

Alles unter einem Chart, OCI-publiziert nach oci://ghcr.io/munichseb/charts/pipelet. Zwei Tenancy-Modi: shared (eine DB, viele Tenants per RLS) oder isolated (1 Release pro Kunde). Postgres + Redis als Subcharts oder BYO managed.

Cosign-Signaturen + SBOMs

Jedes Image ist via Sigstore keyless signiert (kein Schlüsselmanagement nötig). SPDX-JSON Software Bill of Materials als Attestation angehängt. Verifikation client-side mit cosign verify.

Onboarding-Bundle

Pro Kunde ein verschlüsseltes Bundle mit Pull-Token, customer-spezifischer config.json, values.customer.yaml mit deinen Hosts/Tenant-IDs, optional mTLS-Material für Hubject. Step-by-Step Setup-README inklusive.

Air-Gap-Bundle

Auf Anfrage liefern wir ein offline-fähiges Bundle: alle Images als regctl-Dump, Sigstore-Roots vorgefetched, Helm-Chart als .tgz. Importierbar in jede private Registry — kein ghcr.io-Zugriff post-install nötig.

Quellcode-Zugriff

Read-only Deploy-Keys auf alle 9 Pipelet-Repos. Du kannst auditieren, anpassen, lokale Branches halten. Übernehmen wir Bug-Fixes? Ja — als Pull-Requests gegen unser main. Eigene Forks? Auch ok, mit Support-Modell-Anpassung.

Updates ohne Drama

Helm Pre-Install-Hook führt 3 idempotente DB-Migrationen sequentiell aus, dann starten Service-Pods. Failover via Service-Mesh oder klassische Ingress-Sticky-Sessions. Rolling Updates pro Service unabhängig.

Migrations-Support

Wenn du von einer anderen CPMS-Plattform kommst: der OCPP-Broker switcht einzelne Stations live um, ohne Big-Bang. Daten-Import-Skripte für Stations, Tariffs, Customers. 4–8 Wochen typische Ramp-up-Phase.

Welcher Pfad passt zu dir

SaaS Marketplace Self-Hosted
Wer betreibt Pipelet GmbH Du, in Azure Du, überall
Daten-Standort EU-Frankfurt Deine Azure-Region Frei wählbar
Time-to-Production ~10 min ~30 min ~1 Tag (inkl. Cluster-Setup)
Quellcode-Zugriff nur Read nur Read Read + Forking
Compliance-Boundary Pipelet-Verträge Microsoft + Pipelet Du allein
Air-Gap-fähig Ja, mit Bundle
Updates automatisch helm upgrade per Click helm upgrade, dein Pace
Skalierung automatisch AKS-managed frei wählbar (HPA / VPA)
Sinnvoll ab jeder Größe Azure-only Setups Compliance-/Regulierungs-Anforderungen

Quick-Start

bash Vorausgesetzt: kubectl + helm 3.16+ zeigen auf den Cluster

# 1. Image-Pull-Token aus dem Onboarding-Bundle anlegen
kubectl create namespace pipelet
kubectl -n pipelet create secret docker-registry pipelet-ghcr-pull \
  --docker-server=ghcr.io \
  --docker-username=munichseb \
  --docker-password="$(cat ghcr-pull-token.txt)"

# 2. Customer-spezifische config.json als Secret
kubectl -n pipelet create secret generic pipelet-config \
  --from-file=config.json=./config.json

# 3. Helm-Chart aus dem OCI-Registry installieren
helm install pipelet oci://ghcr.io/munichseb/charts/pipelet \
  --version 0.1.0 \
  -n pipelet \
  -f my-customer.yaml \
  --set externalConfigSecret=pipelet-config

# 4. (Optional) Image-Signaturen verifizieren
cosign verify ghcr.io/munichseb/pipelet-cpms-core:0.1.0 \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  --certificate-identity-regexp "https://github.com/munichseb/.+/build-images.yml@.+"

Vollständige Anleitung mit allen values.yaml-Optionen, Tenancy-Setup und Operator-Hinweisen: Tech-Doku im Developer-Portal →

Onboarding-Prozess

Wir machen den Self-Host-Setup mit dir

Self-Hosting ist nicht "Click + Go". Bei jeder Customer-Installation arbeiten wir die folgenden 6 Schritte gemeinsam ab — typischerweise in 1–2 Working Sessions:

1. Cluster-Audit 2. Bundle-Erstellung 3. Erste Installation 4. Migration-Plan 5. Smoke-Test 6. Go-Live
Self-Host-Beratung anfragen →
Pipelet-Side PAT + Bundle Read-only Token mit read:packages
verschlüsselte Auslieferung
Customer-Side kubectl + helm 3 Befehle bis Production
Cosign-Verify in jedem Pull
Live-Cluster Pipelet running 21 Pods · 3 Migrations · 1 Tenant

FAQ

Werden alle 26 Services wirklich gebraucht?

Nein. Per default sind 21 Services aktiv — die 5 opt-in (Test-Tools wie ChargerSim + EMP-Sim, plus Hubject-Bridge) brauchen explizite enable-Flags. Auch von den 21 Default-Services kann man pro Modul/Use-Case weitere ausschalten.

Brauche ich einen Postgres-Cluster?

Postgres ≥ 14 ist Voraussetzung. Das Helm-Chart kann eine in-cluster Bitnami-Postgres ausrollen (für Dev/Eval ok), für Production empfehlen wir Azure Database for PostgreSQL Flexible Server, AWS RDS, Aiven oder Crunchy Bridge.

Was kostet Self-Hosting?

Lizenzpreis ist eine Funktion von Charger-Anzahl + aktivierten Modulen. Plus Support-Tier (Bronze/Silber/Gold mit verschiedenen SLAs). Konkrete Zahlen kommen mit der Beratung — wir besprechen vorher dein Setup, weil 30 Charger mit reinem CPMS andere Konditionen haben als 1.500 mit OCPI + PnC + Billing.

Wer kümmert sich um Updates und Security-Patches?

Wir veröffentlichen Updates via Helm-Chart-Versions auf ghcr.io. Critical-Security-Patches kommen out-of-band per Mail mit Upgrade-Pfad. Du entscheidest wann du upgradest — typische Customer-Cadenz ist alle 4–6 Wochen, kritische Patches innerhalb von 24–48h.

Kann ich auf eigene Infra-Anforderungen anpassen?

Ja. Helm-Values decken Sizing, Replicas, Storage-Classes, Ingress-Annotations, NetworkPolicy-Regeln ab. Tieferer Custom-Code ist über eigene Forks möglich — wir liefern dann gegen die Forks Patches statt direkt deployen, mit Kosten-Impact für Support.

Was, wenn ich später wieder zur SaaS wechseln will?

Postgres-Dump + DNS-Cutover. Der Switch von Self-Hosted nach Pipelet-SaaS dauert eine Wartungsnacht — alle Daten kommen 1:1 mit, weil Schema und Image-Versionen identisch sind. Andersherum genauso machbar.

Klingt nach deinem Setup?

Schreib uns deinen Use-Case — Tenant-Anzahl, OEM-Anbindungen, Datenschutz-Constraints. Wir prüfen Cluster-Voraussetzungen + Lizenzkonditionen und liefern in 5 Werktagen einen konkreten Setup-Plan.