sayue2019 / wechat-service-allin

35 stars 12 forks source link

WeChat Service In Docker

微信作为一个服务运行在 Docker 容器中。本项目旨在提供一个简易方式来构建和运行一个微信服务,它允许通过 Docker 容器注入不同版本的微信以及相关的第三方服务。 echo

功能

更新记录

2024年1月20日

2024年1月12日

常见错误

通常情况下,错误发生的原因是从 GitHub 下载的文件不完整,这通常是由于网络连接到 GitHub、Docker 以及在容器内使用 Python 进行安装过程中的网络不稳定导致的。建议准备稳定的网络代理,或者手动下载所需文件并解压到相应目录以解决这一问题。

目前支持第三方服务

快速开始

  1. 修改参数配置对应的版本
    修改build-injector-box.sh脚本中最顶部的配置
    
    wechat_version="3.9.2.23" # wechat版本
    injector_name="wechat-bot" # 需要注入的wechat服务,可选:comwechatrobot(3.7.0.30),wechat-bot(3.9.2.23), wxhelper(3.9.2.23)

2. **设置脚本权限**  
允许执行 `build-injector-box.sh` 脚本。
```sh
chmod +x build-injector-box.sh
  1. 构建注入器和微信服务
    运行脚本以构建和设置所需的 Docker 容器。

    ./build-injector-box.sh
  2. 启动服务
    使用 Docker Compose 启动服务。

    docker-compose up

配置选项

脚本说明

主脚本:build-injector-box.sh

此脚本是项目的核心,用于设置目录、更新 Git 仓库、下载文件、运行 VNC 授权、运行 HTTP 转发、选择注入器和构建 Docker 镜像。 脚测试环境为mac os和linux, 如果想在windows中运行,请安装Windows Subsystem for Linux (WSL)

运行依赖:

功能说明:

注意事项

目录结构和说明

本项目包含多个关键目录,每个目录都承担特定的功能和作用。以下是项目的主要目录结构及其说明:

bin_deps

此目录包含了所有必要的二进制依赖文件,如特定版本的微信机器人、DLL 文件等。根据不同的注入器选择,您可能需要从此目录中获取相应的文件。

forward

包含 HTTP 转发相关的脚本和可执行文件。这些文件用于设置和管理微信服务与外部通信的转发机制。

vnc

存放 VNC 服务相关的文件,如 HTML 页面、入口脚本和配置文件。VNC 服务用于远程访问和控制 Docker 容器中运行的微信实例。

docker-compose

此目录包含基于三种不同 DLL 钩子的 Docker Compose 配置文件。根据您选择的注入器类型(wechat-bot、wxhelper 或 ComWeChatRobot),您可以使用相应的 docker-compose.yaml 文件来启动和管理容器。

使用示例 docker-compose.yaml

version: "3.3"

services:
    wechat-service:
        image: "sayue/wechat-service-wechat-bot:latest"
        restart: unless-stopped
        container_name: "wechat-service-wechat-bot"
        environment:
            #vnc访问密码
            VNC_PASSWORD: "vncpass"
            TARGET_AUTO_RESTART: "yes"
            INJMON_LOG_FILE: "/dev/stdout"
            # dll注入状态判断接口
            INJ_CONDITION: "[  \"`ps -aux | grep funtool | grep -v grep`\" != ''  ] && exit 0"
            HOOK_PROC_NAME: "WeChat"
            TARGET_CMD: "wechat-start"
            HOOK_DLL: "auto.dll"
            #HTTP转发地址设置
            FORWARD_URL: "http://127.0.0.1:5555"
            #http转发端口设置
            LISTEN_PORT: "5999"
            #http访问密码设置
            ACCESS_PASSWORD: "wechat5999"
            FOR_CONDITION: "[ \"`sudo netstat -tunlp | grep 5999`\" != '' ] && exit 0"
            #optional INJMON_LOG_FILE: "/dev/null"
            #optional TARGET_LOG_FILE: "/dev/stdout"
        ports:
            - "8080:8080" # noVNC
            #- "19088:19088" # websocket server
            - "5999:5999" # forward server
            #- "5900:5900" # vnc server
        volumes:
              - "~/bread/.wechat/WeChat Files/:/home/app/WeChat Files/"
              - "~/bread/.wechat/Applcation Data/:/home/app/.wine/drive_c/users/user/Application Data/"
              - "~/bread/external:/home/app/external"
        extra_hosts:
            - "dldir1.qq.com:127.0.0.1"
        tty: true

#访问api,ACCESS_PASSWORD: wechat5999密码和端口自行修改
#http://localhost:5999/api/?type=0&password=wechat5999

QQ交流群:766687648

引用和参考

许可

请在使用本项目时遵守相应的许可协议。

贡献

欢迎通过 Pull Request 或 Issue 来贡献和提出建议。