Minimalist web RSS reader https://miniflux.net/
Features
- Host almost anywhere
- Readability (CSS optimized for readability, responsive design, compatible with mobile and tablet devices)
- Easy setup => copy and paste the source code and you are done!
- Use a lightweight Sqlite database instead of Mysql or Postgresql
- Remove Feedburner Ads and analytic trackers (1x1 pixels)
- Open external links inside a new tab with a
rel="noreferrer"
attribute - Use secure HTTP headers (only external images and Youtube/Vimeo/Dailymotion videos are allowed)
- Article content is filtered before being displayed
- Translated in Arabic, English, French, German, Italian, Japanese, Czech, Spanish, Turkish, Portuguese, Russian, Serbian and Simplified Chinese
- RTL languages support
- Keyboard shortcuts
- Full article download for feeds that display only a summary
- Bookmarks
- Groups for categorization of feeds (like folders or tags)
- Send your favorite articles to Pinboard and Instapaper
- Enclosure support (videos and podcasts)
- Feed updates via a cronjob or with the user interface with one click
- Keeps history of read items
- Import/Export of OPML feeds
- Themes
- Auto-update from the user interface
- Multiple databases (each user has his own database)
- Image proxy to avoid mixed content warnings with HTTPS
Requirements
- Recent version of libxml2 >= 2.7.x (version 2.6.32 on Debian Lenny is not supported anymore)
- PHP >= 5.3.3
- PHP XML extensions (SimpleXML and DOM)
- PHP Sqlite extension
- cURL extension for PHP or Stream Context with
allow_url_fopen=On
- Iconv and mbstring extensions
Documentation
- Installation
- Upgrade to a new version
- Cronjob
- Advanced configuration
- Full article download
- Multiple users
- Translations
- Themes
- Json-RPC API
- Fever API
- Run Miniflux with Docker
- FAQ
- Tests
Related projects
- Miniflux embedded is an Android app for Miniflux. It's basically an embedded WebView that saves your Miniflux URL and cookies. Download on the Play Store.
- munin-miniflux is a munin wildcard plugin to draw graphs of your miniflux read and unread count.
- List of themes
-------
用 Miniflux 自建轻便好用的 RSS 服务
404
了。1 为什么推荐 Miniflux
- 界面简洁,设计符合直觉
- 订阅源同步及时
- 服务稳定,能持续更新迭代
- 支持全文搜索订阅文章
- 自定义规则过滤订阅源
- 对只输出摘要的订阅源,能抓取全文
- 移动 / 桌面客户端支持全面
- 支持保存文章到稍后读应用
1.1 TTRSS/ FreshRSS/ Miniflux
1.2 极致优雅的 Miniflux
2 安装使用 Miniflux
2.1 配置环境
#Debian/Ubuntu系统
apt-get -y install git make nano curl
#CentOS/RHEL系统
yum -y install git make nano curl
curl -sSL https://get.docker.com/ | sh
service docker start
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
2.2 程序安装
git clone https://github.com/miniflux/docker.git
docker
文件夹,并开始下载二进制文件。注意下面命令链接里的 2.0.10
是当前的最新版本,如果后期有更新,你可以去Miniflux 的 发布页面 确认最新的版本并替换。cd docker && wget -O miniflux https://github.com/miniflux/miniflux/releases/download/2.0.10/miniflux-linux-amd64
chmod +x miniflux
2.0.10
也可以替换为最新的版本号。make image version=2.0.10
docker-compose.yml
配置文件,来调整 Miniflux 对外的端口。如果无需修改端口,可跳过这一步。nano docker-compose.yml
80
端口,也就是说输入 VPS 的 IP 地址即可使用和访问 Miniflux。如果改成了其他端口,则需要用 http://<ip地址>:<端口号>
来访问。这里改成 9090
作为示范。另外,你可以把 latest
替换为最新的版本号。latest
替代为最新的版本号,并执行该命令即可。docker-compose up -d
2.3 开始使用
docker ps -a
<container-id>
替换为 miniflux 的 id。docker start <container-id>
<container-id>
替换为 miniflux 的 id)。docker exec -ti <container-id> /usr/local/bin/miniflux -migrate
docker exec -ti <container-id> /usr/local/bin/miniflux -create-admin
http://<ip地址>:<端口号>
就可以进入界面,使用账号密码登陆了。2.4 域名和 HTTPS 支持
.win
域名,40-50 元 5 年,很划算。wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
nano /usr/local/caddy/Caddyfile
https://<解析到该ip的域名> {
tls <你的邮箱>
proxy / <ip地址:miniflux对外端口> {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
log /var/log/caddy.log
gzip
https
访问域名了。/etc/init.d/caddy restart
3 使用指南
3.1 客户端支持
http://<ip地址或域名>:<端口号>/fever
,用户名和密码填写上面配置好的,打开信任证书选项,点击登录即可。3.2 过滤神器 SiftRSS
3.3 RSSHub 获取订阅源
rsshub.app
域名直接订阅 RSS 源。目前这个项目的开发很活跃,如果有任何想新增的源,也可以去他们的 GitHub issue 中提需求。4 One More Thing
优秀的开源RSS阅读器工具:Miniflux
Miniflux使用PHP语言编写,支持Sqlite/MySQL数据库,支持中文等多国语言,无需要安装直接上传到服务器就可以使用。而Tiny Tiny RSS很多功能和Google Reader差不多,在使用习惯上都非常地接近Google Reader,最重要的是Tiny Tiny RSS有免费Android 客户端和第三方ios客户端。一、Miniflux安装与使用
- https://miniflux.net/
PHP >= 5.3.3 (推荐PHP 7.x )PHP 扩展: ctype, dom, hash, iconv, json, xml, mbstring, pdq_sqlite/pdo_pgsql, pcre, session, SimpleXML (推荐使用curl 或者设置allow_url_fopen=On
)Sqlite 3 or Postgres >= 9.3libxml2 >= 2.7.x
1.1 Miniflux安装使用
data
文件夹可读写,打开浏览器,使用账号和密码:admin/admin 登录进去。1.2 Miniflux更新RSS
cronjob.php
.代码如下:crontab -e
# 每4个小时更新一次
0 */4 * * * cd /path/to/miniflux && php cronjob.php >/dev/null 2>&1
# 每次更新10个RSS源
0 */4 * * * cd /path/to/miniflux && php cronjob.php --limit=10 >/dev/null 2>&1
# 每60分钟更新一次 (每次更新8个RSS源 with a total of 120 feeds).
* */4 * * * cd /path/to/miniflux && php cronjob.php --call-interval=4 --update-interval=60 >/dev/null 2>&1
- 其中cronjob URL可在在 preferences > about 中找到。
- The access is protected by a private token.
- 如果你想禁用web cronjob,可以 修改配置文件中
ENABLE_CRONJOB_HTTP_ACCESS
tofalse
.
1.3 Miniflux相关配置
config.default.php
重命名为 config.php
,你可以根据自己需要来修改。默认的Miniflux使用Sqlite,但是Postgres 和 MySQL 也是支持的。define('DB_DRIVER', 'sqlite');
define('DB_FILENAME', DATA_DIRECTORY.'/db.sqlite');
CREATE DATABASE miniflux;
config.php
调整为:define('DB_DRIVER', 'postgres');
// Replace these values:
define('DB_HOSTNAME', 'localhost');
define('DB_NAME', 'miniflux');
define('DB_USERNAME', 'my postgres user');
define('DB_PASSWORD', 'my secret password');
CREATE DATABASE miniflux;
config.php
修改为:define('DB_DRIVER', 'mysql');
// Replace these values:
define('DB_HOSTNAME', 'localhost');
define('DB_NAME', 'miniflux');
define('DB_USERNAME', 'my mysql user');
define('DB_PASSWORD', 'my secret password');
-------------------------------
用miniflux搭建一个自己的RSS服务
自从Google Reader挂掉后就一直使用Feedbin提供的RSS订阅服务,期间也想过开源解决方案搭建一个但无奈仅有的几款成熟度比较合格的方案都是PHP的产物,我不是一个喜欢在自己的服务器上配置PHP环境的人.
前段时间了解到miniflux这样一个用GO编写的可以自己托管的RSS订阅服务,恰恰我是一个很喜欢使用Go编写程序和使用Go编写的程序的人,于是在 https://miniflux.app/ 上看了下手册后就很简单的将miniflux配置好了.
配置的过程很简单,拜Go只依赖glibc的巨大优点所赐,只需要一个二进制可执行文件就可以在几乎所有操作系统上跑起来,除了主程序外只需要按照手册自己配置好Postgresql
就行.
miniflux可以在控制台开启fever api支持,这样就可以用Reeder和Unread这种第三方APP里进行阅读了.只是有些小缺点,因为fever确实太陈旧而且小众所以某些功能缺失了,比如Unread上没有向上/向下设定已读.
搭建好以后就当作主力RSS阅读器使用,期间唯一遇到的问题是miniflux程序目前还处于密集开发状态,所以每个版本甚至每个commit都可能带来不可预知的改动,特别是对我这种每天都会拉取最新代码然后自己编译更新的人来说.
遇到过一次自己编译更洗后提示entries
表中缺少一个键,当时很简单的自己给这张表添加了缺少的键.
当时表面上没什么问题了,但后来随着miniflux更多修改的提交问题就出来了,那就是一旦你自己修改过表结构,那么很可能以后的修改都需要自己来维护了.而正常情况下是需要按照upgrade中的流程来执行的(当然自己拉取代码手动编译的话很可能升级工具并没有相应的更新).
此后我就老老实实选择下载release版本的二进制文件来升级了.
而使用以来最大的优点有以下几项:
- 可以自己设定刷新间隔
某些公共服务也能设定,但一般是需要收费的比如inoreader.但即便将刷新间隔设定在15分钟我发现仍然有几小时才刷新的情况.
- 可以清晰的看到哪些feed拉取出现了异常
其实很多服务都有这项功能,但Feedbin很遗憾没有.只能看到源最后更新时间,这算是Feedbin最大的硬伤吧.
- 可以直接修改feed的URL
某些时候feed链接会有变更,比如从
blog.xxx.com
变成了xxx.blog
,相应的feed链接也会变更,而这个时候如果不能修改feed的URL就只能创建一个新的订阅.而miniflux却可以很方便的更改,甚至因为有操作数据库权限所以很多控制台中无法修改的项也可以修改. - 免费
当然如果本来就有服务器的话.