Deploy and manage Apache Camel YAML routes live with monitoring and AI MCP integration
999
Deploy and manage Apache Camel routes live without writing Java or rebuilding containers.
Camel Dashboard is a modern, lightweight management dashboard and runtime for Apache Camel. It allows you to upload Camel YAML routes, run them on a live cluster, monitor routes across all nodes in real time, and integrate native Model Context Protocol (MCP) to let your AI assistant build and deploy integrations via natural language.
To run Camel Dashboard, you will need a PostgreSQL database.
docker network create cameldash-net
docker run -d \
--name cameldash-db \
--network cameldash-net \
-e POSTGRES_DB=cameldash \
-e POSTGRES_USER=cameldash \
-e POSTGRES_PASSWORD=mysecretpassword \
postgres:16-alpine
docker run -d \
--name camel-dashboard \
--network cameldash-net \
-p 8080:8080 \
-e DATASOURCE_URL=jdbc:postgresql://cameldash-db:5432/cameldash \
-e DATASOURCE_USERNAME=cameldash \
-e DATASOURCE_PASSWORD=mysecretpassword \
-e CAMEL_DASHBOARD_ENCRYPT_KEY=my32charactersecretkey123456789 \
charlietran1407/camel-dashboard:latest
Open http://localhost:8080 in your browser to access the dashboard.
For production or clustered environments with multiple Camel Dashboard nodes coordinating via Redis, use this docker-compose.yaml:
version: '3.8'
services:
# Database
postgres:
image: postgres:16-alpine
container_name: cameldash-db
restart: unless-stopped
environment:
POSTGRES_DB: cameldash
POSTGRES_USER: cameldash
POSTGRES_PASSWORD: securepassword123
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
# Redis for Cluster Coordination
redis:
image: redis:7-alpine
container_name: cameldash-redis
restart: unless-stopped
command: redis-server --notify-keyspace-events Ex
ports:
- "6379:6379"
# Camel Dashboard Node 1
camel-dashboard-1:
image: charlietran1407/camel-dashboard:latest
container_name: cameldash-node-1
restart: unless-stopped
ports:
- "8080:8080"
environment:
INSTANCE_ID: node-1
DATASOURCE_URL: jdbc:postgresql://postgres:5432/cameldash
DATASOURCE_USERNAME: cameldash
DATASOURCE_PASSWORD: securepassword123
CAMEL_DASHBOARD_ENCRYPT_KEY: local32charsecretkey1234567890123
CAMEL_DASHBOARD_CLUSTER_ENABLED: "true"
REDIS_HOST: redis
REDIS_PORT: 6379
volumes:
- routes-storage-1:/app/camel-routes-storage
- libs-storage-1:/app/libs
depends_on:
- postgres
- redis
# Camel Dashboard Node 2
camel-dashboard-2:
image: charlietran1407/camel-dashboard:latest
container_name: cameldash-node-2
restart: unless-stopped
ports:
- "8081:8080"
environment:
INSTANCE_ID: node-2
DATASOURCE_URL: jdbc:postgresql://postgres:5432/cameldash
DATASOURCE_USERNAME: cameldash
DATASOURCE_PASSWORD: securepassword123
CAMEL_DASHBOARD_ENCRYPT_KEY: local32charsecretkey1234567890123
CAMEL_DASHBOARD_CLUSTER_ENABLED: "true"
REDIS_HOST: redis
REDIS_PORT: 6379
volumes:
- routes-storage-2:/app/camel-routes-storage
- libs-storage-2:/app/libs
depends_on:
- postgres
- redis
volumes:
pgdata:
routes-storage-1:
routes-storage-2:
libs-storage-1:
libs-storage-2:
| Variable | Required | Default | Description |
|---|---|---|---|
DATASOURCE_URL | Yes | - | PostgreSQL JDBC URL (e.g. jdbc:postgresql://db:5432/cameldash) |
DATASOURCE_USERNAME | Yes | - | Database username |
DATASOURCE_PASSWORD | Yes | - | Database password |
CAMEL_DASHBOARD_ENCRYPT_KEY | Yes | - | 32-character AES secret key for encrypting stored route secrets |
INSTANCE_ID | No | random uuid | Unique identifier for the dashboard instance |
SERVER_PORT | No | 8080 | Port on which the Spring Boot server runs |
CAMEL_CONTEXT_PATH | No | /cameldash | Base path for Camel endpoints (e.g. endpoints exposed by your deployed routes) |
CAMEL_DASHBOARD_STORAGE_DIR | No | ./camel-routes-storage | Path inside the container where YAML route configurations are stored |
CAMEL_DASHBOARD_LOADER_PATH | No | ./libs | Directory path containing external libraries (e.g., custom JDBC drivers or extra Camel component JARs) |
CAMEL_DASHBOARD_CLUSTER_ENABLED | No | false | Enable Redis cluster synchronization and coordination |
REDIS_HOST | No | - | Redis hostname (required if CAMEL_DASHBOARD_CLUSTER_ENABLED is true) |
REDIS_PORT | No | 6379 | Redis port |
REDIS_PASSWORD | No | - | Redis password |
CAMEL_DASHBOARD_MCP_API_KEY | No | - | API Key to protect the /mcp endpoints |
OTEL_LOGS_EXPORTER | No | none | OTel logs exporter (e.g. otlp or none) |
OTEL_EXPORTER_OTLP_ENDPOINT | No | - | OpenTelemetry Collector endpoint (e.g. http://otel-collector:4317) |
/app/camel-routes-storage: Mount this volume to persist your deployed route files across container restarts./app/libs: Mount this to load custom Java libraries or JDBC drivers (e.g. Oracle, SQL Server, MySQL, etc.) or extra Apache Camel component JARs. They will be loaded into the classpath of the Camel engine dynamically.Camel Dashboard exposes a native Model Context Protocol (MCP) server over SSE at /mcp. This allows any MCP-compatible AI Assistant to inspect routes, validate YAML syntax, and deploy integrations live on your behalf.
claude_desktop_config.json){
"mcpServers": {
"camel-dashboard": {
"type": "sse",
"url": "http://localhost:8080/mcp"
}
}
}
mcp_config.json){
"mcpServers": {
"camel-dashboard": {
"serverUrl": "http://localhost:8080/mcp",
"headers": {
"X-MCP-API-KEY": "your-mcp-api-key"
}
}
}
}
(Ensure CAMEL_DASHBOARD_MCP_API_KEY is set in the container environment if using an API key.)
Content type
Image
Digest
sha256:245ec218b…
Size
273.8 MB
Last updated
4 months ago
docker pull charlietran1407/camel-dashboard