LIVE · LANȚ DE AUDIT · UE
SISTEM · 99,99% UPTIME
v 1.0 ↗ FĂCUT ÎN UE

Auto-héberger NexBasira

La même stack Docker qui fait tourner notre SaaS managé est celle que nous livrons on-prem. Même backend Django, même SPA React, même chaîne d'audit. Disponible sur le niveau Enterprise avec un pack DPA + questionnaire InfoSec.

Résumé de la page. Cette page reflète la forme générale du déploiement on-prem. Le runbook de référence, copiable-collable, est docs/SELF_HOST.md dans le dépôt source — nous le livrons aux clients Enterprise avec leur package d'installation. Contactez-nous via Contact (Enterprise) pour entamer la conversation.

Pourquoi auto-héberger

  • Obligation réglementaire — votre secteur ou votre juridiction exige que les preuves résident sur votre infrastructure.
  • Isolation réseau — vos inspecteurs opèrent au sein d'un VPN ; une sortie vers un SaaS n'est pas envisageable.
  • Résidence des données personnalisée — vous devez héberger les données dans une région spécifique ou un cloud souverain.
  • Prévisibilité des coûts à grande échelle — au-delà de 5 000 inspections/mois, une infrastructure dédiée est souvent moins chère que la tarification à l'inspection.

Architecture

Six services (plus votre fournisseur d'identité existant pour le SSO) :

ServiceRôleImage
caddyTerminaison TLS, routage HTTP, service des ressources statiquescaddy:2
backendApplication Django — API REST, chaîne d'audit, SCIM, signatureghcr.io/codelounge-io/certivisiopro/api (your tag)
frontendNginx servant la SPA compilée + le statique marketingghcr.io/codelounge-io/certivisiopro/web
postgresStockage de données principal, isolation des locataires appliquée par RLSpostgres:16
redisBroker Celery + cache + magasin de sessionsredis:7
celery-worker + celery-beatTâches d'arrière-plan (interrogation TSA, post-traitement des enregistrements, purge de rétention)identique au backend
livekitSFU WebRTC pour le plan vidéo en directlivekit/livekit-server
minio (optional)Stockage objet compatible S3 pour les preuves + enregistrementsminio/minio

Pour le stockage objet, vous pouvez aussi pointer vers n'importe quel service compatible S3 (AWS S3, Wasabi, OVH Object Storage, votre cluster Ceph on-premise existant). MinIO est inclus par défaut pour les véritables installations air-gap.

Configuration minimale

AspectMinimumConfortable
OSLinux x86_64 (Ubuntu 22.04 LTS or Debian 12)identique
Docker / ComposeDocker 24 + Compose v2identique
CPU4 vCPU8 vCPU
RAM8 GB16 GB
Disk200 Go SSD (BD + preuves initiales)500 Go + stockage objet compatible S3 pour les enregistrements
NetworkIP statique, ports 443 + WebRTC (LiveKit) accessiblesidentique
TLSCaddy provisionne automatiquement via Let's EncryptCertificat fourni par vos soins (BYO) pour les réseaux fermés

Amorçage

Grossièrement la structure automatisée par le script d'installation :

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

Sur un VPS Ubuntu 22.04 vierge, toute la séquence s'exécute en environ 5 minutes.

Ce que vous obtenez d'emblée

  • À la fois app.<votre-domaine> (SPA) + <votre-domaine> (site marketing, optionnel) sur un seul Caddy.
  • TLS automatique via Let's Encrypt — ou épinglage sur une autorité de certification privée sur les réseaux fermés.
  • Migrations RLS Postgres + les quatre rôles système préchargés.
  • Trigger Postgres de la chaîne d'audit (append-only).
  • Seeder de session de démonstration pour que les administrateurs débutants puissent explorer avec des données réalistes.

Exploitation au quotidien

  • Sauvegardes — dump logique Postgres nocturne + cycle de vie S3 pour les objets. Le runbook docs/SELF_HOST.md inclut des tests smoke de restauration depuis sauvegarde, dont audit-chain verify.
  • Mises à niveau — récupérez le nouveau tag d'image, docker compose up -d. Les migrations de schéma sont unidirectionnelles + testées en CI ; le rollback est documenté pour un usage en dernier recours.
  • Observabilité — Django émet des logs JSON structurés avec les labels tenant_id + session_id ; routez-les vers votre agrégateur de logs existant.
  • Métriques — endpoint exporteur Prometheus sur le backend ; scrapez-le depuis votre stack de supervision.

Ce qui diffère du SaaS managé

AspectSaaS managéAuto-hébergement
Backends TSAYodaLedger + FreeTSA + OpenTimestamps configurés par défautConfigurable. Vous pouvez en désactiver un ; vous pouvez brancher directement un QTSP payant (DataSure).
Stockage des enregistrementsS3 UE avec cycle de vie vers GlacierVotre bucket compatible S3 ; le cycle de vie est à votre charge.
Distribution des e-mailsSendgrid dans notre infrastructureConfigurez les variables d'environnement SMTP vers votre propre relais.
Distribution des SMSTwilio dans notre infrastructure (opt-in)Twilio avec votre propre compte, ou backend null s'il n'est pas utilisé.
Facturation StripeIntégréeDésactivée par défaut — l'auto-hébergement implique votre propre contrat de facturation.
Mises à jourNous déployonsVous récupérez les tags d'image à votre rythme.

Support

Les clients Entreprise en auto-hébergement bénéficient d'un canal Slack + Connect dédié, d'un SLA d'une heure, de démonstrations de mise à niveau planifiées et d'un accès direct à notre astreinte pour les incidents de production.

Et ensuite