Files
flynn/docker-compose.yml

100 lines
2.9 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
# Override image entrypoint so args are passed directly to whisper-server.
entrypoint: ["whisper-server"]
command:
- --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
# Optional local dependency: Brave Search MCP server (HTTP mode).
# Start with: docker compose --profile search up -d brave-search
brave-search:
image: mcp/brave-search:latest
container_name: brave-search
restart: unless-stopped
profiles: ["search"]
ports:
- "18802:8000"
environment:
- BRAVE_API_KEY=${BRAVE_API_KEY:?BRAVE_API_KEY is required}
- BRAVE_MCP_TRANSPORT=http
- BRAVE_MCP_HOST=0.0.0.0
- BRAVE_MCP_PORT=8000
# Optional local dependency: SearXNG metasearch instance.
# Start with: docker compose --profile search up -d searxng
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
profiles: ["search"]
ports:
- "18803:8080"
environment:
- BASE_URL=http://localhost:18803/
- INSTANCE_NAME=Flynn Local SearXNG
volumes:
flynn-data:
whisper-models: