DÉPLOIEMENT ON-PREM// INFRASTRUCTURE POLICIÈRE ISOLÉE
Guide de déploiement sécurisé
forces de l'ordre.
Déploiement Docker sur infrastructure interne. Aucun accès internet sortant requis après installation initiale. Données biométriques et judiciaires ne quittent jamais votre réseau.
← PAGE POLICING01
Prérequis système
| OS | Ubuntu 22.04 LTS / Rocky Linux 9 / RHEL 9 |
| CPU | 4 vCPU minimum (8 recommandé pour IRIS) |
| RAM | 8 GB minimum (16 GB si IRIS + Vantum simultanés) |
| Stockage | 50 GB SSD (données + modèles ML IRIS) |
| Docker | 24.0+ avec Docker Compose v2 |
| Réseau | Port 3000 (Vantum UI), 8765 (IRIS daemon WebSocket) |
| TLS | Certificat interne obligatoire — Let's Encrypt ou PKI interne |
02
Installation — Vantum
# 1. Cloner le repo (via miroir interne ou clé SSH) git clone git@github.com:dom-omg/vantum.git cd vantum # 2. Configurer les variables d'environnement cp .env.example .env.local nano .env.local # Variables obligatoires: # DATABASE_URL=postgresql://vantum:<password>@localhost:5432/vantum # AUTH_SECRET=<générer avec: openssl rand -base64 32> # VANTUM_SIGNING_KEY=<générer avec: openssl rand -base64 64> # VANTUM_ACCESS_CODE=<code à 4-8 chiffres> # 3. Lancer avec Docker Compose docker compose up -d # 4. Initialiser la base de données docker compose exec app npm run db:migrate # 5. Vérifier le démarrage curl http://localhost:3000/api/v1/health
03
Installation — IRIS SRF-13
# 1. Cloner IRIS (repo séparé)
git clone git@github.com:dom-omg/wick-security.git
cd wick-security
# 2. Installer les modèles ML (à télécharger une fois)
mkdir -p public/models
# Télécharger face-api.js models:
# - tiny_face_detector_model-*
# - face_landmark_68_model-*
# - face_recognition_model-*
# Source: https://github.com/justadudewhohacks/face-api.js/tree/master/weights
# 3. Démarrer le daemon IRIS (si mode caméra IP)
python3 pipelines/iris_daemon.py --config iris_config.json
# 4. Configurer le token daemon
# Dans iris_config.json:
# { "token": "<même valeur que DAEMON_TOKEN dans iris/page.tsx>" }
# 5. Accéder à l'interface
# http://localhost:3000/iris⚠ Le traitement biométrique est 100% local. Les descripteurs faciaux ne sont jamais transmis hors du poste.
04
Isolation réseau
Pour un déploiement en réseau policier isolé (air-gap partiel) :
| Trafic entrant autorisé | Port 3000 (HTTPS) depuis postes agents uniquement |
| Trafic sortant | Bloquer tout sauf: NTP, DNS interne, mises à jour OS approuvées |
| Base de données | PostgreSQL sur 127.0.0.1 uniquement — jamais exposé |
| IRIS WebSocket | Port 8765 — localhost uniquement |
| Logs | Syslog vers SIEM interne — jamais vers cloud externe |
| Sauvegarde | pg_dump chiffré GPG vers stockage interne uniquement |
05
Checklist première mise en service
☐
AUTH_SECRET aléatoire (≥ 32 bytes)
openssl rand -base64 32
☐
VANTUM_SIGNING_KEY aléatoire (≥ 64 bytes)
openssl rand -base64 64
☐
Mot de passe PostgreSQL fort (≥ 24 chars)
openssl rand -base64 18
☐
VANTUM_ACCESS_CODE changé (défaut: 4874)
Changer dans .env.local
☐
TLS activé sur le reverse proxy (nginx/caddy)
Certificat interne ou Let's Encrypt
☐
Backup automatique configuré
Cron pg_dump + rotation 30 jours
☐
Logs envoyés au SIEM interne
stdout Docker → syslog → SIEM
☐
Test endpoint santé
curl https://votre-domaine/api/v1/health
☐
Premier agent créé (role: analyst)
Interface admin → Utilisateurs
☐
Test warrant end-to-end
POST /api/v1/mandat { signal_type: "AIS" }
06
Clés API par corps policier
Chaque corps policier reçoit sa propre clé API. À configurer dans VANTUM_API_KEYS :
# Dans .env.local — VANTUM_API_KEYS (JSON)
VANTUM_API_KEYS='{
"<hash_sha256_clé>": {
"agency": "SPVQ",
"scopes": ["read:alerts","read:vessels","read:cases","write:cases","admin"],
"label": "SPVQ — Section crimes économiques"
},
"<hash_sha256_clé_2>": {
"agency": "SQ",
"scopes": ["read:alerts","read:vessels","read:cases","write:cases","admin"],
"label": "SQ — Division renseignements"
}
}'
# Générer un hash de clé:
# echo -n "vtk_spvq_<random>" | sha256sum⚠ Ne jamais stocker les clés en clair dans la base de données. Seuls les hashes SHA-256 sont conservés.
// SUPPORT
Support déploiement
Pour accompagnement technique lors du déploiement dans votre organisation :
CONTACTER L'ÉQUIPE TECHNIQUE →