NexBasira self-hosten
Dezelfde Docker-stack die onze beheerde SaaS draait, leveren wij on-prem. Dezelfde Django-backend, dezelfde React-SPA, dezelfde audit-keten. Beschikbaar op het Enterprise-niveau met een DPA + InfoSec-vragenlijstpakket.
docs/SELF_HOST.md in de bronrepo — we leveren het aan Enterprise-klanten met hun installatiepakket. Neem contact op via Contact (Enterprise) om het gesprek te starten. Waarom self-hosten
- Wettelijke verplichting — uw sector of jurisdictie vereist dat bewijs op uw eigen infrastructuur staat.
- Netwerkisolatie — uw inspecteurs werken binnen een VPN; uitgaand verkeer naar een SaaS is geen optie.
- Aangepaste datalocatie — u moet data in een specifieke regio of soevereine cloud plaatsen.
- Kostenvoorspelbaarheid op schaal — bij >5k inspecties/maand is dedicated infrastructuur vaak goedkoper dan het per-inspectie-niveau.
Architectuur
Zes services (plus uw bestaande identity-provider voor SSO):
| Service | Wat het doet | Image |
|---|---|---|
| caddy | TLS-terminatie, HTTP-routing, serveren van statische assets | caddy:2 |
| backend | Django-app — REST-API, audit-keten, SCIM, ondertekening | ghcr.io/codelounge-io/certivisiopro/api (your tag) |
| frontend | Nginx die de gebouwde SPA + marketing-statics serveert | ghcr.io/codelounge-io/certivisiopro/web |
| postgres | Primaire datastore, RLS-afgedwongen tenant-isolatie | postgres:16 |
| redis | Celery-broker + cache + session-store | redis:7 |
| celery-worker + celery-beat | Achtergrondtaken (TSA-polling, nabewerking van opnames, retentie-sweep) | hetzelfde als backend |
| livekit | WebRTC-SFU voor het live-videovlak | livekit/livekit-server |
| minio (optional) | S3-compatibele objectopslag voor bewijs + opnames | minio/minio |
Voor objectopslag kunt u ook naar elke S3-compatibele service wijzen (AWS S3, Wasabi, OVH Object Storage, uw bestaande on-prem Ceph-cluster). MinIO is standaard meegeleverd voor echte air-gap-installaties.
Minimumvereisten
| Aandachtspunt | Minimum | Comfortabel |
|---|---|---|
| OS | Linux x86_64 (Ubuntu 22.04 LTS or Debian 12) | hetzelfde |
| Docker / Compose | Docker 24 + Compose v2 | hetzelfde |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD (DB + initieel bewijs) | 500 GB + S3-compatibele objectopslag voor opnames |
| Network | Statisch IP, poorten 443 + WebRTC (LiveKit) bereikbaar | hetzelfde |
| TLS | Caddy provisioneert automatisch via Let's Encrypt | Eigen certificaat voor gesloten netwerken |
Bootstrap
Ongeveer de vorm die het installatiescript automatiseert:
# 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" Op een schone Ubuntu 22.04-VPS draait de hele sequentie in ongeveer 5 minuten.
Wat u standaard krijgt
- Zowel
app.<your-domain>(SPA) als<your-domain>(marketingsite, optioneel) op één Caddy. - Automatische TLS via Let's Encrypt — of pin naar een private CA op gesloten netwerken.
- Postgres-RLS-migraties + de vier systeemrollen geseed.
- Audit-keten Postgres-trigger (append-only).
- Demo-sessie-seeder zodat nieuwe admins met realistische data kunnen rondkijken.
Day-2-ops
- Back-ups — nachtelijke logische Postgres-dump + S3-lifecycle voor objecten. De runbook in
docs/SELF_HOST.mdbevat restore-from-backup-smoketests inclusiefaudit-chain verify. - Upgrades — haal de nieuwe image-tag op,
docker compose up -d. Schemamigraties zijn forward-only + getest in CI; rollback is gedocumenteerd voor gebruik in laatste instantie. - Observability — Django genereert gestructureerde JSON-logs met
tenant_id- +session_id-labels; route ze naar uw bestaande log-aggregator. - Metrics — Prometheus-exporter-endpoint op de backend; scrape vanuit uw monitoring-stack.
Wat er anders is dan bij managed SaaS
| Aandachtspunt | Managed SaaS | Self-host |
|---|---|---|
| TSA-backends | YodaLedger + FreeTSA + OpenTimestamps standaard geconfigureerd | Configureerbaar. U kunt er elke uitschakelen; u kunt een betaalde QTSP (DataSure) rechtstreeks aansluiten. |
| Opslag van opnames | EU-S3 met lifecycle naar Glacier | Uw eigen S3-compatibele bucket; lifecycle is aan u. |
| E-mailbezorging | Sendgrid in onze infrastructuur | Configureer SMTP-env-vars naar uw eigen relay. |
| SMS-bezorging | Twilio in onze infrastructuur (opt-in) | Twilio met uw eigen account, of null-backend indien niet gebruikt. |
| Stripe-facturering | Ingebouwd | Standaard uitgeschakeld — self-host impliceert uw eigen factureringscontract. |
| Updates | Wij deployen | U haalt image-tags op in uw eigen tempo. |
Ondersteuning
Enterprise-self-host-klanten krijgen een dedicated Slack- + Connect-kanaal, 1-uurs SLA, geplande upgrade-walkthroughs en directe toegang tot onze on-call-rotatie voor productie-incidenten.
Wat er nu volgt
- Start een Enterprise-gesprek
- Beveiligingspositie — wat er in de InfoSec-vragenlijstpakket zit
- DPA — wat er in het contractpakket zit