services: db: image: postgres:16-alpine environment: POSTGRES_USER: ${POSTGRES_USER:-gost} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-gost} POSTGRES_DB: ${POSTGRES_DB:-gost} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-gost}"] interval: 5s timeout: 5s retries: 10 restart: unless-stopped api: build: ./backend environment: DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-gost}:${POSTGRES_PASSWORD:-gost}@db:5432/${POSTGRES_DB:-gost} API_TOKEN: ${API_TOKEN:-changeme} DATA_DIR: /data OPENROUTER_BASE_URL: ${OPENROUTER_BASE_URL:-https://openrouter.ai/api/v1} OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-} OPENROUTER_MODEL: ${OPENROUTER_MODEL:-deepseek/deepseek-chat} OPENROUTER_PROXY: ${OPENROUTER_PROXY:-} LLM_MAX_CONTEXT_ROWS: ${LLM_MAX_CONTEXT_ROWS:-80} CORS_ORIGINS: ${CORS_ORIGINS:-*} volumes: - ./data:/data depends_on: db: condition: service_healthy restart: unless-stopped web: build: ./frontend ports: - "${HTTP_PORT:-8080}:80" depends_on: - api restart: unless-stopped volumes: pgdata: