mirror of
https://github.com/Gloridust/WechatOnCloud.git
synced 2026-06-16 19:53:53 +08:00
17ba168764
媒体链路(生产 HTTPS 下可用,含降级) - 音频(听):PulseAudio + KasmVNC 工具条,开箱即用 - 麦克风(说):virtmic 管道源已就绪,运行时需 HTTPS(非 HTTPS 前端提示) - 摄像头(视频):docker.ts 条件化 v4l2 设备直通 + 加 video 组;无设备/无 HTTPS 时优雅降级,音频麦克风不受影响 - WOC_VIDEO_DEVICES 显式指定或经 /host-dev 自动探测 文件传输(原生拖拽) - 面板侧拖拽上传 + 下载:dockerode putArchive/getArchive 到实例 ~/Desktop(持久卷) - 纯 JS 单文件 tar 编解码(免依赖),文本/二进制均无损;全程走面板鉴权与权限校验 安全 & UX - 默认密码告警条 + mustChangePassword 追踪(兼容旧账号文件迁移) - 会话过期(401) 自动跳登录;桌面连接 loading 态 - 停止/未创建实例一键启动(新增 /api/admin/instances/:id/start) - 统一牛奶布艺弹窗 + Toast,替换 Admin 原生 alert/confirm/prompt - 密码可见切换;实例重命名;退出二次确认;空状态改用品牌终端图标 其它 - gen-icons 生成终端风格图标(此前仅空白绿块,影响 Docker/CI 产物) - 镜像源可切换 WOC_IMAGE_PREFIX(国内反代/ACR);品牌名「云微」 - 文档:.env.example / docker-compose 增加音视频(v4l2loopback/HTTPS)、镜像源、视频设备说明 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
2.6 KiB
YAML
43 lines
2.6 KiB
YAML
# WechatOnCloud —— 面板为唯一服务;微信实例由面板按需动态创建(docker run)。
|
|
# 面板挂载 docker.sock 来创建/启动/删除微信实例容器,并反向代理到它们的 KasmVNC。
|
|
# 镜像全部从 GHCR 拉取,无需本地构建。要改配置:复制 .env.example 为 .env 后修改。
|
|
services:
|
|
panel:
|
|
# 镜像源前缀默认 GHCR;大陆网络拉不动时改 .env 的 WOC_IMAGE_PREFIX 切到国内反代(见 .env.example)。
|
|
image: ${WOC_IMAGE_PREFIX:-ghcr.io/gloridust}/woc-panel:${WOC_VERSION:-latest}
|
|
container_name: woc-panel
|
|
# pull_policy 用默认(missing):本地已有同名镜像就直接用,没有才去 GHCR 拉。
|
|
# 这样「发布前本地自构建」与「线上拉取」都能用同一份 compose。
|
|
# 想强制更新到 GHCR 最新版:docker compose pull && docker compose up -d
|
|
|
|
environment:
|
|
- PORT=8080
|
|
# 新建微信实例时使用的镜像(多架构,amd64/arm64 自动匹配);前缀同样跟随 WOC_IMAGE_PREFIX。
|
|
- WOC_WECHAT_IMAGE=${WOC_IMAGE_PREFIX:-ghcr.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:-}
|
|
# 面板首个管理员账号(仅首次启动、无账号文件时写入;务必改掉默认密码)
|
|
- PANEL_ADMIN_USER=${WOC_USER:-admin}
|
|
- PANEL_ADMIN_PASSWORD=${WOC_PASSWORD:-wechat}
|
|
- PANEL_DATA=/data/accounts.json
|
|
|
|
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
|