mirror of
https://github.com/Gloridust/WechatOnCloud.git
synced 2026-06-16 19:53:53 +08:00
77 lines
4.9 KiB
Bash
77 lines
4.9 KiB
Bash
# 复制本文件为 .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=
|
||
|
||
# ── 实例资源 / 稳定性 ───────────────────────────────────────
|
||
# GPU 硬件编码:baseimage 检测到 /dev/dri/renderD* 时会给 Xvnc 加 -hw3d(GPU 加速编码)。
|
||
# 在 WSL2 / 虚拟 GPU(如 Docker Desktop on Windows)下,该路径会导致 Xvnc 内存持续膨胀
|
||
# (实测 21 小时涨到 ~9GB)。本项目已强制软件渲染(LIBGL_ALWAYS_SOFTWARE=1),hw3d 对微信
|
||
# 这类静态界面收益甚微,故默认关闭。仅在你有真实可用的 GPU 且确认无内存问题时再设为 1 启用。
|
||
WOC_ENABLE_GPU=
|
||
|
||
# 每个微信实例容器的内存上限(GiB)。默认空 = 不限制(与旧版一致)。
|
||
# 作为兜底:万一某进程异常增长,命中上限时容器内 OOM 杀进程、由 s6 自动重启 VNC,
|
||
# 避免拖垮整台宿主。常规使用单实例约需 1~1.5GiB,设 3~4 较稳妥。
|
||
WOC_INSTANCE_MEM_GB=
|
||
|
||
# ── 自愈 watchdog(应对 KasmVNC/Xvnc 长跑内存泄漏) ───────────
|
||
# 实测 Xvnc 长跑 24h 可膨胀到 ~9GiB,原因在 KasmVNC/Xvnc 自身的 framebuffer / 软渲染 cache
|
||
# 累积,不归本项目控制。面板内置一个 watchdog:周期性检查每个 running 实例的 working set
|
||
# 内存(= docker stats 显示值),按两档阈值(这里设全局默认;每个实例可在「管理 → 实例卡片
|
||
# → 安全」按钮里单独覆盖)触发主动 stop + run(聊天数据在卷里、登录态本来也会定期失效,
|
||
# 可控时机自愈优于撑到 OOM):
|
||
#
|
||
# soft 超过且【当前没人在远程会话】才重启 → 柔和自愈,不打扰使用者
|
||
# hard 超过即重启(无视会话),防止 OOM 拖垮宿主
|
||
#
|
||
# WOC_INSTANCE_MEM_SOFT_MB soft 阈值(MiB),默认 1500
|
||
# WOC_INSTANCE_MEM_HARD_MB hard 阈值(MiB),默认 2500(兼容旧名 WOC_INSTANCE_MEM_LIMIT_MB)
|
||
# WOC_WATCHDOG_INTERVAL_SEC 巡检间隔秒,默认 300(5 分钟);最小 60;0 = 关闭整个 watchdog
|
||
#
|
||
# 调参建议:日常活跃单实例约 1500 MiB;soft 应略高于此(如 2000);hard 远低于宿主可用内存。
|
||
WOC_INSTANCE_MEM_SOFT_MB=1500
|
||
WOC_INSTANCE_MEM_HARD_MB=2500
|
||
WOC_WATCHDOG_INTERVAL_SEC=300
|