Services Overview
Thedocker-compose.yml defines the following services:
Core Services
- krakend_ce - KrakenD Community Edition API Gateway with automatic configuration reload
- fake_api - Simple busybox-based HTTP server serving static files from the
data/directory - web - Express JS Single Page Application that consumes the KrakenD API
Observability Stack
- grafana - Metrics visualization dashboard (Grafana 9.1.2)
- influxdb - Time-series database for storing KrakenD metrics (InfluxDB 1.8.10)
- jaeger - Distributed tracing UI and collector
- elasticsearch - Document store for logs (Elasticsearch 8.4.1)
- kibana - Log visualization and analysis (Kibana 8.4.1)
- logstash - Log processing pipeline (Logstash 8.4.1)
Authentication & Messaging
- keycloak - Identity Provider (IdP) for JWT token generation and validation
- jwt_revoke - JWT token revoker using KrakenD bloomfilter client
- rabbitmq - Message broker for async agent demonstrations
Port Mappings
| Service | Host Port | Container Port | Description |
|---|---|---|---|
| krakend_ce | 8080 | 8080 | KrakenD API Gateway main endpoint |
| krakend_ce | 8090 | 8090 | KrakenD admin/debug port |
| krakend_ce | 1234 | 1234 | Additional KrakenD port |
| fake_api | 8000 | 80 | Fake backend API |
| web | 3000 | 3000 | Demo web application |
| grafana | 4000 | 3000 | Grafana dashboard |
| influxdb | 8086 | 8086 | InfluxDB HTTP API |
| jaeger | 16686 | 16686 | Jaeger UI |
| jaeger | 14268 | 14268 | Jaeger collector |
| elasticsearch | 19200 | 9200 | Elasticsearch HTTP API |
| elasticsearch | 9300 | 9300 | Elasticsearch transport |
| kibana | 5601 | 5601 | Kibana UI |
| logstash | 12201 | 12201/udp | Logstash GELF UDP input |
| logstash | 5044 | 5044 | Logstash Beats input |
| rabbitmq | 15672 | 15672 | RabbitMQ Management UI |
| jwt_revoke | 9000 | 8080 | JWT revoker service |
| keycloak | 8085 | 8080 | Keycloak admin console |
Volume Mounts
KrakenD Configuration
krakend.json changes.
Grafana Provisioning
Logstash Pipeline
Fake API Data
Keycloak Realms
Service Dependencies
KrakenD Dependencies
JWT Revoker Dependencies
Environment Variables
InfluxDB
Elasticsearch
Logstash
Keycloak
Special Configuration
KrakenD Auto-reload
The KrakenD service uses the:watch image variant in development:
krakend.json are automatically detected and applied without restarting the container.