NexBasira selbst hosten
Derselbe Docker-Stack, der unser verwaltetes SaaS betreibt, ist das, was wir On-Prem ausliefern. Dasselbe Django-Backend, dieselbe React-SPA, dieselbe Audit-Kette. Verfügbar in der Enterprise-Stufe mit einem AVV + InfoSec-Fragebogenpaket.
docs/SELF_HOST.md im Quell-Repository — wir liefern es Enterprise-Kunden mit ihrem Installationspaket. Melden Sie sich über Kontakt (Enterprise), um das Gespräch zu beginnen. Warum selbst hosten
- Regulatorische Vorgabe — Ihr Sektor oder Ihre Jurisdiktion verlangt, dass Beweise auf Ihrer Infrastruktur liegen.
- Netzwerkisolation — Ihre Inspektoren arbeiten innerhalb eines VPN; ausgehende Verbindungen zu einem SaaS sind keine Option.
- Individuelle Datenresidenz — Sie müssen Daten in einer bestimmten Region oder souveränen Cloud ablegen.
- Kostenvorhersehbarkeit bei Skalierung — bei >5.000 Inspektionen/Monat ist dedizierte Infrastruktur oft günstiger als die Pro-Inspektions-Stufe.
Architektur
Sechs Services (plus Ihr bestehender Identity-Provider für SSO):
| Service | Was er tut | Image |
|---|---|---|
| caddy | TLS-Terminierung, HTTP-Routing, Auslieferung statischer Assets | caddy:2 |
| backend | Django-App — REST-API, Audit-Kette, SCIM, Signierung | ghcr.io/codelounge-io/certivisiopro/api (your tag) |
| frontend | Nginx, der die gebaute SPA + das statische Marketing ausliefert | ghcr.io/codelounge-io/certivisiopro/web |
| postgres | Primärer Datenspeicher, RLS-erzwungene Mandantenisolation | postgres:16 |
| redis | Celery-Broker + Cache + Session-Store | redis:7 |
| celery-worker + celery-beat | Hintergrund-Tasks (TSA-Polling, Aufzeichnungs-Nachbearbeitung, Aufbewahrungs-Sweep) | wie Backend |
| livekit | WebRTC-SFU für die Live-Video-Ebene | livekit/livekit-server |
| minio (optional) | S3-kompatibler Objektspeicher für Beweise + Aufzeichnungen | minio/minio |
Für den Objektspeicher können Sie auch auf jeden S3-kompatiblen Dienst zeigen (AWS S3, Wasabi, OVH Object Storage, Ihr bestehendes On-Prem-Ceph-Cluster). MinIO ist als Standard für echte Air-Gap-Installationen enthalten.
Mindestanforderungen
| Aspekt | Minimum | Komfortabel |
|---|---|---|
| OS | Linux x86_64 (Ubuntu 22.04 LTS or Debian 12) | gleich |
| Docker / Compose | Docker 24 + Compose v2 | gleich |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD (DB + initiale Beweise) | 500 GB + S3-kompatibler Objektspeicher für Aufzeichnungen |
| Network | Statische IP, Ports 443 + WebRTC (LiveKit) erreichbar | gleich |
| TLS | Caddy stellt automatisch über Let's Encrypt bereit | BYO-Zertifikat für geschlossene Netzwerke |
Bootstrap
Ungefähr die Form, die das Installationsskript automatisiert:
# 1. Clone the released bundle
git clone --depth 1 https://github.com/codelounge-io/nexbasira-onprem.git
cd nexbasira-onprem
# 2. Fill in env from the example
cp .env.example .env
$EDITOR .env # set DOMAIN, SECRET_KEY, DB password, S3 creds, LiveKit keys
# 3. Pull pinned images
docker compose pull
# 4. Run migrations + create the platform superuser
docker compose run --rm backend python manage.py migrate
docker compose run --rm backend python manage.py createsuperuser
# 5. Start everything
docker compose up -d
# 6. Tail the logs until you see the audit-chain self-test pass
docker compose logs -f backend | grep "audit chain self-test" Auf einem sauberen Ubuntu-22.04-VPS läuft die gesamte Sequenz in etwa 5 Minuten durch.
Was Sie ab Werk erhalten
- Sowohl
app.<ihre-domain>(SPA) als auch<ihre-domain>(Marketing-Site, optional) auf einem einzigen Caddy. - Automatisches TLS via Let's Encrypt — oder Pinning auf eine private CA in geschlossenen Netzwerken.
- Postgres-RLS-Migrationen + die vier Systemrollen vorbelegt.
- Audit-Ketten-Postgres-Trigger (append-only).
- Demo-Sitzungs-Seeder, damit Erstadmins mit realistischen Daten herumprobieren können.
Day-2-Betrieb
- Backups — nächtlicher logischer Postgres-Dump + S3-Lifecycle für Objekte. Das
docs/SELF_HOST.md-Runbook enthält Restore-from-Backup-Smoke-Tests inklusiveaudit-chain verify. - Upgrades — neues Image-Tag ziehen,
docker compose up -d. Schema-Migrationen sind forward-only + in CI getestet; Rollback ist für den Notfall dokumentiert. - Observability — Django gibt strukturierte JSON-Logs mit
tenant_id- +session_id-Labels aus; leiten Sie sie an Ihren bestehenden Log-Aggregator weiter. - Metriken — Prometheus-Exporter-Endpoint auf dem Backend; scrapen Sie ihn aus Ihrem Monitoring-Stack.
Was sich von verwaltetem SaaS unterscheidet
| Aspekt | Verwaltetes SaaS | Self-Host |
|---|---|---|
| TSA-Backends | YodaLedger + FreeTSA + OpenTimestamps standardmäßig konfiguriert | Konfigurierbar. Sie können jedes deaktivieren; Sie können einen kostenpflichtigen QTSP (DataSure) direkt einbinden. |
| Aufzeichnungsspeicher | EU-S3 mit Lifecycle nach Glacier | Ihr S3-kompatibler Bucket; der Lifecycle liegt bei Ihnen. |
| E-Mail-Zustellung | Sendgrid in unserer Infrastruktur | Konfigurieren Sie die SMTP-Env-Vars auf Ihr eigenes Relay. |
| SMS-Zustellung | Twilio in unserer Infrastruktur (opt-in) | Twilio mit Ihrem eigenen Konto, oder Null-Backend, falls nicht genutzt. |
| Stripe-Abrechnung | Integriert | Standardmäßig deaktiviert — Self-Host impliziert Ihren eigenen Abrechnungsvertrag. |
| Updates | Wir deployen | Sie ziehen Image-Tags in Ihrem eigenen Rhythmus. |
Support
Enterprise-Self-Host-Kunden erhalten einen dedizierten Slack- + Connect-Kanal, 1-Stunden-SLA, geplante Upgrade-Walkthroughs und direkten Zugang zu unserer On-Call-Rotation für Produktionsvorfälle.
Was als Nächstes kommt
- Ein Enterprise-Gespräch beginnen
- Sicherheitslage — was im InfoSec-Fragebogen-Paket steckt
- DPA — was im Vertragspaket steckt