CoolFace
Apppublic

hallidda/axonhub

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
config.example.yml143 linesDownload Raw Back to root
1# AxonHub Configuration Example
2# Copy this file to config.yml and modify as needed
3
4# Server configuration
5server:
6  host: "0.0.0.0"               # Server host (env: AXONHUB_SERVER_HOST)
7  port: 8090                    # Server port (env: AXONHUB_SERVER_PORT)
8  name: "AxonHub"               # Server name (env: AXONHUB_SERVER_NAME)
9  base_path: ""                 # Base path for API routes (env: AXONHUB_SERVER_BASE_PATH)
10  request_timeout: "30s"        # Request timeout duration (env: AXONHUB_SERVER_REQUEST_TIMEOUT)
11  llm_request_timeout: "600s"   # LLM request timeout duration (env: AXONHUB_SERVER_LLM_REQUEST_TIMEOUT)
12  trace:
13    thread_header: "AH-Thread-Id" # Thread ID header name (env: AXONHUB_SERVER_TRACE_THREAD_HEADER)
14    trace_header: "AH-Trace-Id" # Trace ID header name (env: AXONHUB_SERVER_TRACE_TRACE_HEADER)
15    extra_trace_headers: [] # Extra trace headers (env: AXONHUB_SERVER_TRACE_EXTRA_TRACE_HEADERS)
16    extra_trace_body_fields: [] # Extra trace body fields (env: AXONHUB_SERVER_TRACE_EXTRA_TRACE_BODY_FIELDS)
17    claude_code_trace_enabled: false # Enable extracting trace IDs from Claude Code request metadata (env: AXONHUB_SERVER_TRACE_CLAUDE_CODE_TRACE_ENABLED)
18    codex_trace_enabled: false # Enable extracting trace IDs from Codex Session_id header (env: AXONHUB_SERVER_TRACE_CODEX_TRACE_ENABLED)
19  debug: false                  # Enable debug mode (env: AXONHUB_SERVER_DEBUG)
20  cors:
21    enabled: true               # Enable CORS middleware (env: AXONHUB_SERVER_CORS_ENABLED)
22    debug: false                # Enable CORS debug logging (env: AXONHUB_SERVER_CORS_DEBUG)
23    allowed_origins:            # Allowed origins for CORS (env: AXONHUB_SERVER_CORS_ALLOWED_ORIGINS)
24      - "http://localhost:3000"
25      - "http://localhost:5173"
26    allowed_methods:            # Allowed HTTP methods (env: AXONHUB_SERVER_CORS_ALLOWED_METHODS)
27      - "GET"
28      - "POST"
29      - "DELETE"
30      - "PATCH"
31      - "PUT"
32      - "OPTIONS"
33      - "HEAD"
34    allowed_headers:            # Allowed headers (env: AXONHUB_SERVER_CORS_ALLOWED_HEADERS)
35      - "Content-Type"
36      - "Authorization"
37      - "X-API-Key"
38      - "X-Goog-Api-Key"
39      - "X-Project-ID"
40      - "AH-Thread-Id"
41      - "AH-Trace-Id"
42      # Add any other headers your frontend sends
43    exposed_headers: []         # Exposed headers (env: AXONHUB_SERVER_CORS_EXPOSED_HEADERS)
44    allow_credentials: true     # Allow credentials (env: AXONHUB_SERVER_CORS_ALLOW_CREDENTIALS)
45    max_age: 1m                  # Max age for preflight cache in seconds (env: AXONHUB_SERVER_CORS_MAX_AGE)
46
47# Database configuration
48db:
49  dialect: "sqlite3"            # Database dialect: sqlite3, postgres, mysql (env: AXONHUB_DB_DIALECT)
50  dsn: "file:axonhub.db?cache=shared&_fk=1"  # Database connection string (env: AXONHUB_DB_DSN)
51  debug: false                  # Enable database debug logging (env: AXONHUB_DB_DEBUG)
52
53# Cache configuration
54cache:
55  # One of: memory, redis, two-level (memory + redis)
56  mode: "memory"                # (env: AXONHUB_CACHE_MODE)
57  
58  # Memory cache configuration
59  memory:
60    expiration: "5s"            # Memory cache TTL (env: AXONHUB_CACHE_MEMORY_EXPIRATION)
61    cleanup_interval: "10m"     # Memory cache cleanup interval (env: AXONHUB_CACHE_MEMORY_CLEANUP_INTERVAL)
62  
63  # Redis cache configuration
64  redis:
65    # Simple mode: Use addr for plain host:port
66    addr: ""                    # Redis address (host:port) (env: AXONHUB_CACHE_REDIS_ADDR)
67
68    # URL mode: Use url for full redis:// or rediss:// URLs (takes priority over addr)
69    # Supported formats:
70    #   - "redis://127.0.0.1:6379"
71    #   - "rediss://127.0.0.1:6380" (auto-enables TLS)
72    #   - "redis://user:pass@127.0.0.1:6379/0"
73    url: ""                     # Redis URL (env: AXONHUB_CACHE_REDIS_URL)
74
75    # Optional overrides (apply to both addr and url modes)
76    username: ""                # Overrides URL username (env: AXONHUB_CACHE_REDIS_USERNAME)
77    password: ""                # Overrides URL password (env: AXONHUB_CACHE_REDIS_PASSWORD)
78    db: 0                       # Overrides URL /db (env: AXONHUB_CACHE_REDIS_DB)
79    tls: false                  # Enable TLS for addr mode (env: AXONHUB_CACHE_REDIS_TLS)
80    tls_insecure_skip_verify: false # Skip TLS cert verification (env: AXONHUB_CACHE_REDIS_TLS_INSECURE_SKIP_VERIFY)
81    expiration: "30m"           # Redis cache TTL (env: AXONHUB_CACHE_REDIS_EXPIRATION)
82
83# Logging configuration
84log:
85  name: "axonhub"               # Logger name (env: AXONHUB_LOG_NAME)
86  debug: false                  # Enable debug logging (env: AXONHUB_LOG_DEBUG)
87  level: "info"                 # Log level: debug, info, warn, error, panic, fatal (env: AXONHUB_LOG_LEVEL)
88  level_key: "level"            # Key name for log level field (env: AXONHUB_LOG_LEVEL_KEY)
89  time_key: "time"              # Key name for timestamp field (env: AXONHUB_LOG_TIME_KEY)
90  caller_key: "label"           # Key name for caller info field (env: AXONHUB_LOG_CALLER_KEY)
91  function_key: ""              # Key name for function field (env: AXONHUB_LOG_FUNCTION_KEY)
92  name_key: "logger"            # Key name for logger name field (env: AXONHUB_LOG_NAME_KEY)
93  encoding: "json"              # Log encoding: json, console, console_json (env: AXONHUB_LOG_ENCODING)
94  includes: []                  # Logger names to include (env: AXONHUB_LOG_INCLUDES)
95  excludes: []                  # Logger names to exclude (env: AXONHUB_LOG_EXCLUDES)
96  output: "stdio"               # Output target: file or stdio (env: AXONHUB_LOG_OUTPUT)
97  file:                        # File-based logging configuration (env prefix: AXONHUB_LOG_FILE_*)
98    path: "logs/axonhub.log"   # Log file path (env: AXONHUB_LOG_FILE_PATH)
99    max_size: 100              # Max size in MB before rotation (env: AXONHUB_LOG_FILE_MAX_SIZE)
100    max_age: 30                # Max age in days to retain (env: AXONHUB_LOG_FILE_MAX_AGE)
101    max_backups: 10            # Max number of old log files to retain (env: AXONHUB_LOG_FILE_MAX_BACKUPS)
102    local_time: true           # Use local time for rotated files (env: AXONHUB_LOG_FILE_LOCAL_TIME)
103
104# Metrics configuration
105metrics:
106  enabled: false                 # Enable metrics collection (env: AXONHUB_METRICS_ENABLED)
107  exporter: 
108    type: "oltphttp"          # Metrics exporter type: prometheus, console (env: AXONHUB_METRICS_EXPORTER_TYPE)
109    endpoint: "localhost:8080" # Metrics exporter endpoint (env: AXONHUB_METRICS_EXPORTER_ENDPOINT)
110    insecure: true             # Enable insecure connection (env: AXONHUB_METRICS_EXPORTER_INSECURE)
111    
112
113# Garbage Collection configuration
114gc:
115  cron: "0 2 * * *"              # Cron expression for GC execution (env: AXONHUB_GC_CRON)
116                                 # This example runs daily at 2:00 AM
117                                 # Format: minute hour day month day_of_week
118                                 # Examples:
119                                 # "0 2 * * *"     - Daily at 2:00 AM
120                                 # "0 3 * * 0"     - Weekly on Sunday at 3:00 AM
121                                 # "0 4 1 * *"     - Monthly on 1st day at 4:00 AM
122
123# Provider Quota configuration
124provider_quota:
125  check_interval: "20m"          # Interval for checking provider quota status (env: AXONHUB_PROVIDER_QUOTA_CHECK_INTERVAL)
126                                 # Supported values: 1m, 2m, 3m, 4m, 5m, 6m, 10m, 12m, 15m, 20m, 30m, 1h, 2h, etc.
127                                 # Default: 20m
128                                 # Longer intervals reduce API calls but show less fresh quota data
129
130# Environment Variable Examples:
131# export AXONHUB_SERVER_PORT=8080
132# export AXONHUB_DB_DSN="postgres://user:pass@localhost/axonhub?sslmode=disable"
133# export AXONHUB_LOG_LEVEL="debug"
134# export AXONHUB_LOG_ENCODING="console"
135# export AXONHUB_LOG_OUTPUT="stdio"  # or "file"
136# export AXONHUB_LOG_FILE_PATH="/var/log/axonhub/axonhub.log"
137# export AXONHUB_LOG_FILE_MAX_SIZE=200
138# export AXONHUB_LOG_FILE_MAX_AGE=14
139# export AXONHUB_LOG_FILE_MAX_BACKUPS=7
140# export AXONHUB_SERVER_TRACE_HEADER="X-Trace-ID"
141# export AXONHUB_METRICS_ENABLED=false
142# export AXONHUB_GC_CRON="0 3 * * 0"  # Run weekly on Sunday at 3:00 AM
143