version: '3.8' x-openclaw-common-env: &openclaw-common-env TZ: Asia/Shanghai HOME: /home/node TERM: xterm-256color # 配置同步开关 SYNC_OPENCLAW_CONFIG: ${SYNC_OPENCLAW_CONFIG} # 插件同步配置 SYNC_EXTENSIONS_ON_START: ${SYNC_EXTENSIONS_ON_START} SYNC_EXTENSIONS_MODE: ${SYNC_EXTENSIONS_MODE} # 模型配置 SYNC_MODEL_CONFIG: ${SYNC_MODEL_CONFIG} MODEL_ID: ${MODEL_ID} PRIMARY_MODEL: ${PRIMARY_MODEL} IMAGE_MODEL_ID: ${IMAGE_MODEL_ID} BASE_URL: ${BASE_URL} API_KEY: ${API_KEY} API_PROTOCOL: ${API_PROTOCOL} CONTEXT_WINDOW: ${CONTEXT_WINDOW} MAX_TOKENS: ${MAX_TOKENS} # 提供商 2 (可选) MODEL2_NAME: ${MODEL2_NAME} MODEL2_MODEL_ID: ${MODEL2_MODEL_ID} MODEL2_BASE_URL: ${MODEL2_BASE_URL} MODEL2_API_KEY: ${MODEL2_API_KEY} MODEL2_PROTOCOL: ${MODEL2_PROTOCOL} MODEL2_CONTEXT_WINDOW: ${MODEL2_CONTEXT_WINDOW} MODEL2_MAX_TOKENS: ${MODEL2_MAX_TOKENS} # 提供商 3 (可选) MODEL3_NAME: ${MODEL3_NAME} MODEL3_MODEL_ID: ${MODEL3_MODEL_ID} MODEL3_BASE_URL: ${MODEL3_BASE_URL} MODEL3_API_KEY: ${MODEL3_API_KEY} MODEL3_PROTOCOL: ${MODEL3_PROTOCOL} MODEL3_CONTEXT_WINDOW: ${MODEL3_CONTEXT_WINDOW} MODEL3_MAX_TOKENS: ${MODEL3_MAX_TOKENS} # 提供商 4 (可选) MODEL4_NAME: ${MODEL4_NAME} MODEL4_MODEL_ID: ${MODEL4_MODEL_ID} MODEL4_BASE_URL: ${MODEL4_BASE_URL} MODEL4_API_KEY: ${MODEL4_API_KEY} MODEL4_PROTOCOL: ${MODEL4_PROTOCOL} MODEL4_CONTEXT_WINDOW: ${MODEL4_CONTEXT_WINDOW} MODEL4_MAX_TOKENS: ${MODEL4_MAX_TOKENS} # 提供商 5 (可选) MODEL5_NAME: ${MODEL5_NAME} MODEL5_MODEL_ID: ${MODEL5_MODEL_ID} MODEL5_BASE_URL: ${MODEL5_BASE_URL} MODEL5_API_KEY: ${MODEL5_API_KEY} MODEL5_PROTOCOL: ${MODEL5_PROTOCOL} MODEL5_CONTEXT_WINDOW: ${MODEL5_CONTEXT_WINDOW} MODEL5_MAX_TOKENS: ${MODEL5_MAX_TOKENS} # 提供商 6 (可选) MODEL6_NAME: ${MODEL6_NAME} MODEL6_MODEL_ID: ${MODEL6_MODEL_ID} MODEL6_BASE_URL: ${MODEL6_BASE_URL} MODEL6_API_KEY: ${MODEL6_API_KEY} MODEL6_PROTOCOL: ${MODEL6_PROTOCOL} MODEL6_CONTEXT_WINDOW: ${MODEL6_CONTEXT_WINDOW} MODEL6_MAX_TOKENS: ${MODEL6_MAX_TOKENS} # 通道配置 DM_POLICY: ${DM_POLICY} GROUP_POLICY: ${GROUP_POLICY} ALLOW_FROM: ${ALLOW_FROM} # 电报机器人配置 TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} TELEGRAM_DM_POLICY: ${TELEGRAM_DM_POLICY} TELEGRAM_ALLOW_FROM: ${TELEGRAM_ALLOW_FROM} TELEGRAM_GROUP_POLICY: ${TELEGRAM_GROUP_POLICY} # 飞书机器人配置 FEISHU_DEFAULT_ACCOUNT: ${FEISHU_DEFAULT_ACCOUNT} FEISHU_APP_ID: ${FEISHU_APP_ID} FEISHU_APP_SECRET: ${FEISHU_APP_SECRET} FEISHU_NAME: ${FEISHU_NAME} # 飞书机器人多账号 JSON FEISHU_ACCOUNTS_JSON: ${FEISHU_ACCOUNTS_JSON} FEISHU_GROUPS_JSON: ${FEISHU_GROUPS_JSON} FEISHU_DM_POLICY: ${FEISHU_DM_POLICY} FEISHU_ALLOW_FROM: ${FEISHU_ALLOW_FROM} FEISHU_GROUP_POLICY: ${FEISHU_GROUP_POLICY} FEISHU_GROUP_ALLOW_FROM: ${FEISHU_GROUP_ALLOW_FROM} # 飞书机器人插件配置 FEISHU_OFFICIAL_PLUGIN_ENABLED: ${FEISHU_OFFICIAL_PLUGIN_ENABLED} FEISHU_STREAMING: ${FEISHU_STREAMING} FEISHU_REQUIRE_MENTION: ${FEISHU_REQUIRE_MENTION} # 钉钉配置 DINGTALK_CLIENT_ID: ${DINGTALK_CLIENT_ID} DINGTALK_CLIENT_SECRET: ${DINGTALK_CLIENT_SECRET} DINGTALK_DM_POLICY: ${DINGTALK_DM_POLICY} DINGTALK_GROUP_POLICY: ${DINGTALK_GROUP_POLICY} DINGTALK_ALLOW_FROM: ${DINGTALK_ALLOW_FROM} DINGTALK_MESSAGE_TYPE: ${DINGTALK_MESSAGE_TYPE} DINGTALK_CARD_STREAMING_MODE: ${DINGTALK_CARD_STREAMING_MODE} DINGTALK_ACK_REACTION: ${DINGTALK_ACK_REACTION} DINGTALK_CARD_STREAM_INTERVAL: ${DINGTALK_CARD_STREAM_INTERVAL} DINGTALK_MAX_RECONNECT_CYCLES: ${DINGTALK_MAX_RECONNECT_CYCLES} DINGTALK_DEBUG: ${DINGTALK_DEBUG} DINGTALK_JOURNAL_TTL_DAYS: ${DINGTALK_JOURNAL_TTL_DAYS} # 钉钉多机器人 JSON DINGTALK_ACCOUNTS_JSON: ${DINGTALK_ACCOUNTS_JSON} # QQ 机器人配置 QQBOT_APP_ID: ${QQBOT_APP_ID} QQBOT_CLIENT_SECRET: ${QQBOT_CLIENT_SECRET} QQBOT_DM_POLICY: ${QQBOT_DM_POLICY} QQBOT_ALLOW_FROM: ${QQBOT_ALLOW_FROM} QQBOT_GROUP_POLICY: ${QQBOT_GROUP_POLICY} # QQ 机器人多账号 JSON QQBOT_BOTS_JSON: ${QQBOT_BOTS_JSON} # 企业微信配置 WECOM_DEFAULT_ACCOUNT: ${WECOM_DEFAULT_ACCOUNT} WECOM_ADMIN_USERS: ${WECOM_ADMIN_USERS} WECOM_COMMANDS_ENABLED: ${WECOM_COMMANDS_ENABLED} WECOM_COMMANDS_ALLOWLIST: ${WECOM_COMMANDS_ALLOWLIST} WECOM_DYNAMIC_AGENTS_ENABLED: ${WECOM_DYNAMIC_AGENTS_ENABLED} WECOM_DYNAMIC_AGENTS_ADMIN_BYPASS: ${WECOM_DYNAMIC_AGENTS_ADMIN_BYPASS} # 企业微信单账号快捷配置(会写入 defaultAccount 指定的账号) WECOM_BOT_ID: ${WECOM_BOT_ID} WECOM_SECRET: ${WECOM_SECRET} WECOM_WELCOME_MESSAGE: ${WECOM_WELCOME_MESSAGE} WECOM_SEND_THINKING_MESSAGE: ${WECOM_SEND_THINKING_MESSAGE} WECOM_DM_POLICY: ${WECOM_DM_POLICY} WECOM_ALLOW_FROM: ${WECOM_ALLOW_FROM} WECOM_GROUP_POLICY: ${WECOM_GROUP_POLICY} WECOM_GROUP_ALLOW_FROM: ${WECOM_GROUP_ALLOW_FROM} WECOM_WORKSPACE_TEMPLATE: ${WECOM_WORKSPACE_TEMPLATE} WECOM_AGENT_CORP_ID: ${WECOM_AGENT_CORP_ID} WECOM_AGENT_CORP_SECRET: ${WECOM_AGENT_CORP_SECRET} WECOM_AGENT_ID: ${WECOM_AGENT_ID} WECOM_WEBHOOKS_JSON: ${WECOM_WEBHOOKS_JSON} WECOM_DM_CREATE_AGENT_ON_FIRST_MESSAGE: ${WECOM_DM_CREATE_AGENT_ON_FIRST_MESSAGE} WECOM_GROUP_CHAT_ENABLED: ${WECOM_GROUP_CHAT_ENABLED} WECOM_GROUP_CHAT_REQUIRE_MENTION: ${WECOM_GROUP_CHAT_REQUIRE_MENTION} WECOM_GROUP_CHAT_MENTION_PATTERNS: ${WECOM_GROUP_CHAT_MENTION_PATTERNS} WECOM_NETWORK_EGRESS_PROXY_URL: ${WECOM_NETWORK_EGRESS_PROXY_URL} WECOM_NETWORK_API_BASE_URL: ${WECOM_NETWORK_API_BASE_URL} # 企业微信多账号 JSON WECOM_ACCOUNTS_JSON: ${WECOM_ACCOUNTS_JSON} # NAPCAT 配置 NAPCAT_REVERSE_WS_PORT: ${NAPCAT_REVERSE_WS_PORT} NAPCAT_DM_POLICY: ${NAPCAT_DM_POLICY} NAPCAT_ALLOW_FROM: ${NAPCAT_ALLOW_FROM} NAPCAT_GROUP_POLICY: ${NAPCAT_GROUP_POLICY} NAPCAT_HTTP_URL: ${NAPCAT_HTTP_URL} NAPCAT_ACCESS_TOKEN: ${NAPCAT_ACCESS_TOKEN} NAPCAT_ADMINS: ${NAPCAT_ADMINS} # 工作空间配置 OPENCLAW_WORKSPACE_ROOT: ${OPENCLAW_WORKSPACE_ROOT} # Gateway 配置 OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND} OPENCLAW_GATEWAY_PORT: ${OPENCLAW_GATEWAY_PORT} OPENCLAW_GATEWAY_MODE: ${OPENCLAW_GATEWAY_MODE} OPENCLAW_GATEWAY_ALLOWED_ORIGINS: ${OPENCLAW_GATEWAY_ALLOWED_ORIGINS} OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH: ${OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH} OPENCLAW_GATEWAY_DANGEROUSLY_DISABLE_DEVICE_AUTH: ${OPENCLAW_GATEWAY_DANGEROUSLY_DISABLE_DEVICE_AUTH} OPENCLAW_GATEWAY_AUTH_MODE: ${OPENCLAW_GATEWAY_AUTH_MODE} # 插件控制 OPENCLAW_PLUGINS_ENABLED: ${OPENCLAW_PLUGINS_ENABLED} # 工具配置 OPENCLAW_TOOLS_JSON: ${OPENCLAW_TOOLS_JSON} # 沙箱配置 OPENCLAW_SANDBOX_MODE: ${OPENCLAW_SANDBOX_MODE} OPENCLAW_SANDBOX_SCOPE: ${OPENCLAW_SANDBOX_SCOPE} OPENCLAW_SANDBOX_WORKSPACE_ACCESS: ${OPENCLAW_SANDBOX_WORKSPACE_ACCESS} OPENCLAW_SANDBOX_JOIN_NETWORK: ${OPENCLAW_SANDBOX_JOIN_NETWORK} OPENCLAW_SANDBOX_DOCKER_IMAGE: ${OPENCLAW_SANDBOX_DOCKER_IMAGE} OPENCLAW_SANDBOX_JSON: ${OPENCLAW_SANDBOX_JSON} AGENT_REACH_ENABLED: ${AGENT_REACH_ENABLED} AGENT_REACH_USE_CN_MIRROR: ${AGENT_REACH_USE_CN_MIRROR} services: openclaw-gateway: container_name: openclaw-gateway image: ${OPENCLAW_IMAGE} cap_add: - CHOWN - SETUID - SETGID - DAC_OVERRIDE # 可选:指定容器运行 UID:GID(例如 1000:1000) # 默认保持 root 启动,以便 init.sh 自动修复挂载卷权限后再降权运行网关 user: ${OPENCLAW_RUN_USER:-0:0} environment: *openclaw-common-env volumes: - ${OPENCLAW_DATA_DIR}:/home/node/.openclaw # 使用命名卷共享 extensions,确保工具容器安装后的插件主容器可见 - openclaw-extensions:/home/node/.openclaw/extensions # 沙箱支持:如需启用 Docker 沙箱,请取消下面一行的注释并确保 .env 中 OPENCLAW_SANDBOX_MODE 不为 off # - /var/run/docker.sock:/var/run/docker.sock ports: - "${DOCKER_BIND:-0.0.0.0}:${OPENCLAW_GATEWAY_PORT}:${OPENCLAW_GATEWAY_PORT}" init: true restart: unless-stopped openclaw-installer: container_name: openclaw-installer image: ${OPENCLAW_IMAGE} profiles: - tools user: ${OPENCLAW_RUN_USER:-0:0} environment: *openclaw-common-env volumes: - ${OPENCLAW_DATA_DIR}:/home/node/.openclaw - openclaw-extensions:/home/node/.openclaw/extensions entrypoint: ["tail", "-f", "/dev/null"] init: true restart: 'no' ports: [] stdin_open: true tty: true cap_add: - CHOWN - SETUID - SETGID - DAC_OVERRIDE volumes: openclaw-extensions: