A comprehensive development infrastructure setup using Docker Compose, providing databases, message queues, mail testing, and monitoring solutions.
This infrastructure setup includes multiple services organized into different categories:
- Databases (PostgreSQL, MySQL, Redis, MongoDB, InfluxDB)
- Message Queues (RedPanda, RabbitMQ)
- Mail Testing (MailHog)
- Monitoring (Grafana, Mimir, Loki, Tempo, OpenTelemetry)
| Service | Port | Purpose |
|---|---|---|
| PostgreSQL | 5432 | PostgreSQL database connection |
| MySQL | 3306 | MySQL database connection |
| Redis | 6379 | Redis cache connection |
| MongoDB | 27017 | MongoDB database connection |
| InfluxDB | 8086 | InfluxDB time series database connection |
| Service | Port | Purpose |
|---|---|---|
| RedPanda | 9092 | Kafka-compatible messaging |
| RabbitMQ | 5672 | AMQP messaging |
| RabbitMQ Management | 15672 | RabbitMQ web management interface |
| Service | Port | Purpose |
|---|---|---|
| MailHog | 1025 | SMTP server |
| MailHog Web | 8025 | Web interface for mail testing |
| Service | Port | Purpose |
|---|---|---|
| OpenTelemetry Collector | 4317 | OTLP gRPC receiver (main receiver for all telemetry) |
| OpenTelemetry Collector | 4318 | OTLP HTTP receiver (main receiver for all telemetry) |
| Grafana | 3000 | Monitoring dashboard UI |
The infrastructure is organized into separate networks for isolation:
database-network: For database servicesqueue-network: For message queue servicesmail-network: For mail testing servicesmonitoring-network: For monitoring services
- Ensure you have Docker and Docker Compose installed
- Clone this repository
- Start all services:
docker compose up -d
- Start specific service category:
# For databases only docker compose -f docker-compose.yml -f docker-compose.databases.yml up -d # For message queues only docker compose -f docker-compose.yml -f docker-compose.queues.yml up -d # For mail services only docker compose -f docker-compose.yml -f docker-compose.mail.yml up -d # For monitoring only docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up -d
All services are configured with appropriate health checks to ensure they are running correctly. You can check the status of all services using:
docker compose psEach service has been configured with appropriate memory limits to ensure stable operation:
- Database services: 512MB - 1GB
- Message queues: 512MB - 1GB
- Mail services: 256MB
- Monitoring services: 256MB - 1GB