Local Docker service catalog

Comparator Sandbox

Direct application links, API documentation, health checks, telemetry tools, and local data consoles for the complete Docker Compose environment.

Runtime Docker ComposeNetwork comparator-networkDashboard localhost:8595Credentials local development defaults

Applications and APIs

Direct host ports exposed for development
Client WebWeb

Public Persian/RTL storefront for live catalog browsing, global filtering, product comparison, and KPI details supplied by Client API.

localhost:8096
Client APIAPI

Backend-for-frontend for live catalog search, KPI groups, value distributions, and snapshot-consistent product rankings - proxies the catalog rather than storing one. Also owns feedback, site-config flags, and product-visibility overrides in its own database, including admin-only write endpoints reachable only through api-gateway (see Comparator Admin's Client Web screens).

localhost:8097
ProductMatch AdminWeb

Manage ProductMatch categories and attributes, onboard products, test explainable recommendations, and inspect engine readiness.

localhost:8104
ProductMatch AIAI

Serves CPU-only multilingual SentenceTransformers embeddings to ProductMatch while the Java engine retains hard constraints and fallback ranking.

localhost:8105
ProductMatch Catalog SyncJob

Periodically reconciles processor-rest's categories, KPIs, products, and accepted canonical values into ProductMatch's catalog via its bulk admin API.

localhost:8106
Comparator AdminWeb

Admin panel for source operations, adapter replay, catalog, data quality, normalization, and scoring - plus client/web feedback moderation, site-config flags, product visibility, and admin user management. Requires an admin login (see Identity REST).

localhost:8095
API GatewayGateway

Single browser-facing routing and CORS boundary for every backend API family.

localhost:8094
Identity RESTAPI

Admin-panel audit log. Reachable only through api-gateway, never directly - see ui-admin's Audit Log screen. Accounts, roles, and login are Keycloak's job now.

localhost:8099
Scraper RESTAPI

Controls source workers and exposes capabilities, reports, monitoring, and stored source data.

localhost:8087
Versus Phone AdapterAdapter

Replays Versus phone snapshots, extracts source evidence, and publishes processor entities.

localhost:8083
Simulated Feed AdapterAdapter

Converts stored feed events into processor data and immutable price and volume observations.

localhost:8084
DeviceSpecifications AdapterAdapter

Replays DeviceSpecifications device snapshots and publishes processor entities and observations.

localhost:8086
GSMArena AdapterAdapter

Replays GSMArena phone specification snapshots and publishes processor entities and observations.

localhost:8088
Samsung AdapterAdapter

Replays Samsung phone product-page snapshots and publishes processor entities and observations.

localhost:8101
mobo.news AdapterAdapter

Replays mobo.news phone product-page snapshots and publishes processor entities and observations.

localhost:8102
Processor RESTAPI

Owns products, KPIs, evidence observations, conflict resolution, and active canonical values.

localhost:8089
Normalizer RESTAPI

Publishes versioned normalization snapshots from active, review-safe canonical KPI values using distributed job leases.

localhost:8090
Score CalculatorAPI

Publishes weighted, coverage-aware product scores and deterministic category rankings pinned to one normalization snapshot.

localhost:8091
Proxy ManagerAPI

Fetches public proxy subscriptions, checks real relay accessibility with xray-core, and publishes latency-ranked results.

localhost:8098
Proxy EgressInternal egress

Keeps a load-balanced pool of Xray tunnels alive, leases healthy routes to scrapers, and quarantines unstable proxies. Browsable in ui-admin under Proxy Manager → Tunnels.

localhost:8100 control / proxy-egress:11000-11011 internal

No application services match this filter.

Observability

Metrics, logs, traces, and browser automation
PrometheusMetrics

Scrapes every application actuator endpoint and provides PromQL queries.

localhost:9195
JaegerTraces

Receives OpenTelemetry spans over OTLP and visualizes distributed request traces.

localhost:16686 / OTLP localhost:4318
Loki + AlloyLogs

Alloy discovers container logs and forwards structured events to Loki for Grafana queries.

localhost:3100
Selenium GridBrowser

Optional Firefox automation grid used by browser-based scraper workers.

localhost:4444 (selenium profile)

No observability services match this filter.

Data services and consoles

Local development credentials are shown on protected services
Admin PostgreSQLDatabase

Relational storage for processor, normalizer, score-calculator, and other platform services. pgAdmin is available with the tools profile.

localhost:5432
DB userpostgresDB passwordpostgresDatabasecomparator
pgAdmin useradmin@comparator.devPasswordadmin
Client PostgreSQLDatabase

Dedicated database and persistent volume for client-api feedback; isolated from admin/platform storage.

localhost:5433 / client-postgres:5432
UserclientPasswordclientDatabaseclientdb
MongoDBDatabase

Stores scraper snapshots, adapter replay history, and source metadata. Mongo Express is available with the tools profile.

localhost:27018
DB / UI useradminPasswordadmin
MinIOObjects

S3-compatible object storage for immutable raw scraper artifacts and evidence extraction.

API localhost:9010 / console localhost:9011
UserminioadminPasswordminioadmin
RedisCache

Backs api-gateway's per-IP RequestRateLimiter on the client-api route. Redis Insight (optional inspection UI) needs the redis profile; Redis itself is always up.

localhost:6379
KeycloakIdentity

OIDC identity provider for Comparator Admin and ProductMatch Admin logins. Imports the `comparator` realm (two SPA clients, `admin-viewer`/`admin-editor`/`admin-admin`/`recommendation-user` roles, and a seeded `admin` user) on first boot.

localhost:8107
Console useradminPasswordadmin12345
Panel useradminPasswordadmin12345
OllamaAI model

Local embedding model server, no external API key. Pulls bge-m3 (1024 dims) on first start; an optional embedding provider for recommendation-rest's semantic ranking (RECOMMENDATION_EMBEDDING_PROVIDER=ollama - the python provider is active by default).

localhost:11434

No data services match this filter.