极简RSS订阅器Miniflux
什么是 Miniflux ?
Miniflux
是一个极简主义的RSS
阅读器。它简单、快速、轻便且非常易于使用。Miniflux
是静态编译的单个二进制文件,没有使用任何复杂的框架,也没有外部依赖,简单、快速、轻巧且超级容易安装。支持Atom
、RSS 1.0
/2.0
、JSON
格式,支持OPML
导入 / 导出等。
安装
环境变量
与 docker
相关的环境变量
变量 | 缺省值 | 描述 |
---|---|---|
POSTGRES_DB | 无 | 数据库库名 |
POSTGRES_USER | 无 | 数据库用户 |
POSTGRES_PASSWORD | 无 | 数据库密码 |
DATABASE_URL | 无 | 数据库地址, postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@dbhost:dbport/${POSTGRES_DB}?sslmode=disable |
RUN_MIGRATIONS | 1 | 自动运行数据库迁移 |
CREATE_ADMIN | 1 | 创建管理员 |
ADMIN_USERNAME | 无 | 管理员账号名 |
ADMIN_PASSWORD | 无 | 管理员密码 |
更多的环境变量,请参考官方文档:https://miniflux.app/docs/configuration.html
docker cli 安装
如果你熟悉命令行,可能用 docker cli
更快捷
下面安装时,老苏没有将数据库端口暴露出来
# 新建文件夹 miniflux 和 子目录
mkdir -p /volume2/docker/miniflux/data# 进入 miniflux 目录
cd /volume2/docker/miniflux# 创建网络
docker network create -d bridge miniflux-net# 运行 PostgreSQL 容器
docker run -d \--restart unless-stopped \--name miniflux-db \--network=miniflux-net \-v $(pwd)/data:/var/lib/postgresql/data \-e "POSTGRES_DB=miniflux" \-e "POSTGRES_USER=miniflux" \-e "POSTGRES_PASSWORD=YNAYcg3a9L3B" \postgres:14# 运行 Miniflux 容器
docker run -d \--restart unless-stopped \--name miniflux-web \--network=miniflux-net \-p 8120:8080 \-e "DATABASE_URL=postgres://miniflux:YNAYcg3a9L3B@miniflux-db/miniflux?sslmode=disable" \-e "RUN_MIGRATIONS=1" \-e "CREATE_ADMIN=1" \-e "ADMIN_USERNAME=laosu" \-e "ADMIN_PASSWORD=jCdp64gMapAR" \miniflux/miniflux:2.0.41
docker compose 安装
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'services:db:image: postgres:14container_name: miniflux-db#restart: unless-stoppedenvironment:- POSTGRES_USER=miniflux- POSTGRES_PASSWORD=YNAYcg3a9L3B- POSTGRES_DB=minifluxvolumes:- ./data:/var/lib/postgresql/datahealthcheck:test: ["CMD", "pg_isready", "-U", "miniflux"]interval: 10sstart_period: 30sminiflux:image: miniflux/miniflux:2.0.41container_name: miniflux-web#restart: unless-stoppedports:- "8120:8080"depends_on:- dbenvironment:- DATABASE_URL=postgres://miniflux:YNAYcg3a9L3B@miniflux-db/miniflux?sslmode=disable- RUN_MIGRATIONS=1- CREATE_ADMIN=1- ADMIN_USERNAME=laosu- ADMIN_PASSWORD=jCdp64gMapAR
然后执行下面的命令
# 新建文件夹 miniflux 和 子目录
mkdir -p /volume2/docker/miniflux/data# 进入 miniflux 目录
cd /volume2/docker/miniflux# 将 docker-compose.yml 放入当前目录# 先启动数据库
docker-compose up -d db# 再启动应用
docker-compose up miniflux
之所以没有采用 docker-compose up -d
一键启动,是因为虽然可以通过 depends_on
控制启动顺序,但是实际上miniflux
开始连接 postgres
时,有可能数据库并没有准备好,因而会导致 miniflux
容器启动失败
有两个办法可以解决这个问题:
-
第一种方法:先启动数据库
docker-compose up -d db
,再启动应用程序docker-compose up miniflux
-
第二种方法:是
docker-compose
官方给的建议,通过wait-for-it.sh
脚本来控制
wait-for-it.sh
代码地址:https://github.com/vishnubob/wait-for-it
相对来说,第一种方法更简单一点,第二种方法老苏也并没有用过,不知道在群晖上是否可行
运行
在浏览器中输入 http://群晖IP:8120
就能看到登录界面
登录成功之后的主界面还是空的
中文
进入 Settings
--> Language
--> 简体中文
点最下面的 Update
按钮之后,界面就是中文版了
添加源
还是以老苏的博客为例,源
--> 新增源
,输入 https://laosu.ml/atom.xml
点 查找源
按钮之后,会显示订阅界面
进入一篇
默认只有简介,也就是发布时的 description
部分
要看全文还需要抓取
虽然安装看起来有点复杂,但是使用是不是非常简单?
参考文档
miniflux/v2: Minimalist and opinionated feed reader
地址:https://github.com/miniflux/v2
dubhad-dev/miniflux-docker
地址:https://github.com/dubhad-dev/miniflux-docker
Installation Instructions
地址:https://miniflux.app/docs/installation.html#docker
v2/contrib/docker-compose at main · miniflux/v2
地址:https://github.com/miniflux/v2/tree/main/contrib/docker-compose
相关文章:

