services: bot-n8n: image: n8nio/n8n:latest container_name: bot-n8n restart: unless-stopped ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER} - N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD} - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=bot-postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD} - N8N_BLOCK_ENV_ACCESS_IN_NODE=false - N8N_HOST=0.0.0.0 - WEBHOOK_URL=http://localhost:5678/ - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - SYNOLOGY_CHAT_WEBHOOK_URL=${SYNOLOGY_CHAT_WEBHOOK_URL} - SYNOLOGY_CHAT_TOKEN=${SYNOLOGY_CHAT_TOKEN} - ADMIN_USERNAMES=${ADMIN_USERNAMES} - API_BUDGET_HEAVY=${API_BUDGET_HEAVY} - API_BUDGET_LIGHT=${API_BUDGET_LIGHT} - LOCAL_OLLAMA_URL=${LOCAL_OLLAMA_URL} - GPU_OLLAMA_URL=${GPU_OLLAMA_URL} - QDRANT_URL=${QDRANT_URL:-http://host.docker.internal:6333} volumes: - ./n8n/data:/home/node/.n8n networks: - bot-network depends_on: bot-postgres: condition: service_healthy extra_hosts: - "host.docker.internal:host-gateway" bot-postgres: image: postgres:16-alpine container_name: bot-postgres restart: unless-stopped ports: - "127.0.0.1:15478:5432" environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ./postgres/data:/var/lib/postgresql/data - ./init:/docker-entrypoint-initdb.d networks: - bot-network healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 networks: bot-network: driver: bridge