Skip to main content
CID222 Docs

Services, ports and profiles

Every container in the CID stack: published ports, compose profile, memory limit and healthcheck.

  • Type: reference

One row per compose service. Regenerate with make docs-generate.

  • Profile empty means the service starts with a plain docker compose up -d. Anything else needs --profile <name>.
  • Ports are as published on the host. 127.0.0.1: means loopback only.
  • Memory is the declared limit (deploy.resources.limits.memory or mem_limit), not usage.

Services

ServicePortsProfileMemory limitHealthcheckPurpose
attack-guard127.0.0.1:8003:8003default4GyesONNX Jailbreak + libinjection SQLi/XSS scan
caddy80:80
443:443
443:443/udp
default—yes—
cid-inline-proxy—inline-proxy—nomitmproxy forward-proxy (opt-in: --profile inline-proxy)
cid-proxy127.0.0.1:8080:8080default128MyesGo reverse-proxy front (auth + routing)
cid-userid-agent127.0.0.1:${USERID_AGENT_PORT:-8090}:8090userid-agent—noAD User-ID attribution (opt-in: --profile userid-agent)
cost-analyzer127.0.0.1:8016:8016routing1Gyes—
deepteam127.0.0.1:8010:8010default2GyesRed-team testing
doc-classifier127.0.0.1:8017:8017default2Gno—
document-parser127.0.0.1:8012:8012default2GyesPDF/DOCX extraction
frontend127.0.0.1:${FRONTEND_PORT:-5173}:5173default—yesReact Dashboard
hallucination-guard127.0.0.1:${HALLUCINATION_GUARD_HOST_PORT:-8022}:8022default4GyesRAG hallucination (LettuceDetect EN+TR)
hap-guard-v2127.0.0.1:8004:8000default6GyesONNX Toxicity (100+ langs)
language-detector127.0.0.1:8008:8008default2GyesLanguage detection
llm-inference127.0.0.1:8021:8000llm—yes—
mailpit127.0.0.1:8025:8025mailtest—no—
mcp-server127.0.0.1:${MCP_SERVER_HOST_PORT:-8020}:8020llm-analyst1GyesRead-only MCP server over Postgres (opt-in: --profile llm-analyst)
ml-detector127.0.0.1:8001:8000default6GyesONNX NER PII
nestjs-core127.0.0.1:3000:3000
${ICAP_PUBLISH:-127.0.0.1}:1344:1344
default—yesAPI Gateway
ocr-service127.0.0.1:8009:8009default4GyesImage OCR
openldap-test127.0.0.1:389:389
127.0.0.1:636:636
ldap-test—no—
pgadmin127.0.0.1:5050:80tools—no—
postgres127.0.0.1:5433:5432default—yesPostgreSQL 16
prompt-compressor127.0.0.1:8015:8015default3Gyes—
reconfigure-agent—default—no—
redactor127.0.0.1:8013:8013default2GyesImage/doc redaction
redis127.0.0.1:6380:6379default—yesRedis Cache
redis-commander127.0.0.1:8081:8081tools—no—
report-renderer127.0.0.1:8014:8014default512MyesReport rendering (PDF/HTML)
risk-analyst127.0.0.1:${RISK_ANALYST_HOST_PORT:-8019}:8019llm-analyst3GyesLocal-LLM risk analyst agent loop (opt-in: --profile llm-analyst)

Declared memory in the default profile

19 services start without a profile; their declared limits total 37.6 GB. 6 of them declare no limit at all (caddy, frontend, nestjs-core, postgres, reconfigure-agent, redis), so the total is a floor, not a ceiling.

Startup dependencies

Servicedepends_on
attack-guardredis
caddyfrontend, nestjs-core, cid-proxy
cid-inline-proxynestjs-core
cid-proxynestjs-core, redis
deepteamnestjs-core
document-parserocr-service
frontendnestjs-core
hap-guard-v2redis
mcp-serverpostgres
ml-detectorredis
nestjs-corepostgres, redis, ml-detector, hap-guard-v2, attack-guard, language-detector, hallucination-guard, ocr-service, redactor, document-parser, report-renderer
pgadminpostgres
redis-commanderredis
risk-analystmcp-server

On this page