Giter VIP home page Giter VIP logo

rss-reader's Introduction

简述

实时展示rss订阅最新消息。

特性

  • 打包后镜像大小仅有约20MB,通过docker实现一键部署

  • 支持自定义配置页面数据自动刷新

  • 响应式布局,能够兼容不同的屏幕大小

  • 良好的SEO,首次加载使用模版引擎快速展示页面内容

  • 支持添加多个RSS订阅链接

  • 简洁的页面布局,可以查看每个订阅链接最后更新时间

  • 支持夜间模式

  • config.json配置文件支持热更新

2023年7月28日,进行了界面改版和升级

配置文件

配置文件位于config.json,sources是RSS订阅链接,示例如下

{
    "values": [
        "https://www.zhihu.com/rss",
        "https://tech.meituan.com/feed/",
        "http://www.ruanyifeng.com/blog/atom.xml",
        "https://feeds.appinn.com/appinns/",
        "https://v2ex.com/feed/tab/tech.xml",
        "https://www.cmooc.com/feed",
        "http://www.sciencenet.cn/xml/blog.aspx?di=30",
        "https://www.douban.com/feed/review/book",
        "https://www.douban.com/feed/review/movie",
        "https://www.geekpark.net/rss",
        "https://hostloc.com/forum.php?mod=rss&fid=45&auth=389ec3vtQanmEuRoghE%2FpZPWnYCPmvwWgSa7RsfjbQ%2BJpA%2F6y6eHAx%2FKqtmPOg"
    ],
    "refresh": 6,
    "autoUpdatePush": 7,
    "nightStartTime": "06:30:00",
    "nightEndTime": "19:30:00"
}
名称 说明
values rss订阅链接(必填)
refresh rss订阅更新时间间隔,单位分钟(必填)
autoUpdatePush 自动刷新间隔,默认为0,不开启。效果为前端每autoUpdatePush分钟自动更新页面信息,单位分钟(非必填)
nightStartTime 日间开始时间 ,如 06:30:00
nightEndTime 日间结束时间,如 19:30:00

使用方式

Docker部署

环境要求:Git、Docker、Docker-Compose

克隆项目

git clone https://github.com/srcrs/rss-reader

进入rss-reader文件夹,运行项目

docker-compose up -d

国内服务器将Dockerfile中取消下面注释使用 go mod 镜像

#RUN go env -w GO111MODULE=on && \
#    go env -w GOPROXY=https://goproxy.cn,direct

部署成功后,通过ip+端口号访问

nginx反代

这里需要注意/ws,若不设置proxy_read_timeout参数,则默认1分钟断开。静态文件增加gzip可以大幅压缩网络传输数据

server {
    listen 443 ssl;
    server_name rss.lass.cc;
    ssl_certificate  fullchain.cer;
    ssl_certificate_key lass.cc.key;
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    location / {
        proxy_pass  http://localhost:8080;
    }
    location /ws {
        proxy_pass http://localhost:8080/ws;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 300s;
    }
}

server {
    listen 80;
    server_name rss.lass.cc;
    rewrite ^(.*)$ https://$host$1 permanent;
}

rss-reader's People

Contributors

srcrs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rss-reader's Issues

能支持在ARM架构的服务器上执行吗?

不太确定是不是ARM服务器的原因,但报exec ./rss-reader: exec format error这个错误,排查了执行权限、端口号冲突的,都没有发现问题,所以来请教下

前端刷新需要增加下配置

因VPS在国外,前端刷新的体验非常不好,希望增加一个配置的地方。其实前端不刷新也没有关系的

优化文本溢出情况

大佬能不能优化下RSS条目标题的文本框,根据文本多少改变文本框高度,就像今日热榜那样的可以多行显示不截断

rss更新不及时

我不清楚它的更新逻辑是什么,是每次刷新页面吗,我订阅了好几个rss,但是无论我刷新多少次页面等多长时间自动刷新,下面的时间都不会更新,内容也不会更新,而rss已经更新了,能不能改成实时刷新的呢,或者等那个时间到了自动更新所有rss

[feature]前端配置订阅源

目前rss源是通过修改config.json来实现的,不方便之处:
1、需要ssh到服务器修改config
2、修改完成后还需重启docker容器

希望前端配置订阅源,实时前端刷新,那就很方便了

在移动设备中页面顶部的倒计时显示并卡住

在移动设备中,停止发送heartbeat,但是页面顶部的倒计时却显示并卡住。

是否可以考虑下countdown这块单独拿出来倒计时,只有当ws断开时,触发countdown停止?

          if (!isMobile && this.autoUpdatePush > 0) {
            setInterval(sendHeartbeat, 60000);
            setInterval(() => {
              if (this.countdown > 0) {
                this.countdown--;
              } else {
                this.countdown = 60;
              }
            }, 1000);
          }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.