Port Mappings for Flexible GraphRAG Services¶
This document provides a comprehensive overview of all port assignments to avoid conflicts between services.
Port Conflict Resolution¶
The following port conflicts were identified and resolved for new vector databases:
| Original Port | Conflicted With | New Port | Service | Reason |
|---|---|---|---|---|
| 8000 | Backend API | 8001 | Chroma | Moved to 800x range for consistency |
| 3000 | Vue Frontend | 3003 | Milvus Attu | Avoid conflict with Vue UI |
| 8080 | Alfresco Proxy | 8081 | Weaviate | Avoid conflict with Alfresco Traefik proxy |
| 5432 | Alfresco PostgreSQL | 5433 | PostgreSQL+pgvector | Avoid conflict with Alfresco database |
| 7001 | - | 7001 | NebulaGraph Studio | Default studio dashboard port |
Complete Port Mapping¶
Core Application Services¶
| Service | Port | Purpose | URL |
|---|---|---|---|
| Backend API | 8000 | FastAPI backend | http://localhost:8000 |
| Docs Dev Server | 8008 | Zensical local preview | http://localhost:8008 |
| vLLM | 8002 | OpenAI-compatible inference server | http://localhost:8002/v1 |
| LiteLLM Proxy | 4000 | OpenAI-compatible proxy (100+ providers) | http://localhost:4000 |
| Vue Frontend | 3000 | Vue.js UI | http://localhost:3000 |
| React Frontend | 4200 | React UI | http://localhost:4200 |
| Angular Frontend | 5173 | Angular UI | http://localhost:5173 |
| Nginx Proxy | 8070 | Reverse proxy for all UIs | http://localhost:8070 |
Observability Services¶
| Service | Port(s) | Purpose | Dashboard URL |
|---|---|---|---|
| OTLP Collector | 4317, 4318, 8888, 8889 | Receives traces/metrics (gRPC, HTTP, Prometheus metrics) | - |
| Jaeger | 16686, 14250 | Distributed tracing UI | http://localhost:16686 |
| Prometheus | 9090 | Metrics collection | http://localhost:9090 |
| Grafana | 3009 | Dashboards and visualization | http://localhost:3009 |
Graph Databases¶
| Service | Port(s) | Purpose | Dashboard URL |
|---|---|---|---|
| Neo4j | 7474, 7687 | Graph database | http://localhost:7474 |
| Ladybug Explorer | 7003 | Ladybug web UI (optional compose include) | http://localhost:7003 |
| FalkorDB | 6379, 3001 | Graph database + browser | http://localhost:3001 |
| ArcadeDB | 2480, 2424 | Graph database + studio | http://localhost:2480 |
| MemGraph | 7688, 3002 | Graph database + lab | http://localhost:3002 |
| NebulaGraph | 9669, 7001 | Distributed graph database + studio | http://localhost:7001 |
| Neptune Graph Explorer | 3007 | Neptune dashboard | http://localhost:3007 |
Vector Databases¶
| Service | Port(s) | Purpose | Dashboard URL |
|---|---|---|---|
| Qdrant | 6333, 6334 | Vector database | http://localhost:6333/dashboard |
| Chroma | 8001 | Vector database | http://localhost:8001 |
| Milvus | 19530, 3003, 9000, 9001 | Vector database + Attu + MinIO | http://localhost:3003 |
| Weaviate | 8081 | Vector search engine | http://localhost:8081/console |
| PostgreSQL+pgvector | 5433, 5050 | Vector database + pgAdmin | http://localhost:5050 |
Search Databases¶
| Service | Port(s) | Purpose | Dashboard URL |
|---|---|---|---|
| Elasticsearch | 9200, 9300 | Search engine | - |
| Kibana | 5601 | Elasticsearch dashboard | http://localhost:5601 |
| OpenSearch | 9201, 9301 | Search engine | - |
| OpenSearch Dashboards | 5602 | OpenSearch dashboard | http://localhost:5602 |
Content Management (Alfresco Community)¶
| Service | Port(s) | Purpose | Dashboard URL |
|---|---|---|---|
| Alfresco Proxy (Traefik) | 8080, 8888 | Main proxy + dashboard | http://localhost:8080 |
| Transform Core AIO | 8090 | Document transformation | http://localhost:8090/ready |
| Alfresco PostgreSQL | 5432 | Alfresco database | - |
| Alfresco Solr | 8083 | Search index (port 8983→8083) | http://localhost:8083 |
| Alfresco ActiveMQ Web Console | 8161 | Message queue web console | http://localhost:8161 |
| Alfresco ActiveMQ STOMP | 8613 (or 61613) | Real-time event monitoring | - |
| Alfresco ActiveMQ OpenWire | 8616 (or 61616) | Internal messaging protocol | - |
ActiveMQ Port Notes:
- Standard ports: 61613 (STOMP), 61616 (OpenWire) - Use these on Linux/macOS or non-Windows systems
- Windows alternative ports: 8613 (STOMP), 8616 (OpenWire) - Use these on Windows if you encounter port binding errors
- Why the alternatives?: Windows reserves ports 49152-65535 as "dynamic/ephemeral ports" for outgoing connections. After Windows updates or Docker Desktop upgrades, these ports can conflict with Windows' dynamic port allocation, causing "access forbidden" errors
- Existing Alfresco installations: If you have an existing external Alfresco with standard ports, keep using 61613/61616 and configure ALFRESCO_STOMP_PORT=61613 in your .env file
Note: Alfresco uses Traefik as a reverse proxy. All Alfresco services (Repository, Share, Content App, Control Center) are accessible through port 8080:
- Repository: http://localhost:8080/alfresco
- Share: http://localhost:8080/share
- Content App: http://localhost:8080/content-app
- Control Center: http://localhost:8080/control-center or http://localhost:8080/admin
- Traefik Dashboard: http://localhost:8888
Cloud/Managed Services¶
| Service | Port(s) | Type | Dashboard URL |
|---|---|---|---|
| Pinecone Info | 3004 | Info dashboard | http://localhost:3004 |
| LanceDB Viewer | 3005 | Web dashboard | http://localhost:3005 |
| LanceDB Info | 3006 | Backup info | http://localhost:3006 |
Port Range Allocation¶
Reserved Ranges¶
- 3000-3099: Frontend UIs and database dashboards
- 5000-5999: Databases and admin interfaces
- 6000-6999: Specialized databases (Qdrant, FalkorDB)
- 7000-7999: Graph databases and APIs
- 8000-8099: Core services and vector databases
- 9000-9999: Search engines and storage
Available Ports¶
The following ports are currently available for future services: - 3009-3099: Additional dashboards - 5051-5431: Database services - 6000-6332, 6335-6378: Specialized services - 7003-7473, 7475-7686, 7689-7999: Graph services (7003 = Ladybug Explorer) - 8003-8069, 8071-8079, 8082, 8084-8089, 8091-8159, 8162-8612, 8614-8615, 8617-8999: Application services (8008 = Docs dev server) - 9002-9199, 9202-9300, 9302-9999: Search and storage services
Note: Ports 8613 and 8616 are now reserved for Alfresco ActiveMQ on Windows systems.
Configuration Updates¶
Environment Variables¶
Update your .env file with the new port mappings:
# Chroma
CHROMA_URL=http://localhost:8001
# Milvus
MILVUS_HOST=localhost
MILVUS_PORT=19530
ATTU_URL=http://localhost:3003
# Weaviate
WEAVIATE_URL=http://localhost:8081
# PostgreSQL+pgvector
POSTGRES_HOST=localhost
POSTGRES_PORT=5433
PGADMIN_URL=http://localhost:5050
Docker Compose¶
When including vector database services, use the updated configurations:
include:
- docker/includes/chroma.yaml # Port 8001
- docker/includes/milvus.yaml # Ports 19530, 3003, 9000, 9001
- docker/includes/weaviate.yaml # Port 8081
- docker/includes/postgres-pgvector.yaml # Ports 5433, 5050
Troubleshooting Port Conflicts¶
Check Port Usage¶
# Windows
netstat -an | findstr :8001
netstat -an | findstr :3003
netstat -an | findstr :8081
netstat -an | findstr :5433
netstat -an | findstr :8613 # ActiveMQ STOMP
netstat -an | findstr :8616 # ActiveMQ OpenWire
# Linux/macOS
lsof -i :8001
lsof -i :3003
lsof -i :8081
lsof -i :5433
lsof -i :61613 # ActiveMQ STOMP (standard port)
lsof -i :61616 # ActiveMQ OpenWire (standard port)
Common Conflicts¶
- Port 8000: If backend conflicts with Chroma, change backend to 8002
- Port 3000: If Vue conflicts with Milvus Attu, change Vue to 3004
- Port 8080: If Alfresco Traefik proxy conflicts with Weaviate, both are now separated
- Port 5432: If Alfresco PostgreSQL conflicts with pgvector PostgreSQL, both use different ports
- Port 7001: NebulaGraph Studio uses this port
- Port 8090: Transform Core AIO uses this port for document transformation services
- Service name conflicts: Both Alfresco and pgvector define
postgresservice - pgvector renamed topostgres-pgvector - Windows dynamic port range (49152-65535): Ports 61613 and 61616 may conflict on Windows - see below
Windows Dynamic Port Conflicts¶
What are dynamic ports? Windows reserves a range of ports (49152-65535) called "dynamic" or "ephemeral" ports for temporary outgoing network connections. When your computer makes an outgoing connection (like visiting a website), Windows randomly picks a port from this range for that connection.
Why does this cause problems?
- Docker tries to bind to specific ports (like 61613, 61616)
- Windows may have already reserved these ports for dynamic allocation
- After Windows updates or Docker Desktop upgrades (especially 4.60+), the conflict enforcement became stricter
- You'll see errors like: bind: An attempt was made to access a socket in a way forbidden by its access permissions
Solutions:
Option 1: Use alternative ports (Recommended for Windows)
# docker/includes/alfresco.yaml
ports:
- "8613:61613" # STOMP - host port 8613 instead of 61613
- "8616:61616" # OpenWire - host port 8616 instead of 61616
.env:
Option 2: Exclude ports from Windows dynamic range (Advanced) Run PowerShell as Administrator:
# Exclude ports 61613-61616 from dynamic allocation
netsh interface ipv4 add excludedportrange protocol=tcp startport=61613 numberofports=4
# Restart Docker Desktop after running this command
Option 3: Check dynamic port range
# View current dynamic port range
netsh interface ipv4 show dynamicportrange tcp
# View excluded (reserved) ports
netsh interface ipv4 show excludedportrange protocol=tcp
Resolution Strategy¶
- Identify conflict: Use port checking commands above
- Update configuration: Modify the appropriate YAML file
- Update documentation: Update this file and service-specific docs
- Test connectivity: Verify all services start without conflicts
- Update client configurations: Ensure frontends use correct URLs
Best Practices¶
- Document all port changes in this file
- Use consistent port ranges for similar services
- Avoid common ports (80, 443, 3000, 8000, 8080) when possible
- Test port availability before assigning
- Update all references (docs, configs, environment files)
- Consider future expansion when choosing port ranges