services: backend: build: context: ./backend dockerfile: Dockerfile image: pastor-online-backend:latest container_name: pastor-online-backend restart: unless-stopped environment: PDF_DIR: /data/pdfs VECTOR_DB_DIR: /data/vector_db LLM_PROVIDER: ${LLM_PROVIDER:-ollama} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://ollama:11434} OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen2.5:1.5b} OPENAI_BASE_URL: ${OPENAI_BASE_URL:-https://api.openai.com/v1} OPENAI_MODEL: ${OPENAI_MODEL:-gpt-4o-mini} OPENAI_API_KEY: ${OPENAI_API_KEY:-} GROQ_BASE_URL: ${GROQ_BASE_URL:-https://api.groq.com/openai/v1} GROQ_MODEL: ${GROQ_MODEL:-llama-3.3-70b-versatile} GROQ_API_KEY: ${GROQ_API_KEY:-} ANTHROPIC_BASE_URL: ${ANTHROPIC_BASE_URL:-https://api.anthropic.com} ANTHROPIC_MODEL: ${ANTHROPIC_MODEL:-claude-sonnet-4-5} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} EMBEDDING_MODEL: ${EMBEDDING_MODEL:-paraphrase-multilingual-MiniLM-L12-v2} TOP_K: ${TOP_K:-6} MIN_SIMILARITY: ${MIN_SIMILARITY:-0.35} OCR_DPI: ${OCR_DPI:-200} OCR_LANGUAGE: ${OCR_LANGUAGE:-por+eng} OCR_TIMEOUT: ${OCR_TIMEOUT:-120} OCR_WORKERS: ${OCR_WORKERS:-4} CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:8080,http://127.0.0.1:8080} REINDEX_TOKEN: ${REINDEX_TOKEN:-} AUTO_INDEX: ${AUTO_INDEX:-true} HF_HOME: /data/models volumes: - ./PDF:/data/pdfs:ro - vector_db:/data/vector_db networks: - pastor healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8000/api/health"] interval: 30s timeout: 5s retries: 3 start_period: 30s frontend: build: context: ./frontend dockerfile: Dockerfile image: pastor-online-frontend:latest container_name: pastor-online-frontend restart: unless-stopped depends_on: backend: condition: service_started ports: - "${FRONTEND_PORT:-8080}:80" networks: - pastor ollama: image: ollama/ollama:latest container_name: pastor-online-ollama restart: unless-stopped profiles: ["local"] volumes: - ollama:/root/.ollama networks: - pastor ollama-pull: image: ollama/ollama:latest container_name: pastor-online-ollama-pull profiles: ["local"] depends_on: - ollama environment: OLLAMA_HOST: http://ollama:11434 OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen2.5:1.5b} entrypoint: ["/bin/sh", "-c"] command: - | until ollama list >/dev/null 2>&1; do echo "aguardando o Ollama..." sleep 3 done ollama pull "$${OLLAMA_MODEL}" networks: - pastor volumes: vector_db: ollama: networks: pastor: driver: bridge