Selvhost NexBasira
Den samme Docker-stak, der kører vores managed SaaS, er den, vi leverer on-prem. Samme Django-backend, samme React-SPA, samme audit-kæde. Tilgængelig på Enterprise-niveauet med en DPA + InfoSec-spørgeskemapakke.
docs/SELF_HOST.md i kildekode-repoet — vi leverer den til Enterprise-kunder sammen med deres installationspakke. Kontakt os via Kontakt (Enterprise) for at starte samtalen. Hvorfor self-hoste
- Regulatorisk krav — din sektor eller jurisdiktion kræver, at beviser ligger på din infrastruktur.
- Netværksisolering — dine inspektører opererer inden for en VPN; udgående til en SaaS er ikke en mulighed.
- Skræddersyet dataresidens — du skal lande data i en bestemt region eller suveræn cloud.
- Forudsigelige omkostninger ved skala — ved >5k inspektioner/måned er dedikeret infrastruktur ofte billigere end pr. inspektion-niveauet.
Arkitektur
Seks tjenester (plus din eksisterende identity-provider til SSO):
| Tjeneste | Hvad den gør | Image |
|---|---|---|
| caddy | TLS-terminering, HTTP-routing, servering af statiske assets | caddy:2 |
| backend | Django-app — REST API, audit-kæde, SCIM, signering | ghcr.io/codelounge-io/certivisiopro/api (your tag) |
| frontend | Nginx, der server den byggede SPA + marketing-statiske filer | ghcr.io/codelounge-io/certivisiopro/web |
| postgres | Primært datalager, RLS-håndhævet tenant-isolering | postgres:16 |
| redis | Celery-broker + cache + session-lager | redis:7 |
| celery-worker + celery-beat | Baggrundsopgaver (TSA-polling, efterbehandling af optagelse, opbevarings-sweep) | samme som backend |
| livekit | WebRTC SFU til live-videoplanet | livekit/livekit-server |
| minio (optional) | S3-kompatibel objektlagring til beviser + optagelser | minio/minio |
Til objektlagring kan du også pege på enhver S3-kompatibel tjeneste (AWS S3, Wasabi, OVH Object Storage, din eksisterende on-prem Ceph-klynge). MinIO er inkluderet som standard til ægte air-gap-installationer.
Minimumskrav
| Forhold | Minimum | Komfortabelt |
|---|---|---|
| OS | Linux x86_64 (Ubuntu 22.04 LTS or Debian 12) | samme |
| Docker / Compose | Docker 24 + Compose v2 | samme |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD (DB + indledende beviser) | 500 GB + S3-kompatibel objektlagring til optagelser |
| Network | Statisk IP, porte 443 + WebRTC (LiveKit) tilgængelige | samme |
| TLS | Caddy auto-provisionerer via Let's Encrypt | BYO-cert til lukkede netværk |
Bootstrap
Nogenlunde det, installationsscriptet automatiserer:
# 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" På en ren Ubuntu 22.04-VPS kører hele sekvensen på cirka 5 minutter.
Det du får ud af kassen
- Både
app.<your-domain>(SPA) +<your-domain>(marketingsite, valgfrit) på én enkelt Caddy. - Automatisk TLS via Let's Encrypt — eller pin til en privat CA på lukkede netværk.
- Postgres-RLS-migreringer + de fire systemroller seedet.
- Audit-kæde-Postgres-trigger (append-only).
- Demo-session-seeder, så førstegangs-administratorer kan rode rundt med realistiske data.
Dag 2-drift
- Backups — natligt Postgres-logical-dump + S3-lifecycle for objekter. Runbooken
docs/SELF_HOST.mdindeholder restore-from-backup-smoke-tests inklusiveaudit-chain verify. - Opgraderinger — hent det nye image-tag,
docker compose up -d. Skema-migreringer er forward-only + testet i CI; rollback er dokumenteret til brug i nødstilfælde. - Observability — Django udsender strukturerede JSON-logs med labels
tenant_id+session_id; route til din eksisterende log-aggregator. - Metrikker — Prometheus-exporter-endpoint på backenden; scrape fra din monitoring-stak.
Hvad der er anderledes end managed SaaS
| Forhold | Managed SaaS | Selvhost |
|---|---|---|
| TSA-backends | YodaLedger + FreeTSA + OpenTimestamps konfigureret som standard | Konfigurerbar. Du kan deaktivere enhver; du kan tilslutte en betalt QTSP (DataSure) direkte. |
| Optagelseslagring | EU-S3 med lifecycle til Glacier | Din S3-kompatible bucket; lifecycle er dit ansvar. |
| E-mail-levering | Sendgrid i vores infrastruktur | Konfigurér SMTP-env-vars til dit eget relay. |
| SMS-levering | Twilio i vores infrastruktur (opt-in) | Twilio med din egen konto, eller null-backend hvis ikke brugt. |
| Stripe-fakturering | Indbygget | Deaktiveret som standard — self-host indebærer din egen faktureringsaftale. |
| Opdateringer | Vi deployer | Du henter image-tags i dit eget tempo. |
Support
Enterprise-self-host-kunder får en dedikeret Slack + Connect-kanal, 1-times SLA, planlagte opgraderingsgennemgange og direkte adgang til vores on-call-rotation ved produktionshændelser.
Hvad er det næste
- Start en Enterprise-samtale
- Sikkerhedsposition — hvad der er i InfoSec-spørgeskemapakken
- DPA — hvad der er i kontraktpakken