WechatOnCloud/docker-compose.yml
Kris 3effe1338c feat: 新增纯坐标模式开关与文本输入优化
1. 新增WOC_DISABLE_OPENCV环境变量支持纯坐标定位模式
2. 优化xdotool文本输入:替换换行符为空格、添加30ms输入延迟
3. 新增输入框清空逻辑,避免内容残留
2026-07-18 05:23:06 +08:00

83 lines
5.9 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WechatOnCloud —— 面板为唯一服务微信实例由面板按需动态创建docker run
# 面板挂载 docker.sock 来创建/启动/删除微信实例容器,并反向代理到它们的 KasmVNC。
# 镜像默认从 Docker Hub 拉取GHCR 备用),无需本地构建。要改配置:复制 .env.example 为 .env 后修改。
services:
panel:
# 镜像源前缀默认 Docker Hub飞牛等 NAS 有加速);拉不动时改 .env 的 WOC_IMAGE_PREFIX 切到 GHCR/国内反代(见 .env.example
image: ${WOC_IMAGE_PREFIX:-docker.io/gloridust}/woc-panel:${WOC_VERSION:-latest}
container_name: woc-panel
# pull_policy 用默认missing本地已有同名镜像就直接用没有才去镜像源拉。
# 这样「发布前本地自构建」与「线上拉取」都能用同一份 compose。
# 想强制更新到最新版docker compose pull && docker compose up -d
environment:
- PORT=8080
# 新建微信实例时使用的镜像多架构amd64/arm64 自动匹配);前缀同样跟随 WOC_IMAGE_PREFIX。
# 可通过 .env 中的 WOC_WECHAT_IMAGE 完全覆盖(本地自构建时使用)。
- WOC_WECHAT_IMAGE=${WOC_WECHAT_IMAGE:-${WOC_IMAGE_PREFIX:-docker.io/gloridust}/wechat-on-cloud:${WOC_VERSION:-latest}}
# 透传给每个微信实例容器KasmVNC 基础镜像用它们降权运行)
- PUID=${WOC_PUID:-1000}
- PGID=${WOC_PGID:-1000}
- TZ=${WOC_TZ:-Asia/Shanghai}
# 摄像头直通:逗号分隔的宿主视频设备(如 /dev/video0。留空则自动探测见下方 /host-dev 挂载)或禁用摄像头。
# 启用前需在宿主加载 v4l2loopback 内核模块。详见 .env.example。
- WOC_VIDEO_DEVICES=${WOC_VIDEO_DEVICES:-}
# 实例资源相关(见 .env.exampleGPU 硬件编码默认关闭(避免 WSL2/虚拟 GPU 下 Xvnc 内存暴涨);
# 可选给每个实例设内存上限GiB0=不限制watchdog 双阈值soft 柔和自愈 / hard 强制重启)+ 巡检间隔。
- WOC_ENABLE_GPU=${WOC_ENABLE_GPU:-}
- WOC_INSTANCE_MEM_GB=${WOC_INSTANCE_MEM_GB:-}
- WOC_INSTANCE_MEM_SOFT_MB=${WOC_INSTANCE_MEM_SOFT_MB:-1500}
- WOC_INSTANCE_MEM_HARD_MB=${WOC_INSTANCE_MEM_HARD_MB:-2500}
- WOC_WATCHDOG_INTERVAL_SEC=${WOC_WATCHDOG_INTERVAL_SEC:-300}
# 设备伪装os-release 伪装成 deepin默认开=0 关恢复 Debian。详见 .env.example / doc/设备伪装.md。
- WOC_SPOOF_OS=${WOC_SPOOF_OS:-1}
# 登录会话时长(天,默认 30。会话已落盘持久化面板重启/自更新不再踢人。调小更安全、调大更省事。
- WOC_SESSION_DAYS=${WOC_SESSION_DAYS:-30}
# 拉取实例镜像的"无进度"超时(分钟,默认 5。NAS 直连 docker.io 卡死时据此快速失败而非无限转圈。
- WOC_PULL_STALL_MIN=${WOC_PULL_STALL_MIN:-5}
# 实例桌面深色:由面板顶栏的主题开关统一控制(管理员),持久化在 accounts.json无需在此配 env。
# 面板首个管理员账号(仅首次启动、无账号文件时写入;务必改掉默认密码)
- PANEL_ADMIN_USER=${WOC_USER:-admin}
- PANEL_ADMIN_PASSWORD=${WOC_PASSWORD:-wechat}
- PANEL_DATA=/data/accounts.json
# DNS-rebinding 防护:套 HTTPS 反代部署时把对外域名加进 .env详见 .env.example
# 默认仅放行 loopback + RFC1918 私网,直连 NAS / 局域网无需改动。
- PANEL_ALLOWED_HOSTS=${PANEL_ALLOWED_HOSTS:-}
# bridge 业务 API 的 M2M 鉴权 token(供外部系统如 ForcePilot 调用 /api/bridge/:id/*)
# 留空=仅允许管理员会话鉴权(兼容旧部署);配置后支持 Authorization: Bearer <token> 直连。
- WOC_BRIDGE_API_TOKEN=${WOC_BRIDGE_API_TOKEN:-}
# bridge 行为与好友自动通过相关配置:面板启动实例时透传给容器内的 bridge 进程。
- WOC_BRIDGE_SEND_DELAY_MS=${WOC_BRIDGE_SEND_DELAY_MS:-800}
- WOC_BRIDGE_MAX_CALLS_PER_SEC=${WOC_BRIDGE_MAX_CALLS_PER_SEC:-10}
- WOC_BRIDGE_MAX_BATCH_SIZE=${WOC_BRIDGE_MAX_BATCH_SIZE:-50}
- WOC_BRIDGE_POLL_INTERVAL_MS=${WOC_BRIDGE_POLL_INTERVAL_MS:-2000}
- WOC_AUTO_ACCEPT_ENABLED=${WOC_AUTO_ACCEPT_ENABLED:-false}
- WOC_AUTO_ACCEPT_ALL=${WOC_AUTO_ACCEPT_ALL:-false}
- WOC_AUTO_ACCEPT_WHITELIST_WXIDS=${WOC_AUTO_ACCEPT_WHITELIST_WXIDS:-}
- WOC_AUTO_ACCEPT_WHITELIST_NICKNAMES=${WOC_AUTO_ACCEPT_WHITELIST_NICKNAMES:-}
- WOC_AUTO_ACCEPT_KEYWORDS=${WOC_AUTO_ACCEPT_KEYWORDS:-}
- WOC_AUTO_ACCEPT_BLACKLIST_WXIDS=${WOC_AUTO_ACCEPT_BLACKLIST_WXIDS:-}
- WOC_AUTO_ACCEPT_BLACKLIST_NICKNAMES=${WOC_AUTO_ACCEPT_BLACKLIST_NICKNAMES:-}
- WOC_AUTO_ACCEPT_ALLOW_SCENES=${WOC_AUTO_ACCEPT_ALLOW_SCENES:-}
- WOC_AUTO_ACCEPT_POLL_INTERVAL=${WOC_AUTO_ACCEPT_POLL_INTERVAL:-3}
- WOC_UI_BACKEND=${WOC_UI_BACKEND:-flow}
- WOC_UI_DEBUG_SHOTS=${WOC_UI_DEBUG_SHOTS:-false}
# 纯坐标模式:=1 时 bridge 跳过 OpenCV 模板匹配,直接用窗口比例坐标定位 UI 元素。
# 适用于模板图像不可靠的场景,避免假匹配/假阳性。留空=用 OpenCV需正确模板
- WOC_DISABLE_OPENCV=${WOC_DISABLE_OPENCV:-1}
volumes:
# 面板账号数据(用户、实例元信息、密码哈希)
- ./data-panel:/data
# 面板经 docker 引擎创建/启动/删除微信实例容器、exec 触发下载、读取进度。
# 注意docker.sock 等同宿主 root 权限故实例增删仅限管理员docker API 绝不暴露给前端。
- /var/run/docker.sock:/var/run/docker.sock
# 摄像头自动探测(可选):把宿主 /dev 只读挂进来,面板据此发现 /dev/videoN 并映射给实例。
# 不想自动探测就删掉此行,改用上面的 WOC_VIDEO_DEVICES 显式指定。
- /dev:/host-dev:ro
ports:
- "${WOC_HTTP_PORT:-36080}:8080" # 面板 = 唯一对外入口
restart: unless-stopped