version: '3.8' services: qdrant: image: qdrant/qdrant:latest container_name: espiritismo-qdrant ports: - "6333:6333" volumes: - qdrant_data:/qdrant/storage restart: unless-stopped redis: image: redis:7-alpine container_name: espiritismo-redis ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped web: build: ./backend container_name: espiritismo-web ports: - "8000:8000" volumes: - ./PDF:/app/uploads:ro - ./backend/schedules.json:/app/schedules.json environment: - QDRANT_URL=http://qdrant:6333 - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID} depends_on: - qdrant - redis restart: unless-stopped celery: build: ./backend container_name: espiritismo-celery command: celery -A app.tasks.celery_tasks worker --loglevel=info volumes: - ./PDF:/app/uploads:ro - ./backend/schedules.json:/app/schedules.json environment: - QDRANT_URL=http://qdrant:6333 - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID} depends_on: - qdrant - redis restart: unless-stopped celery-beat: build: ./backend command: celery -A app.tasks.celery_tasks beat --loglevel=info volumes: - ./backend/schedules.json:/app/schedules.json environment: - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID} depends_on: - redis restart: unless-stopped volumes: qdrant_data: redis_data: