EN DIRECT · AUDIT CHAÎNÉ · ÉDR UE
SYSTÈME · 99,99% DISPONIBILITÉ
v 1.0 ↗ FAIT EN UE

Auto-héberger NexBasira

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

Résumé de la page. Cette page reflète la forme générale du déploiement on-premise. 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 engager la conversation.

Pourquoi l'auto-hébergement

  • Obligation réglementaire — votre secteur ou votre juridiction impose que les preuves résident sur votre infrastructure.
  • Isolation réseau — vos inspecteurs opèrent au sein d'un VPN ; toute sortie vers un SaaS est exclue.
  • Résidence des données sur mesure — vous devez héberger les données dans une région précise ou un cloud souverain.
  • Prévisibilité des coûts à grande échelle — au-delà de 5 000 inspections/mois, une infrastructure dédiée revient souvent moins cher que la formule à 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 site marketing statiqueghcr.io/codelounge-io/certivisiopro/web
postgresMagasin de données principal, isolation des tenants imposée par RLSpostgres:16
redisBroker Celery + cache + magasin de sessionsredis:7
celery-worker + celery-beatTâches en arrière-plan (interrogation TSA, post-traitement des enregistrements, balayage 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 + les 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 installations réellement air-gap.

Prérequis minimaux

PosteMinimumConfortable
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 (BDD + 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

Grosso modo ce que le script d'installation automatise :

# 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, l'ensemble de la séquence s'exécute en 5 minutes environ.

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 CA privée pour les réseaux fermés.
  • Migrations RLS Postgres + les quatre rôles système initialisés.
  • Trigger Postgres de chaîne d'audit (append-only).
  • Générateur de session de démonstration pour que les nouveaux administrateurs puissent explorer avec des données réalistes.

Exploitation au quotidien

  • Sauvegardes — dump logique Postgres chaque nuit + cycle de vie S3 pour les objets. Le runbook docs/SELF_HOST.md inclut des smoke tests 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 forward-only et testées en CI ; le rollback est documenté 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 exporter Prometheus sur le backend ; collectez-le depuis votre stack de supervision.

Ce qui diffère du SaaS géré

PosteSaaS géréAuto-hébergement
Backends TSAYodaLedger + FreeTSA + OpenTimestamps configurés par défautConfigurable. Vous pouvez en désactiver n'importe lequel ; vous pouvez brancher directement un QTSP payant (DataSure).
Stockage des enregistrementsS3 en UE avec cycle de vie vers GlacierVotre bucket compatible S3 ; le cycle de vie vous incombe.
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 si inutilisé.
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 Enterprise en auto-hébergement bénéficient d'un canal Slack + Connect dédié, d'un SLA d'une heure, de sessions d'accompagnement planifiées pour les mises à niveau, et d'un accès direct à notre astreinte pour les incidents de production.

Et ensuite