Infrastructure Setup
Clean Stack provides pre-configured Docker Compose setups for all platform components in the PLATFORM_SETUP
directory.
Observability Stack
Located in PLATFORM_SETUP/observability_stack
:
Components
- OpenTelemetry Collector
- Prometheus for metrics
- Loki for logs
- Tempo for traces
- Grafana for visualization
Configuration Example
version: '3.8'
services:
otel-collector:
image: otel/opentelemetry-collector-contrib
ports:
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
volumes:
- ./config/otel-collector-config.yml:/etc/otelcol/config.yaml
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- ./config/grafana.ini:/etc/grafana/grafana.ini
- ./config/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
Cache Stack
Located in PLATFORM_SETUP/cache_stack
:
Components
- Redis for caching and rate limiting
- Redis Commander for management UI
Configuration Example
version: '3.8'
services:
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
redis-commander:
image: rediscommander/redis-commander
ports:
- "8081:8081"
environment:
- REDIS_HOSTS=local:redis:6379
MongoDB Stack
Located in PLATFORM_SETUP/mongo_stack
:
Components
- MongoDB database
- Mongo Express UI
Configuration Example
version: '3.8'
services:
mongodb:
image: mongo
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
mongo-express:
image: mongo-express
ports:
- "8082:8081"
environment:
- ME_CONFIG_MONGODB_SERVER=mongodb
- ME_CONFIG_MONGODB_AUTH_USERNAME=admin
- ME_CONFIG_MONGODB_AUTH_PASSWORD=password
Development Commands
Start all platform services:
bun run platform:all
Individual stack controls:
# Start/stop observability stack
./tools/shell_scripts/observability-stack.sh up
./tools/shell_scripts/observability-stack.sh down
# Start/stop cache stack
./tools/shell_scripts/cache-stack.sh up
./tools/shell_scripts/cache-stack.sh down
# Start/stop MongoDB stack
./tools/shell_scripts/mongo-stack.sh up
./tools/shell_scripts/mongo-stack.sh down
Infrastructure Best Practices
-
Data Persistence
- Use named volumes for data storage
- Configure appropriate backup strategies
- Monitor disk usage
-
Security
- Change default passwords
- Use environment variables for secrets
- Configure proper network isolation
-
Resource Management
- Set appropriate memory limits
- Monitor container health
- Scale services as needed
-
Development Workflow
- Use consistent port mappings
- Maintain documentation
- Version control configurations