SELF-HOSTdocker compose · air-gap · auth fornita da voi

Antiplagio self-hosted per conformità e dati locali

Esegui il motore Apache 2.0 sulla tua infrastruttura. Docker compose per l’installazione tipica, Helm chart per Kubernetes, bare-metal per ambienti air-gapped. I vostri server, il vostro Postgres, la vostra gestione utenti, i vostri dati. Nessun traffico esce dalla vostra VPC. L’opzione giusta quando il cloud non è possibile.

docker compose in 10 minutiAir-gap supportatoPostgres fornito da voi · SAML / LDAP / OIDC
CHI SELF-HOSTA

Quattro contesti dove il cloud non è un’opzione.

STUDI LEGALI

Deployment che preserva il privilegio

Atti, memo e documenti sotto ordine protettivo non possono andare su cloud di terzi.

  • Rete air-gapped supportata
  • Auth SAML / LDAP / Active Directory
  • Funziona nel vostro ambiente già a norma
UNIVERSITÀ

Revisionabile IRB, on-campus

Consegne degli studenti, ricerca clinica, studi approvati IRB — requisiti di residenza dati rigidi.

  • Funziona insieme a Canvas / Moodle sulla vostra rete
  • Apache 2.0 — il vostro IT clona la repo prima di firmare
  • Modalità residenza UE se il cloud è il livello giusto
PUBBLICA AMMINISTRAZIONE

Air-gapped + vicino a FedRAMP

Federale, regionale, difesa — i contenuti non escono dalla rete d’agenzia.

  • Opzione installazione bare-metal (senza Docker)
  • Auth OIDC / CAC / PIV smart-card supportata
  • Base image STIG-hardenable (RHEL UBI)
AZIENDA

Protezione IP interna + trade-secret

Documenti R&D, bozze M&A, whitepaper interni — contenuti da mantenere dentro il firewall.

  • Helm chart Kubernetes per scaling orizzontale
  • Postgres + Redis + object store forniti da voi
  • Log audit → SIEM (Splunk / Datadog / Elastic)
OPZIONI DI INSTALLAZIONE

Tre modalità di deployment. Un solo motore.

Scegliete ciò che corrisponde alla vostra infrastruttura. Il motore di detection è identico per tutte; cambia solo il packaging operativo.

01

01 · docker compose (10 min)

git clone github.com/NoplagLabs/noplag-engine && cd engine && docker compose up -d. Il file compose include Postgres, Redis, il container dell’engine e una UI amministrativa minimale. Configurazione predefinita per un deployment a nodo singolo, adatto a carichi di lavoro di piccoli team (~1.000 verifiche/giorno). Pronto per la produzione così com’è; la parte più complessa resta integrare la propria autenticazione e corpus.

02

02 · Kubernetes Helm chart

helm install noplag noplag/engine --values your-values.yaml. Il chart esternalizza Postgres + Redis (da collegare ai vostri cluster), supporta scaling orizzontale dei pod engine, espone metriche Prometheus per autoscaling. Helm values documentati: limiti risorse, numeri di repliche, richieste storage.

03

03 · Bare-metal / air-gapped

Per ambienti che non possono usare Docker (alcuni Defense o PA). Il motore arriva come archivio tar con dipendenze fissate; installazione via ansible playbook su RHEL UBI o Ubuntu LTS. Air-gap: nessuna chiamata di rete dopo l’installazione. Base image STIG-hardenable; auth OIDC / CAC / PIV inclusi.

REQUISITI DI SISTEMA

Cosa serve per farlo girare.

Hardware modesto per piccoli team. Scala orizzontalmente per alti volumi. Portate tutto voi: auth e corpus, con Enterprise.

01 · NODO MOTORE

8 vCPU + 16 GB RAM minimi per il container motore. Gestisce ~50 check in parallelo (~47 sec a documento da 1.500 parole). Scala orizzontalmente con pod engine dietro bilanciatore — Helm chart automatizza HPA su CPU e coda.

02 · DATABASE

PostgreSQL 15+ con estensione pgvector. Dimensionato per il vostro volume di fingerprint: ~50 GB ogni 100.000 doc indicizzati, scala lineare. Supporto RDS / Cloud SQL / istanze gestite tramite standard connection string. Postgres gestito da voi: attivare pgvector + GIN.

03 · CACHE / QUEUE

Redis 7+ per queue e cache. Ingombro ridotto (~2 GB RAM tipico). Elasticache / Memorystore / Redis Cloud funzionano; Redis pod in-cluster va bene per installazioni piccole. Chart default: Redis Sentinel per HA.

04 · STORAGE CORPUS

Enterprise: fornisce il corpus pubblico come pacchetto indicizzabile (~280 GB compressi). Ripristinato su Postgres + object store (S3 / GCS / MinIO / Ceph) al primo avvio. Opzionale: puoi integrare adattatori di ricerca web (API key Google / Brave) per la verifica in tempo reale, oppure omettere questa parte se controlli solo rispetto al corpus indicizzato.

05 · IDENTITÀ

SAML 2.0, LDAP, OIDC (Okta, Azure AD, Auth0, Keycloak), o email-password interna. Auth smart-card (CAC / PIV) supportata con OIDC bridge nei deployment pubblica amministrazione. Multi-tenant in una sola installazione — utile per servizi condivisi tra dipartimenti.

06 · OSSERVABILITÀ

Endpoint Prometheus metriche + tracce OpenTelemetry. Audit log in JSON; integrabile con SIEM (Splunk, Datadog, Elastic, Grafana Loki). Dashboards fornite come Grafana JSON nel repo. Compatibile CNCF stack di osservabilità.

DEPLOY IN 10 MINUTI

Deployment docker compose standard.

Stack compose pronta produzione con motore, Postgres, Redis e admin UI. Aggiungete vostro provider auth; configurate corpus; scalate orizzontalmente se serve.

$ install · bashCopia
$ git clone https://github.com/NoplagLabs/noplag-engine
$ cd engine
$ cp .env.example .env
$ vim .env # configure auth + corpus + secrets
$ docker compose up -d
Creating noplag-postgres ... done
Creating noplag-redis ... done
Creating noplag-engine ... done
Creating noplag-admin ... done
Engine ready at http://localhost:8080
Admin UI at http://localhost:8081
.env · configurazioneCopia
# Auth
AUTH_PROVIDER=saml # or oidc, ldap, builtin
SAML_METADATA_URL=https://idp.acme.com/...
# Database
POSTGRES_URL=postgres://user:pw@db:5432/noplag
REDIS_URL=redis://redis:6379/0
# Corpus
CORPUS_BUNDLE_PATH=/srv/corpus/2026-05
WEB_SEARCH_ENABLED=false # air-gap
# Observability
OTEL_ENDPOINT=https://otel.acme.com:4317
AUDIT_LOG_SINK=splunk-hec
  • 10 mindocker compose pronto
  • 8 / 16vCPU / GB RAM minimo
  • Apache2.0 · free per sempre
  • 0richiesta rete esterna (air-gap)
  • SAMLLDAP · OIDC · CAC / PIV smart-card
AUTH + IDENTITÀ

Collegate la vostra infrastruttura identità.

01 · SAML 2.0

SSO standard aziendale

Configurate SAML_METADATA_URL al vostro IdP. Testato con Okta, Auth0, OneLogin, Microsoft Entra (Azure AD), Ping Identity, Keycloak, Shibboleth. Mappatura attributi-gruppo per accesso ruoli. Provisioning utenti SCIM 2.0 via admin API.

Provisioning just-in-time + sync SCIM · pattern enterprise più comune.
02 · LDAP / AD

Integrazione Active Directory diretta

Per ambienti con AD on-prem o OpenLDAP. Bind credentials in .env; query gruppi definiscono accesso. Utile per università, studi legali, PA dove SAML è eccessivo o AD copre già l'organizzazione.

Supporta query gruppi annidati · tipica latenza auth: 5 secondi.
03 · OIDC + SMART-CARD

OIDC per cloud-native + CAC/PIV per difesa

OIDC standard per Okta / Auth0 / Cognito / Google Workspace. Per difesa/federale: auth CAC/PIV tramite OIDC bridge. Mappa identificatore smart-card su utente Noplag; mapping gruppi rispetta directory smart-card DoD.

Postura vicino FedRAMP · smart-card testate con DoD CAC + GSA PIV.
GESTIONE PATCH

Aggiornate quando volete.

Self-hosted significa che controllate il ritmo di aggiornamento. Tagghiamo release stabili mensilmente (lo stesso commit della cloud tier) e release patch per le vulnerabilità. Pull del nuovo tag, docker compose pull && up -d, fatto. Migrazioni all’avvio container. Operatori air-gapped: pubblicati bundle firmati (RPM / DEB / tar) con firme distaccate; verificate la firma, trasferite tramite il vostro flusso di approvazione software, installate al prossimo intervento programmato. Tag supporto a lungo termine: patch sicurezza per 18 mesi. Tag produzione: update mensile come la cloud. In ogni caso: upgrade gestito da voi, dati vostri, noi controlliamo solo quanto pubblicato sul registry.