极简RSS订阅器Miniflux
什么是 Miniflux ? Miniflux 是一个极简主义的 RSS 阅读器。它简单、快速、轻便且非常易于使用。Miniflux 是静态编译的单个二进制文件,没有使用任何复杂的框架,也没有外部依赖,简单、快速、轻巧且超级容易安装。支持 Atom、RSS 1…...

网络通信快速入门
🏡个人主页 : 守夜人st 🚀系列专栏:Java …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录网络编程实现网络编程的三要素&#x…...
【阅读文档】Vue.js 2.0 之教程文档
系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录系列文章目录前言兼容性Devtools开发版和生产版安装Vue-cli编译器Vue.js 是什么最基本的Vuev-bind 指令split 和 reverse 搭配v-model 双向绑定vue-component 定义组件v-bindObject.freeze箭头函数…...

Docker【基本使用】
1:启动Docker1.1:操作systemctl start docker.service1.2:常见问题【第一步】启动docker,提示启动失败,查询运行状态systemctl start docker.service【第二步】查询docker运行状态,提示不支持SELinux【第三…...
算法leetcode|39. 组合总和(rust重拳出击)
文章目录39. 组合总和:样例 1:样例 2:样例 3:提示:分析:题解:rustgoccpythonjava39. 组合总和: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找…...

JavaSE学习笔记总结day18
今日内容 零、 复习昨日 一、作业 二、进程与线程 三、创建线程 四、线程的API 五、线程状态 六、线程同步 零、 复习昨日 晨考 一、作业 见答案 二、进程与线程[了解] 一个进程就是一个应用程序,进程包含线程 一个进程至少包含一个线程,大部分都是有多条线程在执行任务(多线…...

HybridFusion: LiDAR和视觉交叉源点云融合
一、基本信息 研究方向: 大场景点云配准 HybridFusion: 它可以在户外大型场景中从不同视角记录交叉源密集点云。 团队链接:http://www.adv-ci.com 视频链接: https://www.bilibili.com/video/BV1vM41147yD/?spm_id_from333.337.sear…...

走进JVM
JVM的位置 在操作系统之上,可以想象成一个软件,Java程序都运行在上面 JVM结构图 JVM调优的位置 99%的调优在堆中,极少数在方法区中 很多第三方插件都是在执行引擎那块地方做出修改而来,比如Lombook在程序运行时动态生成get/s…...
C语言-基础了解-15-C函数指针与回调函数
C函数指针与回调函数 一、函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: type…...
react和vue在响应式上的不同理解
vue和react的区别总是被提及,关于这个问题最近也有了自己的想法。我认为它们之间最大的区别是对于响应数据变化的实现方式不同。 vue实现响应的方法是,首先收集依赖这个数据的副作用(视图更新、计算属性等),当数据修改…...

多线程二 多线程了解与使用
文章目录synchronized 锁有两种synchronized异常捕获主线程和子线程volatile的作用notify是随机启动等待线程中的一个synchronized 锁有两种 类对象类的实例 第一种:锁类对象,有两种方式,如下: // 方法一:synchroni…...

嵌入式 Linux 的僵尸进程是什么?
目录 1、什么是僵尸进程? 2、僵尸进程的目的 3、怎么避免僵尸进程? 4、僵尸进程的处理方法 4.1 wait()连接 4.2 waitpid()函数 1、什么是僵尸进程? 首先内核会释放终止进程(调用了 exit …...
【刷题笔记】笔记一
1.自守数牛客链接解析:1.自守数的结尾肯定是 0,1,5,62.把数字转换为string类(方便比较)3.直接find在s2 里面 使用find查找另一个即可。#include <iostream> #include<string> using namespace …...

浏览器主页被hao123劫持的解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…...
华为OD机试题 - 热点网络统计(JavaScript)| 含代码编写思路
华为OD机试题 最近更新的博客使用说明本篇题解:热点网络统计题目输入输出描述示例一输入输出示例二输入输出Code解题思路华为OD其它语言版本最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华…...

IT项目经理的自我修养手册
在不断进步的时代,任何岗位职责都是一个责任、权力与义务的综合体,有多大的权力就应该承担多大的责任,有多大的权力和责任应该尽多大的义务,任何割裂开来的做法都会发生问题。那么作为IT项目经理的岗位职责,我大概列举…...

2023年软考中级电子商务设计师考什么?
首先,电子商务设计师属于软考中级,因此难度也不是特别大。但并不是说就完全没有难度,难度还是有的,像上午题一般把基本知识点掌握了,是没什么问题的,重点就在于下午题会比较难。 接下来我们来剖析一下考试…...

现在的00后太强了,几个问题差点给我问懵了
前言 我们公司刚入职一个00后小伙,今天在办公室交流了一下,他问我会不会自动化测试,我说懂一点,然后直接问了我几个自动化测试问题,差点直接给我问懵了! 问题如下: 我们在制定自动化测试实施…...

$3 : 水项目实战 - 水果库存系统
javase知识点复习: final关键字:http://t.csdn.cn/bvFgu 接口的定义,特性,实现,继承:http://t.csdn.cn/tbXl3 异常:http://t.csdn.cn/VlS0Z DAO的概念和角色(设计理念)&a…...

毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测
基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2 光敏采集电路设计2.3 温度采集电路设计3、部分代码展示3.1 读取DS18B20温度值3.2 定时器初始化1、项目简介 选题指导,…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...