SELF-HOSTdocker compose · air-gap · własne uwierzytelnianie

Antyplagiat self-hosted z kontrolą danych

Uruchom silnik Apache 2.0 na własnej infrastrukturze. docker compose dla typowej instalacji, Helm dla Kubernetes, bare-metal dla środowisk air-gap. Twoje serwery, twój Postgres, twoje uwierzytelnianie, twoje dane. Żaden ruch nie opuszcza twojego VPC. Właściwe wdrożenie, gdy chmura nie wchodzi w grę.

docker compose w 10 minutObsługa air-gapwłasny Postgres · SAML / LDAP / OIDC
KTO HOSTUJE SAMODZIELNIE

Cztery sytuacje, gdzie chmura nie wchodzi w grę.

KANCELARIE PRAWNE

Wdrożenie z zachowaniem poufności

Pisma, memorandum i materiały w ramach środków ochronnych nie mogą trafić do zewnętrznej chmury.

  • Obsługa sieci odseparowanych (air-gap)
  • Uwierzytelnianie SAML / LDAP / Active Directory
  • Działa w już zgodnym środowisku
UCZELNIE

IRB-ready, lokalnie na kampusie

Prace studenckie, badania kliniczne, badania zatwierdzone przez IRB — rygorystyczne wymogi lokalizacji danych.

  • Działa obok Canvas / Moodle w sieci uczelni
  • Apache 2.0 — informatycy klonują repo przed podpisaniem umowy
  • Tryb rezydencji w UE jeśli chmura jest właściwym poziomem
ADMINISTRACJA

Air-gap + wymagania FedRAMP

Administracja państwowa, wojsko — treści nie mogą opuszczać sieci instytucji.

  • Opcja instalacji bare-metal (nie wymaga Dockera)
  • Obsługa OIDC / CAC / PIV (karty chipowe)
  • STIG-hardening bazowego obrazu (RHEL UBI)
FIRMY

Ochrona własności intelektualnej i tajemnic firmy

Dokumenty R&D, drafrty przejęć czy whitepapery — materiały, które muszą pozostać w organizacji.

  • Kubernetes Helm chart dla skalowania poziomego
  • Własny Postgres + Redis + object store
  • Logi audytu → SIEM (Splunk / Datadog / Elastic)
OPCJE INSTALACJI

Trzy tryby wdrożenia. Jeden silnik.

Wybierz opcję zgodną z twoją infrastrukturą. Silnik wykrywania jest identyczny w każdej opcji; różni się tylko sposób wdrożenia.

01

01 · docker compose (10 min)

git clone github.com/NoplagLabs/noplag-engine && cd engine && docker compose up -d. Plik compose zawiera Postgres, Redis, kontener z silnikiem oraz minimalny panel administracyjny. Domyślnie wdrożenie jednostanowiskowe, odpowiednie dla małych zespołów (około 1 000 sprawdzeń dziennie). Gotowe do użycia w produkcji; większym wyzwaniem jest wdrożenie własnego systemu uwierzytelniania i korpusu tekstów.

02

02 · Kubernetes Helm chart

helm install noplag noplag/engine --values your-values.yaml. Chart korzysta z zewnętrznych instancji Postgres + Redis, umożliwia skalowanie silnika, eksportuje metryki Prometheus do autoskalowania. Udokumentowane wartości Helm dla limitów, liczby replik i persistent-volumes.

03

03 · Bare-metal / air-gap

Dla środowisk bez Dockera (część wdrożeń militarnych i rządowych). Silnik wysyłany jako archiwum tar z zablokowanymi zależnościami; instalacja przez ansible na RHEL UBI lub Ubuntu LTS. Przyjazne air-gap: po instalacji brak połączeń sieciowych na zewnątrz. STIG-hardening obrazu podstawowego; obsługa OIDC / CAC / PIV w zestawie.

WYMAGANIA SYSTEMOWE

Co jest potrzebne do uruchomienia.

Niewielkie wymagania sprzętowe dla mniejszych wdrożeń. Skalowanie poziome dla produkcji. Własne komponenty od uwierzytelniania po korpus w wersji Enterprise.

01 · NODE SILNIKA

Minimum 8 vCPU + 16 GB RAM dla kontenera silnika. Około 50 równoczesnych sprawdzeń przy medianie 47 sek dla 1 500 wyrazów. Skalowalność pozioma przez dokładanie podów za load balancerem — Helm automatyzuje to przez HPA według CPU lub kolejki.

02 · BAZA DANYCH

PostgreSQL 15+ z pgvector. Rozmiar zależny od wolumenu: ~50 GB na 100 000 dokumentów, rośnie liniowo. RDS / Cloud SQL / instancje zarządzane przez zwykły connection string. Dla self-host muszą być aktywne pgvector + GIN.

03 · CACHE / KOLEJKA

