LIVE · CATENA D'AUDIT · UE
SISTEMA · 99,99% UPTIME
v 1.0 ↗ FATTO IN UE

Self-host NexBasira

Lo stesso stack Docker che alimenta il nostro SaaS gestito è ciò che rilasciamo on-prem. Stesso backend Django, stessa SPA React, stessa catena di audit. Disponibile nel livello Enterprise con un pacchetto DPA + questionario InfoSec.

Riepilogo della pagina. Questa pagina rispecchia la forma ad alto livello del deployment on-prem. Il runbook autorevole e copiabile-incollabile è docs/SELF_HOST.md nel repository sorgente — lo rilasciamo ai clienti Enterprise con il loro pacchetto di installazione. Contattaci tramite Contatto (Enterprise) per avviare la conversazione.

Perché il self-host

  • Obbligo normativo — il tuo settore o la tua giurisdizione richiede che le prove risiedano sulla tua infrastruttura.
  • Isolamento di rete — i tuoi ispettori operano dentro una VPN; l'uscita verso un SaaS non è un'opzione.
  • Residenza dei dati personalizzata — devi far risiedere i dati in una regione specifica o in un cloud sovrano.
  • Prevedibilità dei costi su larga scala — oltre le 5k ispezioni/mese, un'infrastruttura dedicata è spesso più economica del livello per ispezione.

Architettura

Sei servizi (più il tuo provider di identità esistente per l'SSO):

ServizioCosa faImmagine
caddyTerminazione TLS, routing HTTP, distribuzione di asset staticicaddy:2
backendApp Django — API REST, catena di audit, SCIM, firmaghcr.io/codelounge-io/certivisiopro/api (your tag)
frontendNginx che serve la SPA compilata + il marketing staticoghcr.io/codelounge-io/certivisiopro/web
postgresArchivio dati primario, isolamento dei tenant applicato tramite RLSpostgres:16
redisBroker Celery + cache + session storeredis:7
celery-worker + celery-beatAttività in background (polling TSA, post-elaborazione delle registrazioni, sweep di retention)come il backend
livekitSFU WebRTC per il piano video livelivekit/livekit-server
minio (optional)Storage a oggetti compatibile con S3 per prove + registrazioniminio/minio

Per lo storage a oggetti, puoi anche puntare a qualsiasi servizio compatibile con S3 (AWS S3, Wasabi, OVH Object Storage, il tuo cluster Ceph on-prem esistente). MinIO è incluso come default per le installazioni realmente air-gap.

Requisiti minimi

AspettoMinimoConsigliato
OSLinux x86_64 (Ubuntu 22.04 LTS or Debian 12)uguale
Docker / ComposeDocker 24 + Compose v2uguale
CPU4 vCPU8 vCPU
RAM8 GB16 GB
Disk200 GB SSD (DB + prove iniziali)500 GB + storage a oggetti compatibile con S3 per le registrazioni
NetworkIP statico, porte 443 + WebRTC (LiveKit) raggiungibiliuguale
TLSCaddy effettua il provisioning automatico tramite Let's EncryptCertificato proprio (BYO-cert) per reti chiuse

Bootstrap

All'incirca la forma che lo script di installazione automatizza:

# 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"

Su un VPS Ubuntu 22.04 pulito l'intera sequenza gira in circa 5 minuti.

Cosa ottieni out of the box

  • Sia app.<your-domain> (SPA) sia <your-domain> (sito marketing, opzionale) su un unico Caddy.
  • TLS automatico tramite Let's Encrypt — oppure fissa una CA privata su reti chiuse.
  • Migrazioni RLS Postgres + i quattro ruoli di sistema inizializzati.
  • Trigger Postgres della catena di audit (append-only).
  • Seeder di una sessione demo, così gli admin al primo accesso possono esplorare con dati realistici.

Operatività Day-2

  • Backup — dump logico Postgres notturno + lifecycle S3 per gli oggetti. Il runbook docs/SELF_HOST.md include smoke test di restore-from-backup, inclusa la audit-chain verify.
  • Aggiornamenti — scarica il nuovo tag dell'immagine, docker compose up -d. Le migrazioni dello schema sono forward-only + testate in CI; il rollback è documentato per l'uso come ultima risorsa.
  • Osservabilità — Django emette log JSON strutturati con etichette tenant_id + session_id; instradali verso il tuo aggregatore di log esistente.
  • Metriche — endpoint dell'exporter Prometheus sul backend; effettua lo scrape dal tuo stack di monitoraggio.

Cosa cambia rispetto al SaaS gestito

AspettoSaaS gestitoSelf-host
Backend TSAYodaLedger + FreeTSA + OpenTimestamps configurati per defaultConfigurabili. Puoi disabilitarne uno qualsiasi; puoi collegare direttamente un QTSP a pagamento (DataSure).
Storage delle registrazioniS3 EU con lifecycle verso GlacierIl tuo bucket compatibile con S3; il lifecycle è a tuo carico.
Recapito emailSendgrid nella nostra infrastrutturaConfigura le env var SMTP verso il tuo relay.
Recapito SMSTwilio nella nostra infrastruttura (opt-in)Twilio con il tuo account, oppure backend null se non usato.
Fatturazione StripeIntegrataDisabilitata per default — il self-host implica un tuo contratto di fatturazione.
AggiornamentiDeployiamo noiScarichi i tag delle immagini secondo la tua cadenza.

Supporto

I clienti Enterprise self-host ottengono un canale dedicato Slack + Connect, uno SLA di 1 ora, walkthrough di aggiornamento pianificati e accesso diretto alla nostra rotazione on-call per gli incidenti di produzione.

Cosa c'è dopo