Files
chatgpt-on-wechat/docker/docker-compose.yml
T
zhayujieandcowagent 2f99629732 fix(config): keep saved settings when an env var is blank
docker-compose lists every key with an empty value, which wiped API keys
and channel credentials saved from the console on each container start.
Blank env values are now treated as unset, and the compose template no
longer pins MODEL, so the model picked in the console survives restarts.
The upgrade guide keeps the two-command flow and notes where Docker data
lives.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-12 11:17:19 +08:00

61 lines
2.1 KiB
YAML

version: '2.0'
services:
chatgpt-on-wechat:
image: zhayujie/chatgpt-on-wechat
container_name: chatgpt-on-wechat
security_opt:
- seccomp:unconfined
ports:
- "9899:9899"
environment:
COW_LANG: 'auto'
CHANNEL_TYPE: 'web, weixin'
# Any value set here overrides the model chosen in the web console on
# every start. Unset, it defaults to deepseek-flash.
# MODEL: 'deepseek-flash'
DEEPSEEK_API_KEY: ''
DEEPSEEK_API_BASE: 'https://api.deepseek.com/v1'
MINIMAX_API_KEY: ''
ZHIPU_AI_API_KEY: ''
ARK_API_KEY: ''
MOONSHOT_API_KEY: ''
DASHSCOPE_API_KEY: ''
CLAUDE_API_KEY: ''
CLAUDE_API_BASE: 'https://api.anthropic.com/v1'
OPEN_AI_API_KEY: ''
OPEN_AI_API_BASE: 'https://api.openai.com/v1'
GEMINI_API_KEY: ''
GEMINI_API_BASE: 'https://generativelanguage.googleapis.com'
VOICE_TO_TEXT: 'openai'
TEXT_TO_VOICE: 'openai'
VOICE_REPLY_VOICE: 'False'
SPEECH_RECOGNITION: 'True'
GROUP_SPEECH_RECOGNITION: 'False'
USE_LINKAI: 'False'
LINKAI_API_KEY: ''
LINKAI_APP_CODE: ''
FEISHU_APP_ID: ''
FEISHU_APP_SECRET: ''
DINGTALK_CLIENT_ID: ''
DINGTALK_CLIENT_SECRET: ''
WECOM_BOT_ID: ''
WECOM_BOT_SECRET: ''
# To access the web console from the host, set this to '0.0.0.0' and set WEB_PASSWORD
WEB_HOST: '127.0.0.1'
WEB_PASSWORD: ''
AGENT: 'True'
# Container is already an isolation boundary, so the agent runs unconfined inside it
AGENT_PERMISSION_MODE: 'full-access'
AGENT_MAX_CONTEXT_TOKENS: 50000
AGENT_MAX_CONTEXT_TURNS: 20
AGENT_MAX_STEPS: 20
SELF_EVOLUTION_ENABLED: 'True'
# Writable data root (config.json, run.log, credentials) — kept separate
# from the workspace so it survives image upgrades / container recreation.
COW_DATA_DIR: '/home/agent/.cow'
volumes:
# Workspace: skills, memory, knowledge, mcp.json, conversation artifacts
- ./cow:/home/agent/cow
# Data root: config.json, run.log, credentials
- ./cow-data:/home/agent/.cow