Logiciel anti-plagiat auto-hébergé
Faites tourner le moteur Apache 2.0 sur votre propre infrastructure. Docker compose pour l’installation standard, Helm chart pour Kubernetes, support sur machine physique pour les environnements isolés. Vos serveurs, votre Postgres, votre authentification, vos données. Aucun trafic ne sort de votre VPC. Le bon choix quand le cloud n’est pas possible.
Quatre contextes où le cloud n’est pas une option.
Déploiement préservant le privilège
Les conclusions, notes de synthèse et pièces sous ordonnance de protection ne peuvent pas aller sur un cloud tiers.
- Réseau isolé pris en charge
- Authentification SAML / LDAP / Active Directory
- Tourne dans un environnement déjà conforme
Audit IRB, sur campus
Soumissions étudiantes, recherche clinique, études approuvées IRB — exigences strictes sur la résidence des données.
- Tourne avec Canvas / Moodle sur votre réseau
- Apache 2.0 — votre DSI clone le dépôt avant signature
- Mode résidence UE si le cloud convient
Air-gap + similaire FedRAMP
Fédéral, état, défense — le contenu ne doit pas quitter le réseau de l’agence.
- Option d’installation sur machine physique (Docker non requis)
- OIDC / CAC / PIV carte à puce pris en charge
- Image de base renforcée STIG (RHEL UBI)
Protection des PI + secrets industriels
Docs R&D, drafts de fusion/acquisition, livres blancs internes — contenu qui doit rester derrière le pare-feu.
- Helm chart Kubernetes pour la scalabilité horizontale
- Postgres + Redis + stockage objet à fournir
- Journal d’audit → SIEM (Splunk / Datadog / Elastic)
Trois modes de déploiement. Un moteur.
Choisissez la voie adaptée à votre infra. Le moteur de détection est identique sur les trois; seul l’habillage opérationnel diffère.
01 · docker compose (10 min)
git clone github.com/NoplagLabs/noplag-engine && cd engine && docker compose up -d. Le fichier compose inclut Postgres, Redis, le conteneur du moteur et une interface d’administration minimale. Configuration par défaut en déploiement mono-nœud, adaptée à une petite équipe (~1 000 vérifications/jour). Prêt pour la production tel quel ; l’essentiel du travail consiste à intégrer votre propre système d’authentification et votre corpus.
02 · Kubernetes Helm chart
helm install noplag noplag/engine --values your-values.yaml. Le chart externalise Postgres + Redis (pointez sur vos clusters existants), prend en charge l’auto-scaling horizontal des pods moteur, et expose les métriques Prometheus pour l’auto-scaling. Valeurs Helm documentées pour ressources, réplicas et volumes persistants.
03 · Machine physique / air-gap
Pour les environnements où Docker n’est pas possible (défense + administration). Le moteur est fourni en archive tar avec toutes dépendances fixées ; installation par playbook ansible sur RHEL UBI ou Ubuntu LTS. Compatible air-gap : aucune connexion réseau extérieure après install. Image de base renforçable STIG ; modules OIDC / CAC / PIV inclus.
Ce qu’il faut pour tourner.
Empreinte modérée côté matériel pour petites équipes. Scalabilité horizontale possible pour volume de production. Tout est à fournir, de l’authentification au corpus en mode Entreprise.
01 · NŒUD MOTEUR
8 vCPU + 16 Go RAM minimum pour le conteneur moteur. Gère ~50 vérifications simultanées (47 sec médian par document de 1 500 mots). Scalabilité horizontale via pods moteur derrière un load balancer — Helm chart Kubernetes gère cela avec HPA sur CPU + profondeur de file.
02 · BASE DE DONNÉES
PostgreSQL 15+ avec extension pgvector. Taillé selon le volume d’empreintes : ~50 Go pour 100 000 docs indexés, évolutif linéairement. RDS / Cloud SQL / instances managées via conn. standard. Postgres autogéré nécessite pgvector + GIN activés.
03 · CACHE / FILE
Redis 7+ pour la file de travail + cache. Empreinte modérée (~2 Go RAM typique). Elasticache / Memorystore / Redis Cloud conviennent ; pod Redis dans le cluster ok pour faible volumétrie. Le chart utilise Redis Sentinel par défaut en HA.
04 · STOCKAGE CORPUS
Enterprise : fournit le corpus public sous forme de bundle indexable (~280 Go compressés). Restauration dans Postgres et un object store (S3 / GCS / MinIO / Ceph) lors de la première installation. Optionnel : possibilité d’ajouter vos propres adaptateurs de recherche web (clés API Google / Brave) pour la vérification en ligne, ou à ignorer si vous vérifiez uniquement par rapport au corpus indexé.
05 · IDENTITÉ
SAML 2.0, LDAP, OIDC (Okta, Azure AD, Auth0, Keycloak), ou email/mot de passe intégré. Auth carte à puce (CAC / PIV) via passerelle OIDC pour administration. Multi-tenants sur une seule install — pour services partagés entre départements.
06 · OBSERVABILITÉ
Point de terminaison métriques Prometheus + traces OpenTelemetry. Journal d’audit en JSON ; branchement vers votre SIEM (Splunk, Datadog, Elastic, Grafana Loki). Tableaux de bord Grafana fournis en JSON dans le dépôt. Compatible pile CNCF standard.
Déploiement standard docker compose.
Stack compose prête à l’emploi avec moteur, Postgres, Redis, et UI admin. Ajoutez votre provider d’auth, configurez votre corpus, passez au mode cluster si besoin de plus d’un nœud.
$ git clone https://github.com/NoplagLabs/noplag-engine$ cd engine$ cp .env.example .env$ vim .env # configure auth + corpus + secrets$ docker compose up -dCreating noplag-postgres ... doneCreating noplag-redis ... doneCreating noplag-engine ... doneCreating noplag-admin ... doneEngine ready at http://localhost:8080Admin UI at http://localhost:8081
# AuthAUTH_PROVIDER=saml # or oidc, ldap, builtinSAML_METADATA_URL=https://idp.acme.com/...# DatabasePOSTGRES_URL=postgres://user:pw@db:5432/noplagREDIS_URL=redis://redis:6379/0# CorpusCORPUS_BUNDLE_PATH=/srv/corpus/2026-05WEB_SEARCH_ENABLED=false # air-gap# ObservabilityOTEL_ENDPOINT=https://otel.acme.com:4317AUDIT_LOG_SINK=splunk-hec
- 10 mindocker compose prêt
- 8 / 16vCPU / Go RAM minimum
- Apache2.0 · gratuit à vie
- 0réseau externe requis (air-gap)
- SAMLLDAP · OIDC · CAC / PIV carte à puce
Connectez à votre infrastructure d’identité.
SSO standard entreprise
Configurez SAML_METADATA_URL vers votre IdP. Testé avec Okta, Auth0, OneLogin, Microsoft Entra (Azure AD), Ping Identity, Keycloak, Shibboleth. Mapping de groupes pour gestion des rôles. Provisionnement utilisateurs SCIM 2.0 via l’API admin.
Connexion Active Directory directe
Pour les environnements avec AD ou OpenLDAP sur site. Identifiants à configurer dans .env ; groupes déterminent l’accès. Utile universités + avocats + administration où SAML est excessif ou AD déjà présent.
OIDC pour cloud + CAC/PIV pour défense
OIDC standard pour Okta / Auth0 / Cognito / Google Workspace. Pour défense + fédéral : CAC/PIV via OIDC bridge. Associe l’identifiant carte à l’utilisateur Noplag; mapping de groupes d’après l’annuaire DoD.
Mettez à jour à votre rythme.
Auto-hébergé = vous maîtrisez le rythme de mises à jour. Releases stables taguées tous les mois (le même commit que le cloud) et patchs de sécu dès que nécessaire. Récupérez le tag, faites docker compose pull && up -d, terminé. Les migrations lancées au démarrage du conteneur. Pour air-gap : bundles signés (RPM / DEB / tar) fournis ; vérifiez la signature, passez par votre procédure de validation logicielle, installez lors de la prochaine fenêtre de maintenance. Les tags support long-terme reçoivent les patchs critiques 18 mois; les tags prod sont mis à jour tous les mois comme en cloud. Dans tous les cas, la montée de version est sous votre contrôle, les données aussi, la seule chose qu’on contrôle c’est ce qu’on publie sur le registre.
Lire le guide de mise à jourQuestions que l’IT/DevOps pose vraiment avant de déployer.
Concrètement, qu’est-ce qui est gratuit ou payant en auto-hébergé ?
Le moteur Apache 2.0 lui-même est gratuit à vie — clonez le dépôt, lancez-le. Ce qui est gratuit couvre la détection, l’UI admin et l’API REST. L’offre Entreprise ajoute : le corpus public pré-indexé (~280 Go), le support dédié SLA, bundles signés pour air-gap, et aide migration.
Peut-on le faire tourner sans accès internet (air-gap) ?
Oui. Le moteur n’a pas besoin d’accès externe pour vérifier contre le corpus indexé. Mettez WEB_SEARCH_ENABLED=false pour couper la couche web en direct. Offre Entreprise : bundles signés avec signatures GPG détachées — transférez via votre processus d’approbation logicielle. Déjà testé en environnements DoD + renseignement.
Quelle empreinte minimale ?
Conteneur moteur : 8 vCPU + 16 Go RAM. Postgres : 4 vCPU + 8 Go + ~50 Go pour 100k docs indexés. Redis : ~2 Go RAM. 5 000 vérifs/mois : un serveur intermédiaire suffit pour tout. Pour 100k+ vérifs/mois, Kubernetes + scalabilité moteur + Postgres managé.
Ça marche avec notre infra d’identité existante ?
SAML 2.0 (Okta, Auth0, Entra, OneLogin, Keycloak, Shibboleth), LDAP / AD, OIDC, carte à puce CAC/PIV via passerelle OIDC pour le fédéral, ou email/mot de passe intégré. Provisionnement SCIM 2.0. Mapping d’attributs groupe → rôle paramétrable.
Et pgvector ? Dépendance obligatoire ?
Ce sera nécessaire pour la couche d’embeddings vectoriels L3 (v1.2) ; v1.0 ne l’exige pas. Postgres 15+ avec pgvector. RDS, Cloud SQL et Cloud Postgres le prennent en charge. Pour un Postgres autogéré, il faut exécuter CREATE EXTENSION pgvector lors du déploiement. Sans cela, le moteur fonctionne avec les couches fournies mais la couche sémantique-paraphrase ne sera pas disponible lorsqu’elle sera ajoutée.
Comment importer le corpus public sur réseau privé ?
Entreprise : bundle signé ~280 Go. Transférez via votre import de données, restaurez dans Postgres + stockage objet à la première install. Nouvelle version tous les mois avec actualisation cloud. Communautaire : à construire depuis OpenAlex / CORE / Common Crawl dumps publics avec les scripts d’ingest.
Comment les mises à jour en prod ?
Versions stables taguées mensuelles (même commit que le cloud). Tags LTS : sécu 18 mois. Upgrade standard : docker compose pull && up -d (Helm : helm upgrade). Les migrations se lancent sur démarrage ; semver respecté ; changements majeurs notés dans les migrations.
SOC 2 / HIPAA / FedRAMP ?
L’auto-hébergement vous rend responsable de la conformité : on fournit le moteur, à vous de l’exécuter dans un environnement déjà conforme. Nous sommes une société open-core relancée, sans autorisation SOC 2, HIPAA ou FedRAMP ; nous ne le revendiquons pas. L’auto-hébergé permet aux équipes avec ces exigences de garder Noplag dans leurs propres contrôles — air-gap + machine physique + CAC/PIV pris en charge, gestion des PHI côté client, rien ne quitte votre réseau.
Peut-on personnaliser la détection ?
Apache 2.0 — fork et modification possibles. Les utilisateurs auto-hébergés ont ajouté : sources de corpus personnalisées, classifieurs de citations adaptés (styles régionaux hors ceux par défaut), plugins d’intégration. PR amont bienvenus ; nous fusionnons ce qui profite à la base utilisateur globale.
Et le support ?
Communauté : issues GitHub, Discord public, docs communautaires. On répond aux bugs et failles mais pas d’engagements SLA. Entreprise : ingénieur dédié, contact support nommé, SLA de temps de réponse contractuel, aide à l’intégration, assistance migration.
Clonez le dépôt. docker compose up. Faites-le tourner sur votre réseau.
Apache 2.0 — gratuit à vie. Les contrats entreprise ajoutent le bundle de corpus public indexable, un support dédié avec SLA, et la livraison signée en environnement isolé. Sinon : github.com/NoplagLabs/noplag-engine et un hôte docker sous votre contrôle.