version: '3.8' services: api: build: . container_name: tao_api restart: always env_file: - .env depends_on: - redis - db - worker ports: - "8000:8000" volumes: - .:/app - ~/.bittensor/wallets:/root/.bittensor/wallets environment: - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 - REDIS_URL=redis://redis:6379/0 - DATABASE_URL=postgresql+asyncpg://tao_user:tao_pass@db:5432/tao_db - DATURA_API_KEY=${DATURA_API_KEY} - CHUTES_API_KEY=${CHUTES_API_KEY} - BITTENSOR_WALLET_NAME=${BITTENSOR_WALLET_NAME:-default} - BITTENSOR_WALLET_HOTKEY=${BITTENSOR_WALLET_HOTKEY:-default} - BITTENSOR_MNEMONIC=${BITTENSOR_MNEMONIC} - DEFAULT_HOTKEY=${DEFAULT_HOTKEY} - DEFAULT_NETUID=${DEFAULT_NETUID:-18} worker: build: . container_name: tao_celery_worker command: celery -A tasks.worker worker --loglevel=info env_file: - .env depends_on: - redis - db volumes: - .:/app - ~/.bittensor/wallets:/root/.bittensor/wallets environment: - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 - REDIS_URL=redis://redis:6379/0 - DATABASE_URL=postgresql+asyncpg://tao_user:tao_pass@db:5432/tao_db - DATURA_API_KEY=${DATURA_API_KEY} - CHUTES_API_KEY=${CHUTES_API_KEY} - BITTENSOR_WALLET_NAME=${BITTENSOR_WALLET_NAME:-default} - BITTENSOR_WALLET_HOTKEY=${BITTENSOR_WALLET_HOTKEY:-default} - BITTENSOR_MNEMONIC=${BITTENSOR_MNEMONIC} scheduler: build: . container_name: tao_celery_scheduler command: celery -A tasks.scheduler beat --loglevel=info env_file: - .env depends_on: - redis - db - worker volumes: - ~/.bittensor/wallets:/root/.bittensor/wallets environment: - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 - REDIS_URL=redis://redis:6379/0 - DATABASE_URL=postgresql+asyncpg://tao_user:tao_pass@db:5432/tao_db - DATURA_API_KEY=${DATURA_API_KEY} - CHUTES_API_KEY=${CHUTES_API_KEY} - BITTENSOR_WALLET_NAME=${BITTENSOR_WALLET_NAME:-default} - BITTENSOR_WALLET_HOTKEY=${BITTENSOR_WALLET_HOTKEY:-default} - BITTENSOR_MNEMONIC=${BITTENSOR_MNEMONIC} redis: image: redis:7-alpine container_name: tao_redis ports: - "6379:6379" volumes: - redis_data:/data db: image: postgres:15-alpine container_name: postgres restart: always environment: POSTGRES_USER: tao_user POSTGRES_PASSWORD: tao_pass POSTGRES_DB: tao_db ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U tao_user"] interval: 10s timeout: 5s retries: 5 volumes: postgres_data: redis_data: