前言

最新一期《科技爱好者周刊(第 291 期)》介绍了 WeWe RSS 这个服务:

全文订阅微信公众号的一个本地服务,可以生成公众号的 RSS,基于微信读书。

根据 github 上的文档,该服务可以通过 ZeaburRailway 等平台一键部署,尝试过后发现都需要付费。

正好有一台服务器,可以尝试用 Docker Compose 部署,由于官方文档写的比较简单以及我对 Docker 不太熟悉,踩了一些小坑,所以将过程记录下来。

用 docker 部署有两个版本,分别是 Sqlite 和 Mysql 版本,考虑到 Mysql 还要多装一个 Mysql,所以我选择了一键安装 Sqlite 的版本。

Docker 命令

官方示例

docker run -d \
  --name wewe-rss \
  -p 4000:4000 \
  -e DATABASE_TYPE=sqlite \
  -e AUTH_CODE=123567 \
  -v $(pwd)/data:/app/data \
  cooderl/wewe-rss-sqlite:latest

环境变量

environment 配置对应 docker run -e

volumes 配置对应 docker run -v

version: '3.9'

services:
  app:
    image: cooderl/wewe-rss-sqlite:latest
    ports:
      - 4000:4000
    environment:
      # 数据库连接地址
      # - DATABASE_URL=file:../data/wewe-rss.db
      - DATABASE_TYPE=sqlite
      # 服务接口请求授权码
      - AUTH_CODE=123567
      # 提取全文内容模式
      # - FEED_MODE=fulltext
      # 定时更新订阅源Cron表达式
      # - CRON_EXPRESSION=35 5,17 * * *
      # 服务接口请求限制,每分钟请求次数
      # - MAX_REQUEST_PER_MINUTE=60
      # 外网访问时,需设置为服务器的公网 IP 或者域名地址
      # - SERVER_ORIGIN_URL=http://localhost:4000

    volumes:
      # 映射数据库文件存储位置,容器重启后不丢失
      - ./data:/app/data

修改配置

如果想要修改配置,只要删除容器,再 docker run + 新的参数,运行容器即可。删除容器前需要先停止容器,如下:

docker stop wewe-rss
docker rm wewe-rss
docker run -d 参数...

或者用强制删除命令,可以少输入一次

docker rm -f wewe-rss
docker run -d 参数...

我的配置

docker run -d \
  --name wewe-rss \
  -p 4000:4000 \
  -e DATABASE_TYPE=sqlite \
  -e AUTH_CODE=xxxxxxx \
  -e SERVER_ORIGIN_URL=http://foxistudy.com:4000 \
  -e MAX_REQUEST_PER_MINUTE=60 \
  -e "CRON_EXPRESSION=0 7-23/2 * * *" \
  -v /root/wewe-rss/data:/app/data \
  cooderl/wewe-rss-sqlite:latest

官方示例比较简单,结合环境变量的文档,我在官方示例的基础上做出了一些修改。

  1. 官方示例最后一句 -v $(pwd)/data:/app/data 中 $(pwd) 是当前路径,我改为了绝对路径,-v /roor/wewe-rss/data:/app/data,这样在任何目录下都可以用docker命令启动。
  2. -e AUTH_CODE=xxxxxxx 改成了自己的密码。如果服务部署在公网上,切勿使用默认或者简单的密码,以免被盗用。
  3. -e SERVER_ORIGIN_URL=http://foxistudy.com:4000 地址设置为自己的域名,这样可以外网访问**(服务器也要将端口打开)**。
  4. -e "CRON_EXPRESSION=0 7-23/2 * * *" 定时更新订阅源Cron表达式,我的表达式为「7到23点,每隔2小时更新」,可以用在线 cron 表达式生成器生成。cron 表达式中的符号会影响 docker 的命令,所以要将整个参数语句用双引号引起来。

使用方式

转自:官方文档#使用方式

  • 进入账号管理,点击添加账号,微信扫码登录微信读书账号。

img

  • 进入公众号源,点击添加,通过提交微信公众号分享链接,订阅微信公众号。 (添加频率过高容易被封控,等24小时解封)

img