CLOISON proxy de confidentialité
N0 — le moteur chez vous

Installer CLOISON N0 en ≤ 10 minutes.

Un daemon local compatible OpenAI sur localhost:8787. Votre interface IA s'y branche avec deux champs. Le clair ne quitte jamais votre poste — coffre chiffré persistant, auth 100 % locale.

Prérequis
Aucun : pas de toolchain Rust, pas de Python, pas de torch. Les binaires par OS sont téléchargés et vérifiés par checksums SHA-256 (échec bruyant si l'intégrité n'est pas prouvée).

1 · Linux / macOS

Une seule commande (le script détecte l'OS/arch, télécharge binaire + NER léger + lib onnxruntime, vérifie les checksums, crée ~/.cloison et génère la clé locataire affichée une fois) :

bash <(curl -fsSL https://raw.githubusercontent.com/coucagog/cloison-proxy/main/install-n0.sh)

2 · Windows (PowerShell)

powershell -ExecutionPolicy Bypass -File https://raw.githubusercontent.com/coucagog/cloison-proxy/main/install-n0.ps1

Équivalent Windows : binaire cloison-proxy.exe, Credential Manager pour la passphrase en option.

3 · Options communes

OptionEffet
--version v0.3.0installe une version précise (défaut : latest)
--prefix DIRrépertoire d'installation (défaut ~/.cloison)
--skip-ner / -SkipNersans le NER léger (gazetteers + alias seuls — la limite « texte libre » de §6 reste alors assumée)

4 · Composants installés

ÉlémentCheminRôle
binaire~/.cloison/cloison-proxy(.exe)le daemon (AGPL-3.0)
NER léger~/.cloison/ner/model-int8.onnx + tokenizer.json + label_map.jsonPERSON/LOC in-core (N0 v1.2, licence AFL-3.0 — notice dans le bundle)
lib onnxruntime~/.cloison/ner/libonnxruntime.{so,dylib,dll}chargée dynamiquement (jamais embarquée)

5 · Configuration minimale

Le mode N0 s'active en posant CLOISON_VAULT_PATH :

export CLOISON_ROLE=edge
export CLOISON_LISTEN_ADDR=127.0.0.1:8787          # local uniquement
export CLOISON_UPSTREAM_BASE_URL=https://openrouter.ai/api/v1   # votre fournisseur
export CLOISON_VAULT_PATH=~/.cloison/vault.redb    # coffre persistant
export CLOISON_VAULT_PASSPHRASE='votre-passphrase' # clé du coffre (jamais persistée)
export CLOISON_EXPECTED_ACCESS_TOKEN=mon_jeton      # jeton mn_ local
export CLOISON_TENANT_KEY_HEX=$(openssl rand -hex 32)  # clé locataire
cloison-proxy

Puis, dans votre interface IA (Open WebUI, LibreChat, bolt.diy, agents…) :

Base URL : http://localhost:8787/v1
Clé      : mn_<jeton_local>.<clé_amont>

Référence complète des variables CLOISON_* : section API.

Comportements garantis

6 · Limites honnêtes de N0 (à lire)

  1. Rappel PERSON/LOC réduit en texte libre sans NER léger. Avec le NER embarqué (installé par défaut), le fossé mesuré est comblé en grande partie (PERSON 0 → 0.62, LOC +0.18, spécificité 83 %). Un nom hors gazetteer et jamais mentionné reste un risque de clair — documenté, jamais caché.
  2. Poste compromis : N0 ne protège pas contre un malware ou un vol de la machine — le coffre et la clé y vivent.
  3. Quasi-identifiants : signalés (jauge, opt-in), jamais résolus.
  4. PII hallucinée : le modèle peut inventer une PII sans jeton — non résoluble par le proxy seul ; les sentinelles forgées ne sont jamais restaurées.
  5. /v1/embeddings bloqué (404) : un embedding de PII reste dérivé de PII.
  6. Restauration bornée à la requête : un jeton d'une requête antérieure n'est jamais restauré (registre + MAC).

7 · Vérifier que ça marche

curl -s http://localhost:8787/v1/chat/completions \
  -H "Authorization: Bearer mn_<jeton>.<clé_amont>" \
  -H "Content-Type: application/json" \
  -d '{"model":"x","messages":[{"role":"user","content":
       "Contact: Aminata Diop, user@example.com, tel +221 77 123 45 67"}]}'
# → la réponse contient « Aminata Diop, user@example.com, +221 77 123 45 67 »
#   (restaurés) et aucune sentinelle ⟦…⟧ résiduelle.

Le coffre (~/.cloison/vault.redb) ne contient aucune valeur en clair (chiffré AES-256-GCM) : grep Aminata ~/.cloison/vault.redb ne trouve rien.

8 · Mise à jour & avancé

Suite
Vous préférez le mobile ? Voir le guide Android — même moteur, dans une app WebView.