109 lines
3.7 KiB
YAML
109 lines
3.7 KiB
YAML
# Archon defaults to a single-container SQLite deployment.
|
|
# Enable the with-db profile and set DATABASE_URL to use local PostgreSQL.
|
|
|
|
x-defaults: &defaults
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: '3'
|
|
|
|
services:
|
|
archon:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-ghcr.io/}coleam00/archon:${ARCHON_VERSION:-latest}
|
|
ports:
|
|
- '${ARCHON_PORT_OVERRIDE:-3000}:${PORT:-3000}'
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- ARCHON_DOCKER=true
|
|
- PORT=${PORT:-3000}
|
|
- HOST=${HOST:-0.0.0.0}
|
|
- CLAUDE_USE_GLOBAL_AUTH=${CLAUDE_USE_GLOBAL_AUTH:-false}
|
|
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN:-}
|
|
- CLAUDE_API_KEY=${CLAUDE_API_KEY:-}
|
|
- CODEX_ID_TOKEN=${CODEX_ID_TOKEN:-}
|
|
- CODEX_ACCESS_TOKEN=${CODEX_ACCESS_TOKEN:-}
|
|
- CODEX_REFRESH_TOKEN=${CODEX_REFRESH_TOKEN:-}
|
|
- CODEX_ACCOUNT_ID=${CODEX_ACCOUNT_ID:-}
|
|
- DEFAULT_AI_ASSISTANT=${DEFAULT_AI_ASSISTANT:-claude}
|
|
- DATABASE_URL=${DATABASE_URL:-}
|
|
- GH_TOKEN=${GH_TOKEN:-}
|
|
- GITHUB_TOKEN=${GITHUB_TOKEN:-}
|
|
- WEBHOOK_SECRET=${WEBHOOK_SECRET:-}
|
|
- GITLAB_URL=${GITLAB_URL:-https://gitlab.com}
|
|
- GITLAB_TOKEN=${GITLAB_TOKEN:-}
|
|
- GITLAB_WEBHOOK_SECRET=${GITLAB_WEBHOOK_SECRET:-}
|
|
- GITEA_URL=${GITEA_URL:-}
|
|
- GITEA_TOKEN=${GITEA_TOKEN:-}
|
|
- GITEA_WEBHOOK_SECRET=${GITEA_WEBHOOK_SECRET:-}
|
|
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
|
|
- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN:-}
|
|
- SLACK_BOT_TOKEN=${SLACK_BOT_TOKEN:-}
|
|
- SLACK_APP_TOKEN=${SLACK_APP_TOKEN:-}
|
|
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
|
|
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
|
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
|
|
- BOT_DISPLAY_NAME=${BOT_DISPLAY_NAME:-Archon}
|
|
- TELEGRAM_STREAMING_MODE=${TELEGRAM_STREAMING_MODE:-stream}
|
|
- DISCORD_STREAMING_MODE=${DISCORD_STREAMING_MODE:-batch}
|
|
- SLACK_STREAMING_MODE=${SLACK_STREAMING_MODE:-batch}
|
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
- MAX_CONCURRENT_CONVERSATIONS=${MAX_CONCURRENT_CONVERSATIONS:-10}
|
|
- SESSION_RETENTION_DAYS=${SESSION_RETENTION_DAYS:-30}
|
|
- DO_NOT_TRACK=${DO_NOT_TRACK:-}
|
|
volumes:
|
|
- ${ARCHON_DATA:-archon_data}:/.archon
|
|
- ${ARCHON_USER_HOME:-archon_user_home}:/home/appuser
|
|
healthcheck:
|
|
test: [CMD, curl, -f, 'http://localhost:${PORT:-3000}/api/health']
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 20s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${ARCHON_CPU_LIMIT:-2.0}
|
|
memory: ${ARCHON_MEMORY_LIMIT:-4G}
|
|
reservations:
|
|
cpus: ${ARCHON_CPU_RESERVATION:-0.1}
|
|
memory: ${ARCHON_MEMORY_RESERVATION:-1G}
|
|
|
|
postgres:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}postgres:${POSTGRES_VERSION:-17-alpine}
|
|
profiles:
|
|
- with-db
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- POSTGRES_DB=remote_coding_agent
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
|
ports:
|
|
- '127.0.0.1:${POSTGRES_PORT_OVERRIDE:-5432}:5432'
|
|
volumes:
|
|
- archon_postgres_data:/var/lib/postgresql/data
|
|
- ./migrations/000_combined.sql:/docker-entrypoint-initdb.d/000_combined.sql:ro
|
|
healthcheck:
|
|
test: [CMD-SHELL, 'pg_isready -U postgres -d remote_coding_agent']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 15s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${POSTGRES_CPU_LIMIT:-1.0}
|
|
memory: ${POSTGRES_MEMORY_LIMIT:-1G}
|
|
reservations:
|
|
cpus: ${POSTGRES_CPU_RESERVATION:-0.1}
|
|
memory: ${POSTGRES_MEMORY_RESERVATION:-256M}
|
|
|
|
volumes:
|
|
archon_data:
|
|
archon_user_home:
|
|
archon_postgres_data:
|