Files
WechatOnCloud/.env.example
Gloridust 17ba168764 feat: 音视频/文件传输 + 产品 UX 改进 + 镜像源可切换
媒体链路(生产 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>
2026-05-31 10:56:33 +08:00

46 lines
2.7 KiB
Plaintext
Raw 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.
# 复制本文件为 .env 即可覆盖默认配置。全部可选——不建 .env 也能直接 `docker compose up -d`。
# 面板首个管理员账号 / 密码(仅首次启动、无账号文件时写入)。强烈建议改掉默认密码!
WOC_USER=admin
WOC_PASSWORD=wechat
# 镜像版本:默认 latest上线后建议钉到具体版本如 1.0.0,注意不带 v以便可控升级。
# 同时作用于面板镜像和新建微信实例所用镜像。
WOC_VERSION=latest
# 镜像源前缀registry + 命名空间)。默认 GHCR 官方。
# 中国大陆网络拉 ghcr.io 常 TLS 超时,可改用 GHCR 反代镜像前提GHCR 包已设为 Public
# WOC_IMAGE_PREFIX=ghcr.nju.edu.cn/gloridust # 南京大学镜像站反代 ghcr.io较稳定
# 反代会把 ghcr.io/gloridust/xxx 映射为 <反代>/gloridust/xxx。
# 若用自己的国内仓库(阿里云 ACR / 腾讯 TCR / 华为 SWR填该仓库的完整前缀即可例如
# WOC_IMAGE_PREFIX=registry.cn-hangzhou.aliyuncs.com/你的命名空间
WOC_IMAGE_PREFIX=ghcr.io/gloridust
# 宿主用户 uid/gid飞牛上用 `id` 命令查看;单用户 NAS 一般是 1000
# 透传给每个微信实例容器,决定面板数据与微信数据卷的属主。
WOC_PUID=1000
WOC_PGID=1000
# 时区
WOC_TZ=Asia/Shanghai
# 面板对外端口(宿主侧,默认用冷门端口避免冲突;容器内固定 8080
# 面板是唯一对外入口;微信实例不直接对宿主暴露,由面板反向代理。
WOC_HTTP_PORT=36080
# ── 音频 / 麦克风 / 摄像头 ───────────────────────────────────
# 音频(听):开箱即用,进入桌面后点 KasmVNC 左侧工具条的扬声器开启。
# 麦克风(说) / 摄像头(视频):浏览器要求"安全上下文",即必须通过 HTTPS 访问面板
# (或 localhost。生产环境务必给面板套 HTTPS反代/证书),否则浏览器会禁用麦克风与摄像头。
#
# 摄像头还需要宿主提供一个虚拟视频设备v4l2loopback
# 1) 宿主安装并加载内核模块:
# Ubuntu/Debian: sudo apt install v4l2loopback-dkms && sudo modprobe v4l2loopback
# (飞牛/其它发行版若自带 v4l2loopback 同理 modprobe没有则摄像头不可用其余功能正常
# 2) 确认出现了 /dev/videoN 设备。
# 3) 二选一让实例容器拿到该设备:
# a) 自动:保留 compose 里的 `/dev:/host-dev:ro` 挂载,面板会自动探测并映射;
# b) 显式:在下面列出设备(逗号分隔),并可删掉那条 /host-dev 挂载。
# 留空 = 不映射摄像头(音频/麦克风不受影响)。
WOC_VIDEO_DEVICES=