Redis 7+ jako kolejka i cache. Typowe zużycie RAM ~2 GB. Elasticache / Memorystore / Redis Cloud działają; Redis pod w klastrze — dobry dla małych wdrożeń. Chart domyślnie używa Sentinel do HA.

04 · PRZECHOWYWANIE KORPUSU

Enterprise: dostarcza publiczny korpus jako paczkę do zaindeksowania (~280 GB po kompresji). Przy pierwszej instalacji odtwarzany do Postgres + magazyn obiektowy (S3 / GCS / MinIO / Ceph). Opcjonalnie: własne adaptery do wyszukiwarek internetowych (klucze API Google / Brave) do weryfikacji na żywo lub pomiń, jeśli sprawdzasz tylko względem zaindeksowanego korpusu.

05 · TOŻSAMOŚĆ

SAML 2.0, LDAP, OIDC (Okta, Azure AD, Auth0, Keycloak) lub wbudowany email + hasło. Uwierzytelnianie kartą (CAC / PIV) przez OIDC dla rządowych wdrożeń. Obsługa multi-tenancy w pojedynczym wdrożeniu — przydatne dla usług współdzielonych między działami.

06 · OBSERWOWALNOŚĆ

Prometheus metrics endpoint + ślady OpenTelemetry. Log audytu jako JSON; przesył do SIEM (Splunk, Datadog, Elastic, Grafana Loki). Dashboardy jako Grafana JSON w repo. Kompatybilne z typowymi narzędziami CNCF.

URUCHOM TO W 10 MINUT

Standardowy deployment docker compose.

Gotowy do produkcji stack compose: silnik, Postgres, Redis, UI admina. Dodaj własny provider uwierzytelniania, skonfiguruj korpus, skaluj horyzontalnie gdy wyrośniesz z pojedynczego noda.

$ install · bashKopiuj
$ 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 · konfiguracjaKopiuj
# 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 do gotowości
  • 8 / 16vCPU / GB RAM minimum
  • Apache2.0 · bezpłatnie na zawsze
  • 0wymaga sieci zewnętrznej (air-gap)
  • SAMLLDAP · OIDC · CAC / PIV smart-card
UWIERZYTELNIANIE + TOŻSAMOŚĆ

Podłącz do swojej infrastruktury tożsamości.

01 · SAML 2.0

Standardowe SSO dla firm

Ustaw SAML_METADATA_URL do wskazania swojego IdP. Testowane z Okta, Auth0, OneLogin, Microsoft Entra (Azure AD), Ping Identity, Keycloak, Shibboleth. Mapowanie grup dla ról. Provisioning SCIM 2.0 przez API administratora.

Provisioning just-in-time + synchronizacja SCIM · najczęstszy model firmowy.
02 · LDAP / AD

Integracja z Active Directory

Dla środowisk z lokalnym AD lub OpenLDAP. Credentials skonfigurowane w .env; dostęp zależny od grupy. Praktyczne dla uczelni, kancelarii i urzędów gdzie SAML jest zbędny lub AD już działa.

Obsługa zapytań o zagnieżdżone grupy · typowe opóźnienie 5 s.
03 · OIDC + SMART-CARD

OIDC w chmurze + CAC/PIV dla obronności

Typowy OIDC dla Okta / Auth0 / Cognito / Google Workspace. Dla obronności: CAC/PIV przez OIDC. Mapuje identyfikator karty do użytkownika Noplag; grupy synchronizowane z katalogiem kart w organizacji.

Wymagania FedRAMP · obsługa kart testowana z DoD CAC + GSA PIV.
ZARZĄDZANIE AKTUALIZACJAMI

Aktualizujesz kiedy chcesz, nie kiedy my chcemy.

Samodzielny hosting = kontrolujesz cykl aktualizacji. Co miesiąc tagujemy wersje stabilne (te same co chmurę) i publikujemy łatki bezpieczeństwa jeśli trzeba. Ściągnij tag, uruchom docker compose pull && up -d. Migracje uruchamiają się przy starcie kontenera. Air-gap: publikujemy podpisane paczki (RPM / DEB / tar) z podpisanymi haszami; weryfikuj podpis, prześlij przez swój proces akceptacji, instaluj w oknie serwisowym. LTS dostają krytyczne poprawki przez 18 miesięcy; produkcyjne — miesięczne update'y zgodne z cyklem chmury. Zawsze: ścieżka aktualizacji i dane są po twojej stronie. Jedyna nasza kontrola to to, co publikujemy do rejestru.

Przeczytaj przewodnik po aktualizacjach
FAQ

Pytania, które faktycznie zadaje IT / DevOps przed wdrożeniem.

Co jest bezpłatne, a co płatne w wersji self-host?

Silnik Apache 2.0 jest bezpłatny na zawsze — klonujesz repo, uruchamiasz. Bezpłatnie masz cały pipeline wykrywania + admin UI + REST API. W wersji Enterprise dochodzi: indeksowany publiczny korpus (~280 GB gotowego indeksu), wsparcie SLA, dostawa podpisanej paczki pod air-gap, pomoc migracyjna.

Da się uruchomić zupełnie bez internetu (air-gap)?

Tak. Silnik nie wymaga połączeń na zewnątrz przy sprawdzaniu względem indeksowanego korpusu. Ustaw WEB_SEARCH_ENABLED=false, żeby pominąć warstwę 'live web'. Enterprise otrzymuje podpisane paczki z osobnym podpisem GPG — prześlij przez swoje ścieżki akceptacji. Przetestowane w środowiskach wojskowych i wywiadzie.

Jakie jest absolutne minimum sprzętowe?

Silnik: 8 vCPU + 16 GB RAM. Postgres: 4 vCPU + 8 GB + ~50 GB na 100k dokumentów. Redis: ~2 GB RAM. Na 5 000 sprawdzeń/miesiąc starczy mocny serwer. Na 100 tys. lub więcej: Kubernetes + skalowanie silnika + zarządzany Postgres.

Czy działa z naszym systemem tożsamości?

SAML 2.0 (Okta, Auth0, Entra, OneLogin, Keycloak, Shibboleth), LDAP / Active Directory, OIDC, CAC/PIV przez OIDC dla rządu, albo wbudowany email-hasło. Obsługa SCIM 2.0. Grupę można mapować na rolę.

A co z pgvector — to twardy wymóg?

Będzie wymagane dla warstwy L3 z osadzaniem wektorowym (v1.2); wersja v1.0 tego nie wymaga. Postgres 15+ z pgvector. RDS, Cloud SQL i Cloud Postgres obsługują to natywnie. W przypadku własnej instancji Postgres konieczne jest wykonanie CREATE EXTENSION pgvector podczas wdrożenia. Bez tego silnik uruchomi dostępne warstwy, ale po wprowadzeniu warstwy semantyczno-parafrazującej nie będzie ona działać.

Jak wgrać publiczny korpus do zamkniętej sieci?

Enterprise: publiczny korpus jako podpisany pakiet ~280 GB. Przeładuj przez swój proces importu, odtwórz do Postgres + object store na starcie. Paczka aktualizowana co miesiąc zgodnie z chmurą. Wersja Community: budujesz własną paczkę z OpenAlex / CORE / Common Crawl publicznych dumpów poprzez skrypty ingest.

Jak wygląda aktualizacja w środowisku produkcyjnym?

Wersje stabilne tagowane co miesiąc (ta sama wersja w chmurze). LTS: 18 miesięcy łatek. Standardowa ścieżka: docker compose pull && up -d (Helm: helm upgrade). Migracje automatyczne przy starcie; semver zachowane; zmiany łamiące w migration notes.

Czy to produkt zgodny z SOC 2 / HIPAA / FedRAMP?

Samodzielny hosting sprawia, że odpowiedzialność za zgodność spoczywa na Tobie — dostarczamy silnik, a Ty uruchamiasz go w środowisku, które już spełnia Twoje wymagania. Jesteśmy firmą open-core w fazie ponownego uruchomienia i sami nie posiadamy autoryzacji SOC 2, HIPAA ani FedRAMP; nie twierdzimy, że je mamy. Samodzielny hosting umożliwia zespołom z takimi wymaganiami uruchomienie Noplag całkowicie w ramach już stosowanych przez nich kontroli — obsługa air-gap, bare-metal, CAC/PIV, kontrola PHI po Twojej stronie, nic nie opuszcza Twojej sieci.

Da się dostosować pipeline wykrywania?

Apache 2.0 — można forkować i modyfikować. Operatorzy dodali własne źródła korpusu, zmodyfikowane klasyfikatory cytatów (lokalne style spoza domyślnych sześciu), i pluginy. Pull requesty mile widziane; scalimy to, co pasuje do szerszej bazy.

Jak wygląda wsparcie?

Community: zgłoszenia GitHub, publiczny Discord, dokumentacja społeczności. Odpowiadamy na bugi i zgłoszenia bezpieczeństwa, ale nie gwarantujemy SLA. Enterprise: dedykowany inżynier, osoba kontaktowa, SLA w umowie, pomoc techniczna, wsparcie migracji.

Klonuj repo. docker compose up. Uruchom w swojej sieci.

Apache 2.0 — bezpłatnie na zawsze. Kontrakty dla firm obejmują dodatkowy pakiet indeksowalnego publicznego korpusu, dedykowane SLA wsparcia oraz podpisane wydania do środowisk odizolowanych. W pozostałych przypadkach: github.com/NoplagLabs/noplag-engine i własny host z Dockerem.

Antyplagiat self-hosted dla pełnej kontroli danych