services: redis: image: redis:7-alpine ports: - "6379:6379" command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"] volumes: - redis-data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 backend: build: context: . dockerfile: Dockerfile.backend env_file: - .env environment: APP_DB: data/workflows.db HOST: 0.0.0.0 PORT: 8000 REDIS_URL: redis://redis:6379/0 ports: - "8000:8000" volumes: - app-data:/app/data depends_on: redis: condition: service_healthy restart: unless-stopped frontend: build: context: ./frontend dockerfile: Dockerfile environment: VITE_BACKEND_URL: http://localhost:8000 ports: - "${FRONTEND_PORT:-3000}:3000" depends_on: - backend restart: unless-stopped volumes: redis-data: app-data: