Self-hosta NexBasira
Samma Docker-stack som kör vår hanterade SaaS är den vi levererar on-prem. Samma Django-backend, samma React-SPA, samma revisionskedja. Tillgänglig på Enterprise-nivån med ett DPA- + InfoSec-enkätpaket.
docs/SELF_HOST.md i källrepot — vi levererar den till Enterprise-kunder med deras installationspaket. Hör av dig via Kontakt (Enterprise) för att inleda samtalet. Varför self-hosta
- Regulatoriskt krav — din sektor eller jurisdiktion kräver att bevisen ligger på din infrastruktur.
- Nätverksisolering — dina inspektörer arbetar inuti ett VPN; utgående till en SaaS är inte ett alternativ.
- Anpassad dataresidens — du behöver landa data i en specifik region eller ett suveränt moln.
- Kostnadsförutsägbarhet i stor skala — vid >5k inspektioner/månad är dedikerad infrastruktur ofta billigare än nivån per inspektion.
Arkitektur
Sex tjänster (plus din befintliga identitetsleverantör för SSO):
| Tjänst | Vad den gör | Image |
|---|---|---|
| caddy | TLS-terminering, HTTP-routing, servering av statiska tillgångar | caddy:2 |
| backend | Django-app — REST API, granskningskedja, SCIM, signering | ghcr.io/codelounge-io/certivisiopro/api (your tag) |
| frontend | Nginx som servar den byggda SPA:n + statiskt marknadsföringsinnehåll | ghcr.io/codelounge-io/certivisiopro/web |
| postgres | Primärt datalager, RLS-tvingad tenant-isolering | postgres:16 |
| redis | Celery-broker + cache + sessionslager | redis:7 |
| celery-worker + celery-beat | Bakgrundsuppgifter (TSA-pollning, efterbearbetning av inspelning, retentionssvep) | samma som backend |
| livekit | WebRTC-SFU för det live-videoplanet | livekit/livekit-server |
| minio (optional) | S3-kompatibel objektlagring för bevis + inspelningar | minio/minio |
För objektlagring kan du även peka mot vilken S3-kompatibel tjänst som helst (AWS S3, Wasabi, OVH Object Storage, ditt befintliga on-prem Ceph-kluster). MinIO ingår som standard för äkta luftgapade installationer.
Minimikrav
| Aspekt | Minimum | Bekvämt |
|---|---|---|
| OS | Linux x86_64 (Ubuntu 22.04 LTS or Debian 12) | samma |
| Docker / Compose | Docker 24 + Compose v2 | samma |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD (DB + inledande bevis) | 500 GB + S3-kompatibel objektlagring för inspelningar |
| Network | Statisk IP, portarna 443 + WebRTC (LiveKit) nåbara | samma |
| TLS | Caddy auto-provisionerar via Let's Encrypt | BYO-cert för slutna nätverk |
Bootstrap
Ungefär formen som installationsskriptet automatiserar:
# 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örs hela sekvensen på cirka 5 minuter.
Vad du får direkt ur lådan
- Både
app.<your-domain>(SPA) +<your-domain>(marknadsföringssajt, valfritt) på en enda Caddy. - Automatisk TLS via Let's Encrypt — eller pinna till en privat CA på slutna nätverk.
- Postgres RLS-migreringar + de fyra systemrollerna seedade.
- Postgres-trigger för granskningskedjan (append-only).
- Seeder för demosession så att förstagångsadmins kan pilla runt med realistiska data.
Day-2-drift
- Säkerhetskopior — logisk Postgres-dump nattligen + S3-lifecycle för objekt. Runbooken
docs/SELF_HOST.mdinnehåller smoke-tester för återställning-från-backup inklusiveaudit-chain verify. - Uppgraderingar — hämta den nya image-taggen,
docker compose up -d. Schemamigreringar är enkelriktade (forward-only) + testade i CI; rollback är dokumenterat för sista-utväg-användning. - Observerbarhet — Django avger strukturerade JSON-loggar med etiketterna
tenant_id+session_id; dirigera till din befintliga loggaggregator. - Mätvärden — Prometheus exporter-endpoint på backend; skrapa från din övervakningsstack.
Vad som skiljer sig från hanterad SaaS
| Aspekt | Hanterad SaaS | Self-host |
|---|---|---|
| TSA-backends | YodaLedger + FreeTSA + OpenTimestamps konfigurerade som standard | Konfigurerbart. Du kan inaktivera vilken som helst; du kan koppla in en betald QTSP (DataSure) direkt. |
| Lagring av inspelningar | EU-S3 med lifecycle till Glacier | Din S3-kompatibla bucket; lifecycle sköter du själv. |
| E-postleverans | Sendgrid i vår infrastruktur | Konfigurera SMTP-env-vars mot ditt eget relä. |
| SMS-leverans | Twilio i vår infrastruktur (opt-in) | Twilio med ditt eget konto, eller null-backend om det inte används. |
| Stripe-fakturering | Inbyggt | Inaktiverat som standard — self-host innebär ditt eget faktureringskontrakt. |
| Uppdateringar | Vi deployar | Du hämtar image-taggar i din egen takt. |
Support
Enterprise-self-host-kunder får en dedikerad Slack- + Connect-kanal, 1-timmes SLA, schemalagda genomgångar av uppgraderingar och direktåtkomst till vår on-call-rotation för produktionsincidenter.
Vad som är härnäst
- Starta en Enterprise-konversation
- Säkerhetsläge — vad som finns i InfoSec-frågeformulärpaketet
- DPA — vad som finns i kontraktspaketet