研究搭建RSS服务rsshub

17 次阅读

本文最后更新于 2025年10月20日。

订阅

https://rsshub.pseudoyu.com/telegram/channel/awesomeRSSHub

https://wechat2rss.bestblogs.dev/feed/2d790e38f8af54c5af77fa5fed687a7c66d34c22.xml

rsshub

https://docs.rsshub.app/routes/popular
指南
https://docs.rsshub.app/zh/guide/

热门路由

https://docs.rsshub.app/zh/routes/popular

安装

https://docs.rsshub.app/deploy/#install

我的编排

networks:
    wsl-network:
        external: true

services:
    rsshub:
        # two ways to enable puppeteer:
        # * comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled
        # * (consumes more disk space and memory) leave everything unchanged
        image: diygod/rsshub # or ghcr.io/diygod/rsshub
        restart: unless-stopped
        networks:
            - wsl-network           
        ports:
            - "1200:1200"
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: "redis://redis:6379/"
            PUPPETEER_WS_ENDPOINT: "ws://browserless:3000" # marked
        healthcheck:
            test: ["CMD", "curl", "-f", "http://localhost:1200/healthz"]
            interval: 30s
            timeout: 10s
            retries: 3

官方编排

services:
    rsshub:
        # two ways to enable puppeteer:
        # * comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled
        # * (consumes more disk space and memory) leave everything unchanged
        image: diygod/rsshub # or ghcr.io/diygod/rsshub
        restart: always
        ports:
            - "1200:1200"
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: "redis://redis:6379/"
            PUPPETEER_WS_ENDPOINT: "ws://browserless:3000" # marked
        healthcheck:
            test: ["CMD", "curl", "-f", "http://localhost:1200/healthz"]
            interval: 30s
            timeout: 10s
            retries: 3
        depends_on:
            - redis
            - browserless # marked

    browserless: # marked
        image: browserless/chrome # marked
        restart: always # marked
        ulimits: # marked
            core: # marked
                hard: 0 # marked
                soft: 0 # marked
        healthcheck: # marked
            test: ["CMD", "curl", "-f", "http://localhost:3000/pressure"] # marked
            interval: 30s # marked
            timeout: 10s # marked
            retries: 3 # marked

    redis:
        image: redis:alpine
        restart: always
        volumes:
            - redis-data:/data
        healthcheck:
            test: ["CMD", "redis-cli", "ping"]
            interval: 30s
            timeout: 10s
            retries: 5
            start_period: 5s

volumes:
    redis-data: