# lobe-chat on esh-docker-vm. Real .env lives on the host and is NEVER committed.
# Populate from the vault:
#   secret get esh-docker-vm/lobe-chat-litellm-key        -> OPENAI_API_KEY
#   secret get esh-docker-vm/lobe-chat-access-code        -> ACCESS_CODE
#   secret get esh-docker-vm/lobe-chat-key-vaults-secret  -> KEY_VAULTS_SECRET
LOBE_PORT=3210
OPENAI_PROXY_URL=http://10.250.50.70:4000/v1
OPENAI_API_KEY=
ACCESS_CODE=
KEY_VAULTS_SECRET=
# System-agent background model routing (avoids the gpt-5-mini default 403ing on the scoped key)
SYSTEM_AGENT=topic=openai/summarizer,translation=openai/gen,agentMeta=openai/gen,queryRewrite=openai/summarizer,historyCompress=openai/summarizer,thread=openai/summarizer
# Picker contents. NEVER auto-discovered: -all clears Lobe's built-in OpenAI
# catalogue, then each +name re-adds one, so a seat added to LiteLLM stays
# invisible until it is listed here AND the container is bounced. Keep it to
# LIVE, CHAT-CAPABLE models: a retired name left here becomes a picker entry
# that 400s on click, and TTS/embedding/reranker seats cannot chat at all.
OPENAI_MODEL_LIST=-all,+gen,+gen-reasoning,+sec,+sec-reasoning,+char-rp,+char-rp-reasoning,+summarizer,+summarizer-large,+classifier,+chat-judge,+selene-1-mini-8b,+image-judge,+qwen-image-bench,+coder-fast,+gen-frontier,+gen-frontier-reasoning,+glm-5.2,+glm-5.2-reasoning,+glm-5.1,+glm-5.1-reasoning,+glm-5-turbo,+glm-4.7,+glm-4.5-air,+kimi-k3,+kimi-k3-gen-api
