platform-deployments/docker/features/analytics/docker-compose.yml
2026-01-31 17:14:54 -08:00

69 lines
2 KiB
YAML

version: '3.8'
# =============================================================================
# ANALYTICS FEATURE INFRASTRUCTURE
# =============================================================================
#
# Analytics service infrastructure:
# - PostgreSQL + TimescaleDB: Time-series metrics, dashboards
# - Redis: Job queues (BullMQ), caching
#
# =============================================================================
services:
analytics-postgres:
image: timescale/timescaledb:2.16.1-pg16
container_name: lilith-analytics-postgres
restart: unless-stopped
ports:
- '${ANALYTICS_POSTGRES_PORT:-25433}:5432'
environment:
POSTGRES_USER: ${ANALYTICS_POSTGRES_USER:-lilith}
POSTGRES_PASSWORD: ${ANALYTICS_POSTGRES_PASSWORD:-analytics_dev_password}
POSTGRES_DB: ${ANALYTICS_POSTGRES_DB:-lilith_analytics}
volumes:
- analytics-postgres-data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/01-init.sql:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${ANALYTICS_POSTGRES_USER:-lilith}']
interval: 10s
timeout: 5s
retries: 5
networks:
- analytics-network
analytics-redis:
image: redis:7.4-alpine
container_name: lilith-analytics-redis
restart: unless-stopped
ports:
- '${ANALYTICS_REDIS_PORT:-26381}:6379'
environment:
REDIS_PASSWORD: ${ANALYTICS_REDIS_PASSWORD:-analytics_dev_password}
volumes:
- analytics-redis-data:/data
command:
- redis-server
- --requirepass
- "${ANALYTICS_REDIS_PASSWORD:-analytics_dev_password}"
- --appendonly
- "yes"
- --maxmemory
- "${ANALYTICS_REDIS_MAX_MEMORY:-512MB}"
- --maxmemory-policy
- "noeviction"
healthcheck:
test: ['CMD', 'redis-cli', '-a', '${ANALYTICS_REDIS_PASSWORD:-analytics_dev_password}', 'ping']
interval: 10s
timeout: 3s
retries: 5
networks:
- analytics-network
volumes:
analytics-postgres-data:
analytics-redis-data:
networks:
analytics-network:
driver: bridge