当前位置: 首页 > news >正文

极简RSS订阅器Miniflux

在这里插入图片描述

什么是 Miniflux ?

Miniflux 是一个极简主义的 RSS 阅读器。它简单、快速、轻便且非常易于使用。Miniflux 是静态编译的单个二进制文件,没有使用任何复杂的框架,也没有外部依赖,简单、快速、轻巧且超级容易安装。支持 AtomRSS 1.0/2.0JSON 格式,支持 OPML 导入 / 导出等。

安装

环境变量

docker 相关的环境变量

变量缺省值描述
POSTGRES_DB数据库库名
POSTGRES_USER数据库用户
POSTGRES_PASSWORD数据库密码
DATABASE_URL数据库地址, postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@dbhost:dbport/${POSTGRES_DB}?sslmode=disable
RUN_MIGRATIONS1自动运行数据库迁移
CREATE_ADMIN1创建管理员
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.自守数牛客链接解析&#xff1a;1.自守数的结尾肯定是 0&#xff0c;1&#xff0c;5&#xff0c;62.把数字转换为string类&#xff08;方便比较&#xff09;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项目经理的自我修养手册

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

2023年软考中级电子商务设计师考什么?

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

现在的00后太强了,几个问题差点给我问懵了

前言 我们公司刚入职一个00后小伙&#xff0c;今天在办公室交流了一下&#xff0c;他问我会不会自动化测试&#xff0c;我说懂一点&#xff0c;然后直接问了我几个自动化测试问题&#xff0c;差点直接给我问懵了&#xff01; 问题如下&#xff1a; 我们在制定自动化测试实施…...

$3 : 水​​​​​项目实战 - 水果库存系统

javase知识点复习&#xff1a; final关键字&#xff1a;http://t.csdn.cn/bvFgu 接口的定义&#xff0c;特性&#xff0c;实现&#xff0c;继承&#xff1a;http://t.csdn.cn/tbXl3 异常&#xff1a;http://t.csdn.cn/VlS0Z DAO的概念和角色&#xff08;设计理念&#xff09;&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、项目简介 选题指导&#xff0c…...

窗口大小控制神器:3分钟掌握WindowResizer的终极窗口调整技巧

窗口大小控制神器&#xff1a;3分钟掌握WindowResizer的终极窗口调整技巧 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的应用程序窗口而束手无策吗&#xff1f;是…...

从GitHub克隆到点亮LED:手把手教你用Ubuntu编译调试别人的STM32工程

从GitHub克隆到点亮LED&#xff1a;手把手教你用Ubuntu编译调试别人的STM32工程 在开源硬件社区&#xff0c;GitHub上每天都有大量优秀的STM32项目被分享——从智能家居控制器到四轴飞行器飞控系统。但当开发者满怀期待地git clone后&#xff0c;却常常在第一步"编译通过&…...

Kubernetes原生自动化部署工具Keel:实现容器镜像自动更新的最后一公里

1. 项目概述&#xff1a;什么是Keel&#xff0c;以及它解决了什么问题如果你和我一样&#xff0c;在团队里负责过一段时间的应用部署和更新&#xff0c;那你一定对“发布日”的紧张感深有体会。开发那边代码一提交&#xff0c;这边就得开始手动拉取镜像、更新Kubernetes的Deplo…...

开源AI图像生成工具Dream-Creator:本地部署与Stable Diffusion实战指南

1. 项目概述&#xff1a;一个开源的AI图像生成与创作工具 最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目叫“Dream-Creator”。光看名字&#xff0c;你可能会联想到一些AI绘画或者创意生成工具。没错&#xff0c;这确实是一个围绕AI图像生成的开源项目。作为一个在…...

Nextra:基于Next.js的现代化文档站构建利器

1. 项目概述&#xff1a;为什么Nextra能成为文档站构建的“瑞士军刀”&#xff1f;如果你最近在寻找一个构建技术文档、博客或个人知识库的工具&#xff0c;大概率会听到“Nextra”这个名字。它不是一个独立框架&#xff0c;而是一个基于Next.js的静态站点生成器&#xff0c;专…...

数据中心碳足迹与可靠性优化框架解析

1. 数据中心碳足迹与可靠性优化的挑战 现代数据中心已成为数字经济的动力引擎&#xff0c;但伴随算力需求的爆炸式增长&#xff0c;其能源消耗与碳排放问题日益凸显。根据最新统计&#xff0c;全球数据中心年耗电量已达4600亿度&#xff0c;占全球总用电量的2%。随着大语言模型…...

Kubernetes上Jenkins全栈部署:动态Agent与生产环境调优指南

1. 项目概述&#xff1a;一个面向Kubernetes的Jenkins全栈部署方案在容器化和云原生技术成为主流的今天&#xff0c;如何高效、稳定地部署和管理持续集成/持续交付&#xff08;CI/CD&#xff09;流水线&#xff0c;是每个开发团队和运维工程师必须面对的课题。传统的单体Jenkin…...

基于Vanilla JS与IndexedDB构建本地化Markdown笔记工具

1. 项目概述&#xff1a;从零开始构建一个轻量级笔记工具最近在整理个人知识库时&#xff0c;发现市面上的笔记软件要么功能过于臃肿&#xff0c;要么云端同步存在隐私顾虑&#xff0c;要么就是定制化程度不够。作为一个有十多年开发经验的从业者&#xff0c;我决定自己动手&am…...

Linux系统调用观察与strace实战

Linux系统调用观察与strace实战很多 Linux 问题只靠日志和进程状态很难看清&#xff0c;尤其是在进程存在但无响应、命令卡住不动、文件访问异常或网络连接莫名失败时。此时&#xff0c;观察进程正在进行哪些系统调用&#xff0c;往往能快速揭示它卡在什么地方。中级阶段必须掌…...

Linux驱动开发:原子操作实现LED设备互斥访问

1. 项目概述&#xff1a;用原子操作给LED驱动加把“锁”在嵌入式Linux开发里&#xff0c;驱动开发是绕不开的一环。很多时候&#xff0c;一个硬件设备&#xff0c;比如一个简单的LED灯&#xff0c;可能会被多个用户空间的应用程序同时访问。想象一下&#xff0c;一个APP想开灯&…...