version: "3.8" services: redis: image: redis:7-alpine volumes: - redis_data:/data networks: - celery deploy: replicas: 1 restart_policy: condition: on-failure postgres: image: postgres:16-alpine environment: - POSTGRES_USER=artdag - POSTGRES_PASSWORD=artdag - POSTGRES_DB=artdag volumes: - postgres_data:/var/lib/postgresql/data networks: - celery deploy: replicas: 1 restart_policy: condition: on-failure ipfs: image: ipfs/kubo:latest volumes: - ipfs_data:/data/ipfs - l1_cache:/data/cache:ro # Read-only access to cache for adding files networks: - celery - externalnet # For gateway access deploy: replicas: 1 restart_policy: condition: on-failure l1-server: image: git.rose-ash.com/art-dag/l1-server:latest env_file: - .env environment: - REDIS_URL=redis://redis:6379/5 - DATABASE_URL=postgresql://artdag:artdag@postgres:5432/artdag - IPFS_API=/dns/ipfs/tcp/5001 - CACHE_DIR=/data/cache # L2_SERVER, L2_DOMAIN, IPFS_GATEWAY_URL from .env file volumes: - l1_cache:/data/cache depends_on: - redis - postgres - ipfs networks: - celery - externalnet deploy: replicas: 1 restart_policy: condition: on-failure l1-worker: image: git.rose-ash.com/art-dag/l1-server:latest command: celery -A celery_app worker --loglevel=info environment: - REDIS_URL=redis://redis:6379/5 - DATABASE_URL=postgresql://artdag:artdag@postgres:5432/artdag - IPFS_API=/dns/ipfs/tcp/5001 - CACHE_DIR=/data/cache - C_FORCE_ROOT=true volumes: - l1_cache:/data/cache depends_on: - redis - postgres - ipfs networks: - celery deploy: replicas: 2 restart_policy: condition: on-failure volumes: redis_data: postgres_data: ipfs_data: l1_cache: networks: celery: driver: overlay externalnet: external: true