类Twitter风格的RSS阅读器

news2024/11/15 2:06:58

在这里插入图片描述

本文完成于 2 月中旬,其中的反代还是 frp + npm 方案;

什么是 RSS ?

RSS 是用 PHPLaravelInertia.jsTailwindVue.js 编写的简单的类Twitter 风格的 RSS阅读器,支持 RSSATOM 格式。

命令行安装

在群晖上以 Docker 方式安装。

官方最新的镜像发布到了 ghcr.io,从版本看,目前最新的版本是 v1.2.0

发稿时,最新版本已经是 v1.3.0

SSH 客户端登录到群晖后,执行下面的命令拉取镜像

# 拉取镜像
docker pull ghcr.io/ssddanbrown/rss:latest

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/ssddanbrown/rss:latest

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/ssddanbrown/rss:latest ghcr.io/ssddanbrown/rss:latest

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/ssddanbrown/rss:latest

现在可以开始运行容器了

# 新建文件夹 rss 
mkdir -p /volume2/docker/rss

# 进入 rss 目录
cd /volume2/docker/rss

# 运行容器
docker run -d \
    --restart unless-stopped \
    --name rss \
    -p 8093:80 \
    -v $(pwd):/app/storage \
    -e APP_NAME=RSS \
    ghcr.io/ssddanbrown/rss:latest
可变
APP_NAME仅在标题/浏览器选项卡中显示
APP_CONFIG_FILE配置文件的路径,默认为 /app/storage/feeds.txt
APP_LOAD_POST_HUMBNAILS是否启用缩略图,默认为 true
APP_FEED_UPDATE_FREQUENCY刷新频率,最少为 5 分钟
APP_PRUNE_POSTS_AFTER_DAYS多少天后删除,默认为 false

更多的环境变量可以参考:https://github.com/ssddanbrown/rss#app-configuration

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "2"

services:
  rss:
    image: ghcr.io/ssddanbrown/rss:latest
    container_name: rss
    restart: unless-stopped
    volumes:
      - ./:/app/storage
    ports:
      - "8093:80"
    environment:
      - APP_NAME=RSS

然后执行下面的命令

# 新建文件夹 rss 
mkdir -p /volume2/docker/rss

# 进入 rss 目录
cd /volume2/docker/rss

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8093 就能看到主界面

feeds 保存在 /app/storage/feeds.txt 文件中

格式为:rss源url 名字[颜色] #标签

打开文件,输入 https://laosu.ml/atom.xml 各种折腾

【注意】:

  • 前面为 RSS的订阅 URL ,后面是说明;
  • 记得用 UTF-8 格式,避免中文出现乱码;

刷新页面,如果内容多的话会显示需要再次 Reloaded

加载成功后

切换视图,从左到右分别是 Card ViewList ViewCompact View

如果需要增加订阅地址,只要另起一行,例如: http://www.huxiu.com/rss/0.xml 虎嗅网

再次刷新页面就可以看到了

现在的目录比开始多了 2 个,其中 app 里是缩略图,而 logs 中是日志

注意事项

RSS 反代存在截端口现象,例如老苏反代后通过 https://rss.laosu.ml:444 访问,一些静态资源加载时会丢失端口变成 https://rss.laosu.ml/build/assets/app-432a7ee7.js ,从而导致加载失败

如果你和老苏一样用 npm 反代,可以在 npmAdvance 中加入下面的代码

   location / {  
       proxy_set_header Host $host:444;  
       proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;  
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Protocol $scheme;
       proxy_pass  http://192.168.0.197:8093;  
       proxy_redirect http:// https://;  
   }

其中 :

  • 1、 444 端口是因为老苏未备案,所以不能使用默认的 443 端口;
  • 2、192.168.0.197 为老苏群晖的局域网 IP,要改成你自己的;

这段代码,你可以在老苏的博客搜索 截端口 找到

参考文档

ssddanbrown/rss: A simple twitter-feed-style RSS aggregator written in PHP, Laravel, Inertia.js, Tailwind and Vue.js
地址:https://github.com/ssddanbrown/rss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

形式化验证,QED: Quick Error Detection Tests for Effective Post-Silicon Validation(二)

目录 一、Article:文献出处(方便再次搜索) (1)作者 (2)文献题目 (3)文献时间 (4)引用 二、Data:文献数据(总结归纳,方便理解&am…

chatgpt赋能python:如何用Python打造一个简单的抽奖程序

如何用Python打造一个简单的抽奖程序 随着互联网的不断发展,抽奖活动已经成为了各种营销活动的必备环节,因此如何快速便捷地实现一个抽奖程序也变得尤为重要。本文将介绍如何使用Python打造一个简单的抽奖程序。 一、抽奖程序的工作原理 抽奖程序的核…

Vue使用vue-3d-model组件预览3D三维文件、立体文件,支持旋转、自动播放

实现效果 Tips:先泼个冷水,这个预览3D组件有个致命的缺陷——不能设置材质、皮肤文件的目录路径,必须要和3d文件放在同一个目录,如果项目是用hash模式(url后面会有/#/这种井号),就会导致无法读取根目录的材质文件。所以推荐了解下…

LabVIEW利用相机开发零件处理和检查系统

LabVIEW利用相机开发零件处理和检查系统 为了将自动化运用于飞机发动机轮机机翼的去毛刺和检查流程,设计了一个系统,该系统使用六轴机器人操作抖动,并结合两个关键操作。首先,使用专门选定的工具对机翼进行去毛刺,以去…

ssh 端口转发

本地转发 ssh -L -CTfN 9527:remote_server_ip:23 ssh_server_ipL 本地转发模式C 压缩数据T 禁用模拟终端f 后台运行N 不执行远程指令, 常用于仅做端口转发 在local_server上开启本地转发模式之后 。ssh_server就会出现2端的TCP链接。然后所有发向9527端口TCP数据…

ASCII、Unicode、UTF-8、GBK、全角/半角

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、定义 1、ASCII 2、Unicode 3、UTF-8 4、GB2312 5、GBK 6、\u和\x 7、全角和半角 二、相互转化 1、str 与 ASCI…

[acwing周赛复盘] 第 110 场周赛20230701

[acwing周赛复盘] 第 110 场周赛20230701 总结5044. 求和1. 题目描述2. 思路分析3. 代码实现 5045. 三角形数1. 题目描述2. 思路分析3. 代码实现 5046. 智商药1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 状态不对,把自己写懵了。T1 模拟币T2 对向双指针…

关于Linux同步机制知识点整理

在Linux系统中,同步机制是操作系统中非常重要的一部分,以下是一些基本要点: 互斥锁 互斥锁是一种「独占锁」,比如当线程 A 加锁成功后,此时互斥锁已经被线程 A 独占了,只要线程 A 没有释放手中的锁&#…

梁宁:VisionPro、GPT、Web3三件套齐备,元宇宙开启

本文内容整理自图灵社区对谈栏目直播,主题为 ChatGPT 真需求,从产品的第一性原理解析。 上篇内容回顾:梁宁:为什么中国没有像 ChatGPT 和 Vision Pro 这样的创新产品? 梁宁,产品战略专家,曾任湖…

chatgpt赋能python:如何在Python中安装PIL

如何在Python中安装PIL Python Imaging Library(PIL)是一款用于处理图像的Python库,它提供了各种图像处理功能,包括大小调整、旋转、裁剪等等。如果你需要在你的Python项目中处理图像,那么PIL是一个不错的选择。 步骤…

DBeaver连接GaussDB

DBeaver 官网:https://dbeaver.io/打开DBeaver,点击菜单栏 “数据库”>“驱动管理” 点击“新建” 填入下面内容: 驱动名称:GS 驱动类型:Generic 类名:org.postgresql.Driver URL模板:jdbc…

Linux:LNMP上搭建discuz论坛(源码安装)

LNMP环境 Linux :LNMP(源码包安装)_鲍海超-GNUBHCkalitarro的博客-CSDN博客 discuz论坛 准备好源码包 LNMP环境正常 yum -y install unzip unzip Discuz_X3.3_SC_UTF8.zip # unzip 源码包名称 mv upload/ /usr/local/nginx/html/tarro…

信号链噪声分析13

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 接 触 ADC 或 DAC 时您一定会碰到这个经常被引用的公式,用于计算转换器理论信噪 比(SNR)。与其盲目地相信表象,不如从根本上了解其来源,因为…

Shell中的流程控制(if/case/for/while)

文章目录 Shell中的流程控制(if/case/for/while)1 if判断1.1 单分支1.2 多分支 2. case语句3 for循环3.1 第一种写法 (())3.2 第二种写法 in 4 while循环4.1 demo14.2. demo2测试let Shell中的流程控制(if/case/for/while) 1 if判…

【C】操作符详解

操作符 算术操作符移位操作符位操作符赋值操作符()复合赋值操作符 单目操作符关系操作符逻辑操作符逗号表达式条件操作符下标引用,函数调用和结构成员 今天给大家带来一篇关于C语言操作符的详细介绍,在C语言中操作符主要有以下几种…

VS工程加载失败 | 找不到导入的项目CUDA xx.props解决方案

问题背景: 如果遇到VS项目某些工程无法加载,有一个可能的原因是属性表没有找到。即props文件无法加载,导致项目加载失败。 解决方案: 找到工程配置 .vcxproj 文件,编辑打开,查找props,发现电脑…

07_Linux并发与竞争

目录 Linux并发与竞争Linux并发与竞争 并发与竞争 保护内容是什么 原子操作简介 原子整形操作API函数 原子位操作API函数 自旋锁简介 自旋锁API函数 信号量简介 信号量API 函数 互斥体简介 互斥体API函数 Linux并发与竞争Linux并发与竞争 Linux是一个多任务操作系…

SQL-每日一题【178.分数排名】

题目 表: Scores 编写 SQL 查询对分数进行排序。排名按以下规则计算: 分数应按从高到低排列。 如果两个分数相等,那么两个分数的排名应该相同。 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。 …

Redis安装配置及常用redis命令

目录 一、关系型数据库与非关系型数据库 1.关系型数据库 2. 非关系型数据库 3. 关系型数据库和非关系型数据库区别 3.1数据存储方式不同 3.2扩展方式不同 3.3对事务性的支持不同 4.非关系型数据库产生背景 5.总结 二、Redis简介 1.redis的工作过程 ​编辑 2.Redis…

chatgpt赋能python:如何用Python快速找到你需要的资料

如何用Python快速找到你需要的资料 在互联网时代,人们每天都需要浏览大量的信息来获取所需的资源和知识。但是在海量信息面前,如何快速准确地获取你想要的资料呢?这就要依靠搜索引擎了。而Python作为一门通用编程语言,也可以在搜…