platform-deployments/docker/features/platform-admin/docker-compose.yml
Quinn Ftw 960ffdf45a chore(platform-admin): 🔧 Update Docker container configuration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-02-27 15:19:13 -08:00

209 lines
6.4 KiB
YAML

# =============================================================================
# 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