Leggi la guida all'upgrade
FAQ

Cosa chiede davvero IT / DevOps prima del deployment.

Cosa è realmente gratis e cosa a pagamento nella versione self-hosted?

Il motore Apache 2.0 è gratis per sempre — clonate la repo, eseguitelo. Gratis: detection, admin UI, REST API. Enterprise aggiunge: corpus pubblico indicizzabile (~280GB indice), supporto dedicato SLA, bundle release firmato per air-gap, aiuto migrazione.

Possiamo eseguirlo senza accesso internet (air-gapped)?

Sì. Il motore non richiede rete esterna per check su corpus indicizzato. Impostate WEB_SEARCH_ENABLED=false per saltare il livello web-live. Enterprise fornisce bundle release firmato con firme GPG — trasferite tramite processo approvazione software. Testato in deployment DoD e intelligence.

Qual è il footprint hardware minimo?

Container motore: 8 vCPU + 16 GB RAM. Postgres: 4 vCPU + 8 GB + ~50 GB ogni 100k doc indicizzati. Redis: ~2 GB RAM. Per 5.000 check/mese basta un server di fascia media. Per 100k+ check/mese: Kubernetes + scaling orizzontale + Postgres gestito cloud.

Funziona con la nostra gestione identità?

SAML 2.0 (Okta, Auth0, Entra, OneLogin, Keycloak, Shibboleth), LDAP / Active Directory, OIDC, CAC/PIV smart-card via OIDC bridge per PA, o email-password interna. Provisioning SCIM 2.0 supportato. Mapping attributo-gruppo → ruolo configurabile.

pgvector è una dipendenza bloccante?

Sarà necessario per il layer L3 vector-embeddings (v1.2); la v1.0 non lo richiede. Postgres 15+ con pgvector. RDS, Cloud SQL e Cloud Postgres lo supportano. Per Postgres gestito autonomamente serve CREATE EXTENSION pgvector al momento del deploy. Senza questa estensione, l’engine esegue comunque i layer forniti, ma perderà il layer semantico-parafrasi quando sarà disponibile.

Come portiamo il corpus pubblico su rete privata?

Enterprise: ~280 GB bundle firmato. Trasferite con vostra gestione dati, ripristino su Postgres + object store al primo setup. Aggiornamento mensile con corpus cloud. Community: create il vostro da OpenAlex / CORE / Common Crawl dump pubblici usando gli script.

Come si aggiorna in produzione?

Release stabili taggate mensilmente (stesso commit della cloud). Tag LTS: 18 mesi patch sicurezza. Upgrade: docker compose pull && up -d (Helm: helm upgrade). Migrazioni auto a startup; semver rispettato; breaking change documentate nelle notes.

Funziona con SOC 2 / HIPAA / FedRAMP?

Self-host sposta la compliance su di voi — noi forniamo solo il motore, lo eseguite dove già rispettate i requisiti. Siamo una open-core company rilanciata e non abbiamo certificazioni SOC 2, HIPAA, FedRAMP; non lo dichiariamo. Ciò che self-host offre a questi team è esecuzione Noplag tutta sotto i controlli operati da voi — air-gap + bare-metal + CAC/PIV supportati, PHI a vostro carico, niente dati in uscita.

Possiamo personalizzare la pipeline di detection?

Apache 2.0 — forkate e modificate. Chi self-host ha aggiunto: fonti corpus custom, modifiche ai classifier citazioni (stili regionali non coperti), plug-in di integrazione. PR upstream ok; accettiamo e mergiamo ciò che si adatta all’utenza ampia.

E riguardo il supporto?

Community: GitHub issues, Discord pubblico, docs gestite dalla community. Rispondiamo a segnalazioni bug e disclosure sicurezza ma non promettiamo SLA. Enterprise: solutions engineer dedicato, contact supporto nominato, SLA risposta da contratto, aiuto integrazione/migrazione.

Clona la repo. docker compose up. Eseguilo nella tua rete.

Apache 2.0 — gratuito per sempre. I contratti enterprise includono il bundle del corpus pubblico indicizzabile, SLA di supporto dedicato e rilascio firmato per ambienti isolati. In alternativa: github.com/NoplagLabs/noplag-engine e un host docker sotto il tuo controllo.

Antiplagio self-hosted per dati UE e on-prem