services: ollama: image: ollama/ollama:latest environment: OLLAMA_HOST: 0.0.0.0:11434 OLLAMA_KEEP_ALIVE: 24h OLLAMA_NUM_PARALLEL: "1" OLLAMA_NUM_THREAD: "8" volumes: - ./data/ollama:/root/.ollama ports: - "11434:11434" healthcheck: test: ["CMD", "ollama", "list"] interval: 10s timeout: 5s retries: 30 restart: unless-stopped ollama-pull: image: ollama/ollama:latest depends_on: ollama: condition: service_healthy environment: OLLAMA_HOST: ollama:11434 entrypoint: ["/bin/sh", "-c"] command: ["ollama list | grep -q qwen2.5:7b-instruct-q4_K_M || ollama pull qwen2.5:7b-instruct-q4_K_M"] restart: "no" db: image: postgres:16-alpine environment: POSTGRES_USER: ${POSTGRES_USER:-parser} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-parser} POSTGRES_DB: ${POSTGRES_DB:-parser} ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-parser}"] interval: 5s timeout: 5s retries: 10 app: build: . env_file: .env depends_on: db: condition: service_healthy ollama: condition: service_healthy ports: - "80:8000" volumes: - ./data/session:/data/session - ./data/media:/data/media - ./src:/app/src - ./alembic:/app/alembic volumes: pgdata: