Home
Softono

Wechat Selkies

Open source MIT Python
2.8K
Stars
250
Forks
3
Issues
13
Watchers
3 months
Last Commit

 About Wechat Selkies

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

Platforms

Web Self-hosted Docker Linux

Languages

Python

Need Help Installing Wechat Selkies?

We provide expert installation service for this software. Our team will install, configure, and secure Wechat Selkies on your server. plans start at just $30.

Wechat Selkies

View on GitHub

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:3001 或 https://<服务器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:3001 或 https://<服务器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