# Один узел, состояние маскирования/демаскирования — в памяти самого процесса # (pdguard.store.backend=memory, дефолт). Redis был нужен только чтобы разделить # состояние между несколькими репликами; кластерная схема на 4-vCPU хосте под # нагрузкой давала конкуренцию за CPU (см. историю в git) — один узел проще и # получает весь хост целиком. services: pd-guard: image: pd-guard-spring:jvm ports: - "8080:8080" environment: PDGUARD_MAX_CONCURRENT: "2000" PDGUARD_WARMUP_ITERATIONS: "2000" # Вторая ступень распознавания — две модели под разные задачи (см. # NameCascade.java): WikiNEuRal размечает имена, ruBERT — составляющие # адреса. Модели в репозиторий не входят: ./tools/fetch-ner-model.sh. PDGUARD_NER_NAME_ENGINE: wikineural PDGUARD_NER_NAME_MODEL: /deployments/models/wikineural-ner PDGUARD_NER_ADDRESS_ENGINE: rubert PDGUARD_NER_ADDRESS_MODEL: /deployments/models/rubert-ner volumes: - ./config:/deployments/config:ro - ./models:/deployments/models:ro healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"] interval: 10s timeout: 2s retries: 3