# ============================================================================= # Platform Admin - Full Stack Docker Compose # ============================================================================= # # Starts ALL infrastructure required by platform-admin frontend. # This is a convenience compose file that aggregates all feature databases. # # Usage: # docker-compose up -d # Start all databases # docker-compose ps # Check status # docker-compose logs -f # Follow logs # docker-compose down # Stop all # # Note: APIs are started separately via pnpm dev (not containerized in dev) # # ============================================================================= services: # =========================================================================== # ANALYTICS - TimescaleDB for time-series metrics # =========================================================================== analytics-postgres: image: timescale/timescaledb:2.16.1-pg16 container_name: lilith-analytics-postgres restart: unless-stopped ports: - '25434:5432' environment: POSTGRES_USER: lilith POSTGRES_PASSWORD: analytics_dev_password POSTGRES_DB: lilith_analytics volumes: - analytics-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U lilith'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # EMAIL - PostgreSQL for email logs and templates # =========================================================================== email-postgres: image: postgres:16-alpine container_name: lilith-email-postgres restart: unless-stopped ports: - '25439:5432' environment: POSTGRES_USER: email POSTGRES_PASSWORD: email_dev_password POSTGRES_DB: lilith_email volumes: - email-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U email'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # SEO - PostgreSQL for SEO content and keywords # =========================================================================== seo-postgres: image: postgres:16-alpine container_name: lilith-seo-postgres restart: unless-stopped ports: - '25436:5432' environment: POSTGRES_USER: seo POSTGRES_PASSWORD: seo_dev_password POSTGRES_DB: lilith_seo volumes: - seo-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U seo'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # ATTRIBUTES - PostgreSQL for attribute definitions # =========================================================================== attributes-postgres: image: postgres:16-alpine container_name: lilith-attributes-postgres restart: unless-stopped ports: - '25443:5432' environment: POSTGRES_USER: attributes POSTGRES_PASSWORD: devpassword POSTGRES_DB: attributes volumes: - attributes-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U attributes'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # I18N - PostgreSQL for translations # =========================================================================== i18n-postgres: image: postgres:16-alpine container_name: lilith-i18n-postgres restart: unless-stopped ports: - '25435:5432' environment: POSTGRES_USER: i18n POSTGRES_PASSWORD: i18n_dev_password POSTGRES_DB: lilith_i18n volumes: - i18n-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U i18n'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # MARKETPLACE - PostgreSQL for shop products # =========================================================================== marketplace-postgres: image: postgres:16-alpine container_name: lilith-marketplace-postgres restart: unless-stopped ports: - '25444:5432' environment: POSTGRES_USER: marketplace POSTGRES_PASSWORD: devpassword POSTGRES_DB: lilith_marketplace volumes: - marketplace-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U marketplace'] interval: 10s timeout: 5s retries: 5 networks: - platform-admin-network # =========================================================================== # QUEUE WORKER - Redis for BullMQ job queues # =========================================================================== queue-redis: image: redis:7.4-alpine container_name: lilith-queue-redis restart: unless-stopped ports: - '26388:6379' volumes: - queue-redis-data:/data command: redis-server --appendonly yes --maxmemory 512MB --maxmemory-policy noeviction healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 10s timeout: 3s retries: 5 networks: - platform-admin-network # =========================================================================== # ANALYTICS - Redis for caching # =========================================================================== analytics-redis: image: redis:7.4-alpine container_name: lilith-analytics-redis restart: unless-stopped ports: - '26381:6379' volumes: - analytics-redis-data:/data command: redis-server --appendonly yes healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 10s timeout: 3s retries: 5 networks: - platform-admin-network volumes: analytics-postgres-data: email-postgres-data: seo-postgres-data: attributes-postgres-data: i18n-postgres-data: marketplace-postgres-data: queue-redis-data: analytics-redis-data: networks: platform-admin-network: driver: bridge