# 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