Skip to content

nickrunning/wechat-selkies

Repository files navigation

WeChat Selkies

GitHub Stars GitHub Forks GitHub Issues GitHub License Docker Pulls Docker Image Size GitHub Release GitHub Workflow Status GitHub Last Commit

中文 | English

基于 Docker 的微信/QQ Linux 客户端,使用 Selkies WebRTC 技术提供浏览器访问支持。

项目简介

本项目将官方微信/QQ Linux 客户端封装在 Docker 容器中,通过 Selkies 技术实现在浏览器中直接使用微信/QQ,无需在本地安装微信/QQ 客户端。适用于服务器部署、远程办公等场景。

升级注意事项

如果升级后部分功能缺失,请先清空本地挂载目录下的openbox目录(如./config/.config/openbox)。

仓库内置了上游微信版本自动检测机制:GitHub Actions 会定时检查官方 .deb 包版本,检测到变化后自动更新 versions/upstream.env 并触发镜像构建。

功能特性

  • 🌐 浏览器访问:通过 Web 浏览器直接使用微信,无需本地安装
  • 🐳 Docker化部署:简单的容器化部署,环境隔离
  • 🔒 数据持久化:支持配置和聊天记录持久化存储
  • 🎨 中文支持:完整的中文字体和本地化支持,支持本地中文输入法
  • 🖼️ 图片复制:支持通过侧边栏面板开启图片复制
  • 📁 文件传输:支持通过侧边栏面板进行文件传输
  • 🖥️ AMD64和ARM64架构支持:兼容主流CPU架构
  • 🔧 硬件加速:可选的 GPU 硬件加速支持
  • 🪟 窗口切换器:左上角增加切换悬浮窗,方便切换到后台窗口,为后续添加其它功能做基础
  • 🤖 自动启动:可配置自动启动微信和QQ客户端(可选)
  • 📋 桌面快捷方式集成:自动扫描 ~/Desktop/ 下的 .desktop 文件并添加到右键菜单,方便启动第三方应用(如通过 proot-apps 安装的应用)
  • 📂 文件管理器:内置 PCManFM 轻量文件管理器,右键菜单即可启动,方便管理容器内文件

截图展示

微信截图 QQ截图

快速开始

环境要求

  • Docker
  • Docker Compose
  • 支持WebRTC的现代浏览器(Chrome、Firefox、Safari等)

快速部署

  1. 直接使用已构建的镜像进行快速部署

GitHub Container Registry镜像:

docker run -it -p 3001:3001 -v ./config:/config --device /dev/dri:/dev/dri ghcr.io/nickrunning/wechat-selkies:latest

Docker Hub镜像:

docker run -it -p 3001:3001 -v ./config:/config --device /dev/dri:/dev/dri nickrunning/wechat-selkies:latest

精简版镜像:如果只需要微信(不含 QQ 和文件管理器),可使用 minimal 标签,镜像体积更小:

docker run -it -p 3001:3001 -v ./config:/config --device /dev/dri:/dev/dri ghcr.io/nickrunning/wechat-selkies:minimal

精简版也支持版本号标签,如 :1.2.3-minimal:1.2-minimal,方便锁定特定版本。

  1. 访问微信

    在浏览器中访问:https://localhost:3001https://<服务器IP>:3001

    注意: 映射3000端口用于HTTP访问,3001端口用于HTTPS访问,建议使用HTTPS。

Docker Compose 部署

  1. 创建项目目录并进入

    mkdir wechat-selkies
    cd wechat-selkies
  2. 创建 docker-compose.yml 文件

     services:
       wechat-selkies:
         image: nickrunning/wechat-selkies:latest    # or ghcr.io/nickrunning/wechat-selkies:latest
         container_name: wechat-selkies
         ports:
           - "${HTTP_PORT:-3000}:3000"
           - "${HTTPS_PORT:-3001}:3001"
         restart: unless-stopped
         volumes:
           - ./config:/config
         devices:
           - /dev/dri:/dev/dri
         environment:
           - PUID=${PUID:-1000}
           - PGID=${PGID:-100}
           - TZ=Asia/Shanghai
           - LC_ALL=zh_CN.UTF-8
           - AUTO_START_WECHAT=true
           - AUTO_START_QQ=false
           - CUSTOM_USER=${CUSTOM_USER:-}
           - PASSWORD=${PASSWORD:-}
         shm_size: "${SHM_SIZE:-1gb}"
  3. 创建 .env 文件(可选)

    复制 .env.example 并按需修改,未设置的变量将使用默认值:

    cp .env.example .env

    .env 文件示例:

    HTTP_PORT=3000
    HTTPS_PORT=3001
    PUID=1000
    PGID=100
    # CUSTOM_USER=
    # PASSWORD=
    SHM_SIZE=1gb
  4. 启动服务

    docker compose up -d

源码部署

  1. 克隆项目

    git clone https://github.com/nickrunning/wechat-selkies.git
    cd wechat-selkies
  2. 启动服务

    docker compose up -d
  3. 访问微信

    在浏览器中访问:https://localhost:3001https://<服务器IP>:3001

构建精简版:源码部署时可通过 build-arg 构建仅含微信的精简镜像:

docker build --build-arg INSTALL_QQ=false --build-arg INSTALL_PCMANFM=false -t wechat-selkies:minimal .

配置说明

更多自定义配置请参考 Selkies Base Images from LinuxServer

Docker Hub 推送配置

本项目支持同时推送到 GitHub Container Registry 和 Docker Hub。如需启用 Docker Hub 推送功能,请在仓库下添加Environment Secrets和Environment Variables:

