免费、开源的微信公众号订阅方式,支持私有化部署、微信公众号 RSS 生成 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cooder
V2EX    分享发现

免费、开源的微信公众号订阅方式,支持私有化部署、微信公众号 RSS 生成

  •  3
     
  •   cooder 2024-02-29 01:26:11 +08:00 10473 次点击
    这是一个创建于 591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    WeWe RSS - 更好的微信公众号订阅方式。

    主界面

    GitHub 地址

    https://github.com/cooderl/wewe-rss

    文档还在完善中,各位老铁如果觉得不错,点点关注,点点赞~

    第 1 条附言    2024-02-29 13:44:15 +08:00
    支持 docker compose 部署了!

    version: '3.9'

    services:
    db:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    environment:
    # 请修改为自己的密码
    MYSQL_ROOT_PASSWORD: 123456
    TZ: 'Asia/Shanghai'
    MYSQL_DATABASE: 'wewe-rss'
    # ports:
    # - 13306:3306
    volumes:
    - db_data:/var/lib/mysql
    healthcheck:
    test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
    timeout: 45s
    interval: 10s
    retries: 10

    server:
    image: cooderl/wewe-rss-server:latest
    ports:
    - 4000:4000
    depends_on:
    db:
    condition: service_healthy
    environment:
    # 数据库连接地址
    - DATABASE_URL=mysql://root:123456@db:3306/wewe-rss?schema=public&connect_timeout=30&pool_timeout=30&socket_timeout=30
    # 服务接口请求授权码
    - AUTH_CODE="123567"
    # 服务接口请求限制,每分钟请求次数
    - MAX_REQUEST_PER_MINUTE=60
    # 外网访问时,需设置为服务器的公网 IP 或者域名地址
    - SERVER_ORIGIN_URL=http://localhost:4000

    web:
    image: cooderl/wewe-rss-web:latest
    ports:
    - 3000:3000
    environment:
    # 同 SERVER_ORIGIN_URL
    - NEXT_PUBLIC_SERVER_ORIGIN_URL=http://localhost:4000

    networks:
    wewe-rss:

    volumes:
    db_data:
    29 条回复    2024-03-23 08:31:52 +08:00
    LeslieLeung
        1
    LeslieLeung  
       2024-02-29 01:48:47 +08:00
    看起来后期能支持全文阅读的样子,已经 star 支持。

    话说之前有过很多,例如基于爬虫,基于安卓采集器这些的方法,最后好像都避免不了失效。
    cooder
        2
    cooder  
    OP
       2024-02-29 08:11:54 +08:00
    @LeslieLeung 感谢支持。这个基于微信读书同步公众号文章,我自己稳定使用几年了
    cue
        3
    cue  
       2024-02-29 08:33:20 +08:00 via iPhone
    等 docker
    zsanshao
        4
    zsanshao  
       2024-02-29 08:34:08 +08:00
    已 star ,希望尽早上 docker
    QUC062IzY3M1Y6dg
        5
    QUC062IzY3M1Y6dg  
       2024-02-29 09:17:48 +08:00
    已 star ,等一个 docker 部署命令
    u1s1a
        6
    u1s1a  
       2024-02-29 13:42:52 +08:00
    看着不错,本地搭个玩玩
    cooder
        7
    cooder  
    OP
       2024-02-29 13:43:12 +08:00
    @cue
    @zsanshao
    @shuxhan

    docker 加上了
    july1995
        8
    july1995  
       2024-02-29 15:04:42 +08:00
    支持一下 已 star
    barfi1316
        9
    barfi1316  
       2024-02-29 22:09:40 +08:00
    clone 已经在本地跑起来了,生成的 rss 导入到 NetNewsWire 里,文章列表是空的呀。
    jeanz
        10
    jeanz  
       2024-02-29 23:02:46 +08:00 via Android
    后续能支持把 MySQL 换成 sqllite 吗
    cooder
        11
    cooder  
    OP
       2024-03-01 08:24:08 +08:00
    @jeanz 可以的,我抽空改一下打个镜像
    cooder
        12
    cooder  
    OP
       2024-03-01 08:26:36 +08:00
    @barfi1316 这..我看看咋回事
    cooder
        13
    cooder  
    OP
       2024-03-01 10:04:50 +08:00
    @barfi1316 拉一下最新代码试试
    Alethea
        14
    Alethea  
       2024-03-01 14:42:37 +08:00
    看了一下 server 的代码,好像是转发了 https://weread.111965.xyz 的请求,考虑开源一下服务器的这个代码吗?
    barfi1316
        15
    barfi1316  
       2024-03-01 15:53:07 +08:00
    @cooder 更新了,还是没有。
    @Alethea 同问。
    xiaozhubin
        16
    xiaozhubin  
       2024-03-01 17:04:29 +08:00
    以前直接用过微信读书订阅公众号,好像公众号文章更新不是实时的?
    不过,既然都用 rss 了,实不实时也无所谓了。周末试一下。
    ahsuia
        17
    ahsuia  
       2024-03-01 17:37:15 +08:00
    docker compose 部署的时候出现 werss-web-1 出现如下问题:

    > [email protected] start
    > next start
    ▲ Next.js 14.1.0
    - Local: http://localhost:3000
    Error: Specified basePath has to start with a /, found "'/'"
    at assignDefaults (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/config.js:308:19)
    at loadConfig (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/config.js:768:32)
    at async initialize (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/lib/router-server.js:51:20)
    at async Server.<anonymous> (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/lib/start-server.js:246:36)
    Error: Specified basePath has to start with a /, found "'/'"
    at assignDefaults (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/config.js:308:19)
    at loadConfig (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/config.js:768:32)
    at async initialize (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/lib/router-server.js:51:20)
    at async Server.<anonymous> (/app/web/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/next/dist/server/lib/start-server.js:246:36)
    ahsuia
        18
    ahsuia  
       2024-03-01 18:00:54 +08:00
    @ahsuia 按楼主 docker-compose.yml 的文件部署就行,github 上拉下来的 docker-compose.yml 里有个 base_path: '/',这一行注释掉。运行正常。
    另,领主可否考虑加一个打标签功能,用来分类不同的公众号
    balancircle
        19
    balancircle  
       2024-03-01 18:14:26 +08:00
    可以粘个正确格式的吗?想要小手一粘就能用的那种
    cooder
        20
    cooder  
    OP
       2024-03-01 21:07:15 +08:00
    @ahsuia nextjs 打包的镜像问题太多,去掉了。换了新的镜像,看一下 readme
    cooder
        21
    cooder  
    OP
       2024-03-01 21:08:03 +08:00
    @balancircle

    ```yaml
    version: '3.9'

    services:
    db:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    environment:
    # 请修改为自己的密码
    MYSQL_ROOT_PASSWORD: 123456
    TZ: 'Asia/Shanghai'
    MYSQL_DATABASE: 'wewe-rss'
    # ports:
    # - 13306:3306
    volumes:
    - db_data:/var/lib/mysql
    healthcheck:
    test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
    timeout: 45s
    interval: 10s
    retries: 10

    server:
    image: cooderl/wewe-rss:latest
    ports:
    - 4000:4000
    depends_on:
    db:
    condition: service_healthy
    environment:
    # 数据库连接地址
    - DATABASE_URL=mysql://root:123456@db:3306/wewe-rss?schema=public&connect_timeout=30&pool_timeout=30&socket_timeout=30
    # 服务接口请求授权码
    - AUTH_CODE=123567
    # 提取全文内容模式
    # - FEED_MODE=fulltext
    # 服务接口请求限制,每分钟请求次数
    - MAX_REQUEST_PER_MINUTE=60
    # 外网访问时,需设置为服务器的公网 IP 或者域名地址
    - SERVER_ORIGIN_URL=http://localhost:4000

    networks:
    wewe-rss:

    volumes:
    db_data:

    ```
    vicat
        22
    vicat  
       2024-03-06 09:58:06 +08:00
    你做的好啊 op ,你做的太好了
    JohnChang
        23
    JohnChag  
       2024-03-08 21:27:40 +08:00
    请教 OP

    1 、在 Github 分叉。
    2 、直接在 zeabur 选择自己的分叉部署。

    显示部署成功,但是访问 url 显示
    502 : SERVICE_UNAVAILABLE
    Code: SERVICE_UNAVAILABLE
    ID: hkg1::6501b857-bec6-4140-8de5-b8e425c9043a


    是需要什么额外的设置吗?

    感觉很实用但是没法使用有点抓耳挠腮。
    JohnChang
        24
    JohnChang  
       2024-03-08 22:18:16 +08:00
    用 docker 部署成功了,估计是因为 zeabur 没有 mysql ?
    toyqiu
        25
    toyqiu  
       2024-03-09 00:04:19 +08:00
    @JohnChang 部署成功,可以登陆账号吗?
    JohnChang
        26
    JohnChang  
       2024-03-09 11:46:07 +08:00
    @toyqiu #25 可以呀
    icecream
        27
    icecream  
       2024-03-19 23:15:39 +08:00
    id(237051097): WeReadError401
    icecream
        28
    icecream  
       2024-03-20 09:03:50 +08:00
    点了立即更新,也不会拉取最新的文章是什么原因
    dvbs2000
        29
    dvbs2000  
       2024-03-23 08:31:52 +08:00
    建议 op 做一个 online 缓存中心,把用户的更新需求缓存起来,用户申请更新的时候如果缓存里有,就不必从服务器申请,直接推给用户
    这样可以大幅减少被 ban 的概率
    可以有更好的用户体验

    另外,缓存库也是有价值的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2705 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:52 PVG 17:52 LAX 02:52 JFK 05:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86