# Docker deployment configuration (copy to .env) # The image is built locally by `docker compose build`; there is no registry tag. # Address the web UI is published on. 127.0.0.1 keeps it host-local; set 0.0.0.0 # to reach it from another machine or from Windows when ARTEX runs inside WSL. ARTEX_BIND_ADDR=127.0.0.1 # Reverse proxies (comma-separated CIDRs) whose X-Forwarded-For the login rate # limit trusts. Empty: the header is ignored. See "Reverse proxy deployment" in README.md. ARTEX_TRUSTED_PROXIES= POSTGRES_USER=artex POSTGRES_PASSWORD=change-me-please POSTGRES_DB=artex # LLM (fill one or both; you can also leave empty and configure in the UI) ANTHROPIC_API_KEY= OPENAI_API_KEY= ARTEX_LLM_PROVIDER= ARTEX_LLM_MODEL= ARTEX_LLM_BASE_URL= ARTEX_LLM_PROXY= # Untrusted-output boundary. Frames every tool output between nonce-tagged markers so # the model treats it as data, not instructions. On by default (unset or empty = on); # set ARTEX_UNTRUSTED_BOUNDARY=0 (or false/off/no) to disable it. Measured cost: about # 154 bytes per tool result plus one system note. # ARTEX_UNTRUSTED_BOUNDARY=0 # Noise profile of the requests ARTEX sends to targets (WebFetch, http custom tools, enrich # probe). Default off: no limit, requests unchanged. quiet = 2 req/s per host, burst 4, # 1 in flight; balanced = 5 req/s, burst 10, 2 in flight; aggressive = 20 req/s, burst 40, # 4 in flight. A profile also adds jitter, backs off on 429/503 and merges identical GETs # of one task per tool (short cache; WebFetch is paced only). Bash-launched tools are not throttled. # ARTEX_NOISE_PROFILE=balanced # User-Agent set on target requests that have none, only under a profile. Empty = unchanged. # ARTEX_TARGET_USER_AGENT= # Run budgets (optional). Unset or 0 = unlimited, nothing changes. TASK_* caps a whole task # (planner rounds and all its workers); INTENT_* caps one worker run. Kept in memory: a # restart, or a revive of a finished task, starts a fresh budget. # Below 50000 tokens a task gets no worker at all (one worker costs about 50000 tokens by # default); from 50000 to about 70000 it typically gets one worker, then the forced wrap-up. Use a # budget well above 70000 for real exploration. # ARTEX_TASK_BUDGET_TOKENS= # ARTEX_TASK_BUDGET_TURNS= # ARTEX_INTENT_BUDGET_TOKENS= # ARTEX_INTENT_BUDGET_TURNS= # Update banner (optional). ARTEX_UPDATE_CHECK=1 lets the backend check the public GitHub # releases API for a newer ARTEX release at most once per 24 h and show a dismissible banner. # Off by default: unset, no update request is made. # ARTEX_UPDATE_CHECK=1