version: '3.9' # ============================================================ # صانع (San'e) — Docker Compose for VPS Deployment # ============================================================ # Usage: docker compose up -d # ============================================================ services: sane: build: context: . dockerfile: Dockerfile container_name: sane-assistant restart: unless-stopped ports: - "${SANE_GATEWAY_PORT:-18789}:18789" volumes: # Persist WhatsApp auth and session data - sane-data:/app/.sane # Mount .env file - ./.env:/app/.env:ro environment: - NODE_ENV=production - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_ALLOWED_USERS=${TELEGRAM_ALLOWED_USERS} - SANE_MODEL=${SANE_MODEL:-claude-sonnet-4-5} - SANE_LANGUAGE=${SANE_LANGUAGE:-ar} - SANE_LOCALE=${SANE_LOCALE:-ar-KW} - SANE_TIMEZONE=${SANE_TIMEZONE:-Asia/Kuwait} - SANE_LOCATION=${SANE_LOCATION:-kuwait_city} - SANE_GATEWAY_PORT=18789 - SANE_PRAYER_REMINDERS=${SANE_PRAYER_REMINDERS:-true} - SANE_RAMADAN_MODE=${SANE_RAMADAN_MODE:-auto} - SANE_HIJRI_DATES=${SANE_HIJRI_DATES:-true} - WHATSAPP_ENABLED=${WHATSAPP_ENABLED:-true} - LOG_LEVEL=${LOG_LEVEL:-info} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:18789/health"] interval: 30s timeout: 10s retries: 3 start_period: 30s networks: - sane-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" volumes: sane-data: driver: local networks: sane-network: driver: bridge