Environment Secrets:

  • DOCKERHUB_USERNAME: 你的 Docker Hub 用户名
  • DOCKERHUB_TOKEN: 你的 Docker Hub Access Token Environment Variables:
  • ENABLE_DOCKERHUB: 设置为 true 来启用 Docker Hub 推送

环境变量配置

docker-compose.yml 中可以配置以下环境变量,支持通过 .env 文件覆盖带有 ${VAR:-default} 的配置项:

变量名 默认值 说明
TITLE WeChat Selkies Web UI 标题
PUID 1000 用户 ID
PGID 100 组 ID
TZ Asia/Shanghai 时区设置
LC_ALL zh_CN.UTF-8 语言环境
CUSTOM_USER - 自定义用户名(推荐设置)
PASSWORD - Web UI 访问密码(推荐设置)
AUTO_START_WECHAT true 是否自动启动微信客户端
AUTO_START_QQ false 是否自动启动 QQ 客户端

端口配置

  • 3001: Web UI 访问端口

数据卷挂载

  • ./config:/config: 微信配置和数据持久化目录

注意: 如果升级后右键菜单缺少 WeChat 相关选项,请先清空本地挂载目录下的openbox目录(如./config/.config/openbox)。

安装第三方应用(如 Telegram)

本项目支持通过 proot-apps 安装第三方 Linux 应用。以 Telegram 为例:

  1. 在浏览器中打开容器桌面
  2. 点击左侧 侧边栏应用程序(Applications)
  3. 在应用列表中找到 Telegram
  4. 点击 安装(Install)按钮,等待安装完成

安装完成后,应用快捷方式会自动出现在 ~/Desktop/ 目录下,右键菜单会自动刷新,无需重启容器即可从菜单中启动该应用。

提示: 如需卸载应用,同样通过侧边栏 → 应用程序,选中对应应用后点击 卸载(Uninstall)即可,右键菜单会自动更新。

高级配置

硬件加速

如果您的系统支持 GPU 硬件加速,Docker Compose 配置中已包含相关设备映射:

devices:
  - /dev/dri:/dev/dri

目录结构

wechat-selkies/
├── docker-compose.yml          # Docker Compose 配置文件
├── .env.example                # 环境变量示例文件
├── Dockerfile                  # Docker 镜像构建文件
├── LICENSE                     # License
├── README.md                   # 项目说明文档
├── config/                     # 配置和数据持久化目录
└── root/                       # 容器初始化文件
    ├── defaults/
    │   └── autostart           # 自动启动配置
    └── wechat.png              # 微信图标

故障排除

更新微信/QQ版本

当微信或QQ提示"版本过期"时,只需重新拉取最新镜像并重建容器即可,聊天记录和配置不受影响:

# 使用预构建镜像
docker compose pull && docker compose up -d

# 使用源码构建
git pull && docker compose up -d --build

注意: 微信和QQ的安装包 URL 指向官方最新版本,重新构建镜像时会自动下载最新版。

对于仓库维护者,当前自动化流程如下:

  1. Detect Upstream Package Updates 每 6 小时检查一次微信官方安装包版本,也支持手动触发
  2. 如果检测到版本号或安装包哈希变化,工作流会更新 versions/upstream.env
  3. 该文件变更提交到 master 后,会自动触发 Build and Publish Docker Image

版本状态文件位于 versions/upstream.env,当前记录了:

  • 微信 amd64/arm64 下载地址
  • 微信 amd64/arm64 解析出的版本号
  • 微信 amd64/arm64 安装包 SHA256
  • 最近一次发生变更的检测时间

常见问题

  1. 无法访问 Web UI
    • 检查端口 3001 是否被占用
    • 确认 Docker 容器正常运行:docker ps

日志查看

查看容器运行日志:

docker compose logs -f wechat-selkies

技术架构

  • 基础镜像ghcr.io/linuxserver/baseimage-selkies:ubuntunoble
  • 微信客户端:官方微信 Linux 版本
  • Web 技术:Selkies WebRTC
  • 容器化:Docker + Docker Compose

贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支:git checkout -b feature/your-feature
  3. 提交更改:git commit -am 'Add some feature'
  4. 推送分支:git push origin feature/your-feature
  5. 提交 Pull Request

许可证

本项目采用 MIT License 开源协议。详见 LICENSE 文件。

📜 许可证说明

  • 项目许可证: MIT License - 宽松的开源许可证
  • 依赖项说明: 本项目使用 LinuxServer.io baseimage-selkies 作为基础镜像
  • 许可证兼容性: 由于本项目仅使用基础镜像而未修改其源码,根据容器化软件的许可证实践,可以采用MIT许可证
  • 源码开放: 完整项目源代码在 GitHub 上公开:https://github.com/nickrunning/wechat-selkies

免责声明与版权声明

🚨 重要声明

本项目与腾讯公司无任何关联,属于独立的第三方开源项目。

📋 版权声明

  • 微信®腾讯公司 的注册商标和版权作品
  • 本项目中使用的微信相关图标、logo 等视觉元素的版权归腾讯公司所有
  • 本项目仅为技术展示和学习目的,不用于商业用途
  • 如有版权争议,将立即移除相关内容

⚖️ 法律合规

  • 本项目严格遵守相关法律法规和用户协议
  • 用户使用本项目时应遵守当地法律法规
  • 本项目不对用户的使用行为承担法律责任
  • 如腾讯公司认为存在侵权行为,请联系我们立即处理

🎯 使用条款

  • 本项目仅供学习、研究和个人使用
  • 禁止用于任何商业目的或盈利活动
  • 用户应自行承担使用风险和法律责任
  • 请遵守微信用户协议和相关服务条款

相关链接

Star History

Star History Chart

About

基于Selkies的Linux网页版微信/QQ/Telegram,支持本地中文输入法,支持三方应用,支持AMD64和ARM64。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors