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

67 lines
1.9 KiB
YAML

version: '3.8'
# =============================================================================
# SEO FEATURE INFRASTRUCTURE
# =============================================================================
#
# SEO service infrastructure:
# - PostgreSQL: Domain configs, page SEO, metadata
# - Redis Stack: Generated metadata cache + RediSearch for vector storage
#
# =============================================================================
services:
seo-postgres:
image: postgres:16-alpine
container_name: lilith-seo-postgres
restart: unless-stopped
ports:
- '${SEO_POSTGRES_PORT:-25436}:5432'
environment:
POSTGRES_USER: ${SEO_POSTGRES_USER:-lilith}
POSTGRES_PASSWORD: ${SEO_POSTGRES_PASSWORD:-seo_dev_password}
POSTGRES_DB: ${SEO_POSTGRES_DB:-lilith_seo}
volumes:
- seo-postgres-data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/01-init.sql:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${SEO_POSTGRES_USER:-lilith}']
interval: 10s
timeout: 5s
retries: 5
networks:
- seo-network
seo-redis:
# Redis Stack includes RediSearch, RedisJSON, RedisTimeSeries, RedisBloom
# Required for RAG vector storage (FT.CREATE, FT.SEARCH commands)
image: redis/redis-stack-server:7.4.0-v3
container_name: lilith-seo-redis
restart: unless-stopped
ports:
- '${SEO_REDIS_PORT:-26383}:6379'
volumes:
- seo-redis-data:/data
command:
- redis-stack-server
- --appendonly
- "yes"
- --maxmemory
- "${SEO_REDIS_MAX_MEMORY:-256MB}"
- --maxmemory-policy
- "noeviction"
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 10s
timeout: 3s
retries: 5
networks:
- seo-network
volumes:
seo-postgres-data:
seo-redis-data:
networks:
seo-network:
driver: bridge