67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
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 local dependency: whisper.cpp server for audio transcription.
|
|
# Start with: docker compose --profile voice up -d whisper-server
|
|
whisper-server:
|
|
image: ghcr.io/ggml-org/whisper.cpp:main
|
|
container_name: whisper-server
|
|
restart: unless-stopped
|
|
profiles: ["voice"]
|
|
ports:
|
|
- "18801:8080"
|
|
volumes:
|
|
- whisper-models:/app/models
|
|
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/ >/dev/null 2>&1 || exit 1"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 15s
|
|
retries: 3
|
|
|
|
volumes:
|
|
flynn-data:
|
|
whisper-models:
|