使用 docker 运行 efb

前言

之前运行 efb 的服务器突然无法连接,怀疑服务器被攻破,无奈之下重装了系统,导致 efb 的所有配置均丢失,特此记录一下最新的用 docker 安装 efb 过程。之前的安装方式可见 CentOS 7 安装 ehforwarderbot V2 来收发微信

安装 docker

如果已安装 docker,可以跳过该步骤

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

构建镜像

  1. 克隆仓库

    git clone https://github.com/jiz4oh/ehforwarderbot.git ehforwarderbot
  2. 构建自己的 ehforwarderbot 镜像

    docker build ehforwarderbot/ -t efb

Tips:

  • 该镜像只安装了 efb-telegram-masterefb-wechat-slave 最新版,如果需要额外的频道可以通过修改 Dockerfile 完成。
  • 截至目前(2023.01.16), efb-wechat-slave 尚未发布 uos 补丁的新版本,故采用直接使用 github 包的形式

更新配置

  1. (required) 将 telegram bot token 更新到 profiles/default/blueset.telegram/config.yamltoken

  2. (required) 获取自己 telegram 账户的 userid,并更新到 profiles/default/blueset.telegram/config.yamladmins

  3. (optional) 根据喜好更新 efb-telegram-master 的配置 profiles/default/blueset.telegram/config.yaml

  4. (optional) 根据喜好更新 efb-wechat-slave 的配置 profiles/default/blueset.wechat/config.yaml

    • 如果在 profiles/default/config.yaml 中有多个 wechat slave,需要设置多个 wechat 配置目录,比如我有两个微信号:

      master_channel: "blueset.telegram"
      slave_channels:
      - "blueset.wechat"
      - "blueset.wechat#jiz4oh"

      需要有两个 wechat 目录

      `-- profiles
          `-- default
              |-- blueset.telegram
              |   |-- config.yaml
              |-- blueset.wechat
              |   |-- config.yaml
              |-- blueset.wechat#jiz4oh
              |   |-- config.yaml
              `-- config.yaml

启动 efb

  1. 启动镜像

    docker run -d --name=efb --restart=always -v $PWD/:/data/ efb
  2. 扫码登录

    docker logs -f efb

Tips:

  • 我的微信有时候没办法从 tg 端重新登录,必须重启 efb 才能扫码成功,通常我使用

    docker rm -f efb >/dev/null 2>&1 && docker run -d --name=efb --restart=always -v $PWD/:/data/ efb

    来快速重启 efb