services: flynn: build: . container_name: flynn restart: unless-stopped ports: - "18800:18800" volumes: # Persistent data (sessions DB, memory store) - flynn-data:/data # Mount your config file - ./config/default.yaml:/config/config.yaml:ro environment: # Required: at least one model provider API key - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} # Optional: additional provider keys - OPENAI_API_KEY=${OPENAI_API_KEY:-} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} - GOOGLE_API_KEY=${GOOGLE_API_KEY:-} # Optional: Telegram integration - FLYNN_TELEGRAM_TOKEN=${FLYNN_TELEGRAM_TOKEN:-} # Optional: Discord integration - DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN:-} # Optional: Gateway auth token - FLYNN_SERVER_TOKEN=${FLYNN_SERVER_TOKEN:-} healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:18800/"] interval: 30s timeout: 5s start_period: 15s retries: 3 # Optional: Whisper server for audio transcription # Uncomment and adjust as needed for voice message support # whisper-server: # image: ghcr.io/ggml-org/whisper.cpp:main # container_name: whisper-server # restart: unless-stopped # ports: # - "18801:8080" # command: whisper-server # --model /app/models/ggml-base.en.bin # --host 0.0.0.0 # --port 8080 # --convert # --language en # --inference-path /v1/audio/transcriptions # healthcheck: # test: ["CMD-SHELL", "curl", "-f", "http://localhost:8080/"] # interval: 30s # timeout: 5s # start_period: 15s # retries: 3 volumes: flynn-data: