Miniflux News Reader

Reference: https://miniflux.app/docs/installation.html#debian

Miniflux is an RSS (Really Simple Syndication) server that will fetch and display RSS feeds from other websites. Also known as a news reader.

You can view these feeds from your web browser. They look like this:

miniflux (2).png

Database Configuration

Creating the Database

Here an example from the command line:

# Switch to the postgres user
$ sudo -u postgres bash

# Create a database user for Miniflux
$ createuser -P miniflux
Enter password for new role: ******
Enter it again: ******

# Create a database for miniflux that belongs to our user
$ createdb -O miniflux miniflux

# Create the extension hstore as superuser
$ psql miniflux -c 'create extension hstore'
CREATE EXTENSION

Enabling HSTORE extension for Postgresql

Creating Postgresql extensions requires the SUPERUSER privilege. Several solutions are available:

  1. Give SUPERUSER privileges to the miniflux user only during the schema migration:
ALTER USER miniflux WITH SUPERUSER;
-- Run the migrations (miniflux -migrate)
ALTER USER miniflux WITH NOSUPERUSER;
  1. You could create the hstore extension with another user that have the SUPERUSER privileges before running the migrations.
sudo -u postgres psql $MINIFLUX_DATABASE
> CREATE EXTENSION hstore;

Debian/Ubuntu/Raspbian Package Installation

You must have Debian >= 8 or Ubuntu >= 16.04. When using the Debian package, the Miniflux daemon is supervised by systemd.

  • Install the Debian package: dpkg -i miniflux_2.0.13_amd64.deb
$ curl -L https://github.com/miniflux/v2/releases/download/2.0.39/miniflux_2.0.39_arm64.deb -o miniflux_2.0.39_arm64.deb

$ sudo dpkg -i miniflux_2.0.39_arm64.deb 
Selecting previously unselected package miniflux.
(Reading database ... 118954 files and directories currently installed.)
Preparing to unpack miniflux_2.0.39_arm64.deb ...
Unpacking miniflux (2.0.39) ...
Setting up miniflux (2.0.39) ...
Created symlink /etc/systemd/system/multi-user.target.wants/miniflux.service → /lib/systemd/system/miniflux.service.
Job for miniflux.service failed because the control process exited with error code.
See "systemctl status miniflux.service" and "journalctl -xe" for details.
Processing triggers for man-db (2.9.4-2) ...
  • Define the environment variable DATABASE_URL if necessary
$ cat /etc/miniflux.conf 
# See https://miniflux.app/docs/configuration.html

RUN_MIGRATIONS=1
DATABASE_URL = user=miniflux password=********** dbname=miniflux sslmode=disable
  • Run the SQL migrations:
$ sudo -u postgres miniflux -c /etc/miniflux.conf -migrate
-> Current schema version: 60
-> Latest schema version: 60
  • Create an admin user:
$ sudo -u postgres miniflux -c /etc/miniflux.conf -create-admin
Enter Username: nosey
Enter Password: 
  • Customize your configuration file /etc/miniflux.conf if necessary

Config entries followed by a colon (:) are defaults, to change them use an equals (=) sign.

DATABASE_URL = user=miniflux password=************ dbname=miniflux sslmode=disable
LOG_DATE_TIME= true
DEBUG= false
HTTP_SERVICE: true
SCHEDULER_SERVICE: true
HTTPS= true
HSTS: true
BASE_URL= https://rss.example.com
ROOT_URL= https://rss.example.com
BASE_PATH: 
LISTEN_ADDR = 0.0.0.0:8080
DATABASE_MAX_CONNS: 20
DATABASE_MIN_CONNS: 1
RUN_MIGRATIONS= 1
CERT_FILE = /etc/letsencrypt/live/example.com/fullchain.pem
KEY_FILE = /etc/letsencrypt/live/example.com/privkey.pem
CERT_DOMAIN: rss.example.com
CERT_CACHE: /tmp/cert_cache
CLEANUP_FREQUENCY_HOURS: 24
CLEANUP_ARCHIVE_READ_DAYS: 60
CLEANUP_REMOVE_SESSIONS_DAYS: 30
WORKER_POOL_SIZE: 5
POLLING_FREQUENCY: 60
BATCH_SIZE: 10
POLLING_SCHEDULER: round_robin
SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL: 1440
SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL: 5
PROXY_IMAGES: http-only
CREATE_ADMIN: false
ADMIN_USERNAME=nosey
ADMIN_PASSWORD=**********
POCKET_CONSUMER_KEY: 
OAUTH2_USER_CREATION: false
OAUTH2_CLIENT_ID: 
OAUTH2_CLIENT_SECRET: 
OAUTH2_REDIRECT_URL: 
OAUTH2_OIDC_DISCOVERY_ENDPOINT: 
OAUTH2_PROVIDER: 
HTTP_CLIENT_TIMEOUT: 20
HTTP_CLIENT_MAX_BODY_SIZE: 15728640
AUTH_PROXY_HEADER: 
AUTH_PROXY_USER_CREATION: false
  • Restart the process: sudo systemctl restart miniflux
  • Check the process status: sudo systemctl status miniflux
  • Enable firewall
$ sudo ufw allow 8080
Rule added
Rule added (v6)

Note that you could also use the Miniflux APT repository instead of downloading manually the Debian package.

Since Miniflux v2.0.25, the Debian package is available for multiple architectures: amd64arm64, and armhf. This way, it’s very easy to install Miniflux on a Raspberry Pi.

If you don’t want to run the SQL migrations manually each time you upgrade Miniflux, set the environment variable: RUN_MIGRATIONS=1 in /etc/miniflux.conf.

Systemd reads the environment variables from the file /etc/miniflux.conf. You must restart the service to take the new values into consideration.

Export/Import via standard .opml files

Use the web interface, top menu Feeds, to Import/Export .opml files.

Sample RSS feeds

<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
    <head>
        <title>Miniflux</title>
        <dateCreated>Sun, 23 Oct 2022 14:55:57 EDT</dateCreated>
    </head>
    <body>
        <outline text="All">
            <outline title="Bartosz Ciechanowski" text="Bartosz Ciechanowski" xmlUrl="https://ciechanow.ski/atom.xml" htmlUrl="https://ciechanow.ski/"></outline>
            <outline title="Hacking on Go350" text="Hacking on Go350" xmlUrl="https://www.go350.com/index.xml" htmlUrl="https://www.go350.com/"></outline>
            <outline title="2ality – JavaScript and more" text="2ality – JavaScript and more" xmlUrl="https://feeds.feedburner.com/2ality" htmlUrl="https://2ality.com/"></outline>
            <outline title="9Gag - Awesome - Hot" text="9Gag - Awesome - Hot" xmlUrl="https://9gag.vamourir.fr/feeds/awesome/hot.xml" htmlUrl="https://9gag.vamourir.fr/feeds/awesome/hot.xml"></outline>
            <outline title="aka Ken Smith" text="aka Ken Smith" xmlUrl="http://oldschool.scripting.com/KenSmith/rss.xml" htmlUrl="http://oldschool.scripting.com/KenSmith/"></outline>
            <outline title="A List Apart: The Full Feed" text="A List Apart: The Full Feed" xmlUrl="https://feeds.feedburner.com/alistapart/main" htmlUrl="https://alistapart.com"></outline>
            <outline title="Al Jazeera – Breaking News, World News and Video from Al Jazeera" text="Al Jazeera – Breaking News, World News and Video from Al Jazeera" xmlUrl="https://www.aljazeera.com/xml/rss/all.xml" htmlUrl="https://www.aljazeera.com"></outline>
            <outline title="Articles — brandur.org" text="Articles — brandur.org" xmlUrl="https://brandur.org/articles.atom" htmlUrl="https://brandur.org"></outline>
            <outline title="BBC News - Home" text="BBC News - Home" xmlUrl="https://feeds.bbci.co.uk/news/rss.xml" htmlUrl="https://www.bbc.co.uk/news/"></outline>
            <outline title="benjojo blog" text="benjojo blog" xmlUrl="https://blog.benjojo.co.uk/rss.xml" htmlUrl="https://blog.benjojo.co.uk"></outline>
            <outline title="Boing Boing" text="Boing Boing" xmlUrl="https://boingboing.net/feed" htmlUrl="https://boingboing.net"></outline>
            <outline title="Brain Pickings" text="Brain Pickings" xmlUrl="https://feeds.feedburner.com/brainpickings/rss" htmlUrl="https://www.brainpickings.org"></outline>
            <outline title="CogDogBlog" text="CogDogBlog" xmlUrl="https://cogdogblog.com/feed/" htmlUrl="https://cogdogblog.com"></outline>
            <outline title="Colossal" text="Colossal" xmlUrl="https://www.thisiscolossal.com/feed/" htmlUrl="https://www.thisiscolossal.com"></outline>
            <outline title="CommitStrip" text="CommitStrip" xmlUrl="https://www.commitstrip.com/en/feed/?" htmlUrl="https://www.commitstrip.com"></outline>
            <outline title="computers are bad" text="computers are bad" xmlUrl="https://computer.rip/rss.xml" htmlUrl="https://computer.rip"></outline>
            <outline title="Current Watches, Warnings and Advisories for Prince William (VAC153) Virginia Issued by the National Weather Service" text="Current Watches, Warnings and Advisories for Prince William (VAC153) Virginia Issued by the National Weather Service" xmlUrl="https://alerts.weather.gov/cap/wwaatmget.php?x=VAC153&amp;y=0" htmlUrl="https://alerts.weather.gov/cap/wwaatmget.php?x=VAC153&amp;y=0"></outline>
            <outline title="Daemonic Dispatches" text="Daemonic Dispatches" xmlUrl="http://www.daemonology.net/blog/index.rss" htmlUrl="https://www.daemonology.net/blog/"></outline>
            <outline title="Daring Fireball" text="Daring Fireball" xmlUrl="https://daringfireball.net/feeds/json" htmlUrl="https://daringfireball.net/"></outline>
            <outline title="death and gravity" text="death and gravity" xmlUrl="https://death.andgravity.com/_feed/index.xml" htmlUrl="https://death.andgravity.com/"></outline>
            <outline title="Dr. Brian Robert Callahan" text="Dr. Brian Robert Callahan" xmlUrl="https://briancallahan.net/blog/feed.xml" htmlUrl="https://briancallahan.net/blog"></outline>
            <outline title="Drew DeVault&#39;s blog" text="Drew DeVault&#39;s blog" xmlUrl="https://drewdevault.com/blog/index.xml" htmlUrl="https://drewdevault.com"></outline>
            <outline title="Eli Bendersky&#39;s website" text="Eli Bendersky&#39;s website" xmlUrl="https://eli.thegreenplace.net/feeds/all.atom.xml" htmlUrl="https://eli.thegreenplace.net/"></outline>
            <outline title="English Wikinews Atom feed." text="English Wikinews Atom feed." xmlUrl="https://en.wikinews.org/w/index.php?title=Special:NewsFeed&amp;feed=atom&amp;categories=Published&amp;notcategories=No%20publish%7CArchived%7CAutoArchived%7Cdisputed&amp;namespace=0&amp;count=30&amp;hourcount=124&amp;ordermethod=categoryadd&amp;stablepages=only" htmlUrl="https://en.wikinews.org/wiki/Main_Page"></outline>
            <outline title="fabiensanglard.net" text="fabiensanglard.net" xmlUrl="https://fabiensanglard.net/rss.xml" htmlUrl="https://fabiensanglard.net"></outline>
            <outline title="fasterthanli.me" text="fasterthanli.me" xmlUrl="https://fasterthanli.me/index.xml" htmlUrl="https://fasterthanli.me"></outline>
            <outline title="flak" text="flak" xmlUrl="https://flak.tedunangst.com/rss" htmlUrl="https://flak.tedunangst.com/"></outline>
            <outline title="Geek&amp;Poke" text="Geek&amp;Poke" xmlUrl="http://feeds.feedburner.com/GeekAndPoke" htmlUrl="https://geek-and-poke.com/"></outline>
            <outline title="Hacker News" text="Hacker News" xmlUrl="https://news.ycombinator.com/rss" htmlUrl="https://news.ycombinator.com/"></outline>
            <outline title="https://danluu.com/atom/index.xml" text="https://danluu.com/atom/index.xml" xmlUrl="https://danluu.com/atom.xml" htmlUrl="https://danluu.com/atom/index.xml"></outline>
            <outline title="https://mikestone.me/" text="https://mikestone.me/" xmlUrl="https://mikestone.me/feed.xml" htmlUrl="https://mikestone.me/"></outline>
            <outline title="Ivan on Containers, Kubernetes, and Server-Side" text="Ivan on Containers, Kubernetes, and Server-Side" xmlUrl="https://iximiuz.com/feed.rss" htmlUrl="https://iximiuz.com/"></outline>
            <outline title="Jeff Geerling&#39;s Blog" text="Jeff Geerling&#39;s Blog" xmlUrl="https://www.jeffgeerling.com/blog.xml" htmlUrl="http://www.jeffgeerling.com/"></outline>
            <outline title="Jhey Tompkins Posts" text="Jhey Tompkins Posts" xmlUrl="https://jhey.dev/posts.xml" htmlUrl="https://jhey.dev/"></outline>
            <outline title="Josh Comeau&#39;s blog" text="Josh Comeau&#39;s blog" xmlUrl="https://www.joshwcomeau.com/rss.xml" htmlUrl="https://www.joshwcomeau.com/"></outline>
            <outline title="Joy of Tech (RSS Feed)" text="Joy of Tech (RSS Feed)" xmlUrl="https://www.geekculture.com/joyoftech/jotblog/atom.xml" htmlUrl="http://joyoftech.com/joyoftech/"></outline>
            <outline title="Julia Evans" text="Julia Evans" xmlUrl="https://jvns.ca/atom.xml" htmlUrl="http://jvns.ca"></outline>
            <outline title="kottke.org" text="kottke.org" xmlUrl="http://feeds.kottke.org/main" htmlUrl="http://kottke.org/"></outline>
            <outline title="Laughing Squid" text="Laughing Squid" xmlUrl="https://laughingsquid.com/feed/" htmlUrl="https://laughingsquid.com/"></outline>
            <outline title="LibriVox&#39;s New Releases" text="LibriVox&#39;s New Releases" xmlUrl="https://librivox.org/rss/latest_releases" htmlUrl="http://librivox.org"></outline>
            <outline title="Lifehacker" text="Lifehacker" xmlUrl="https://lifehacker.com/rss" htmlUrl="https://lifehacker.com"></outline>
            <outline title="Logos By Nick" text="Logos By Nick" xmlUrl="https://logosbynick.com/feed/" htmlUrl="https://logosbynick.com"></outline>
            <outline title="LWN.net" text="LWN.net" xmlUrl="https://lwn.net/headlines/rss" htmlUrl="https://lwn.net"></outline>
            <outline title="Manton Reece" text="Manton Reece" xmlUrl="https://www.manton.org/feed.xml" htmlUrl="https://www.manton.org/"></outline>
            <outline title="Marco.org" text="Marco.org" xmlUrl="https://marco.org/rss" htmlUrl="https://marco.org/"></outline>
            <outline title="Martin Fowler" text="Martin Fowler" xmlUrl="https://martinfowler.com/feed.atom" htmlUrl="https://martinfowler.com"></outline>
            <outline title="MaskRay" text="MaskRay" xmlUrl="https://maskray.me/blog/atom.xml" htmlUrl="https://maskray.me/blog/"></outline>
            <outline title="matklad" text="matklad" xmlUrl="https://matklad.github.io/feed.xml" htmlUrl="https://matklad.github.io//"></outline>
            <outline title="Matthias Endler" text="Matthias Endler" xmlUrl="https://endler.dev/rss.xml" htmlUrl="https://endler.dev"></outline>
            <outline title="Matt Might&#39;s blog" text="Matt Might&#39;s blog" xmlUrl="https://matt.might.net/articles/feed.rss" htmlUrl="http://matt.might.net/"></outline>
            <outline title="Michael Tsai" text="Michael Tsai" xmlUrl="https://mjtsai.com/blog/feed/" htmlUrl="https://mjtsai.com/blog"></outline>
            <outline title="Moments in Graphics" text="Moments in Graphics" xmlUrl="http://momentsingraphics.de/RSS.xml" htmlUrl="http://momentsingraphics.de/"></outline>
            <outline title="MonkeyUser" text="MonkeyUser" xmlUrl="https://www.monkeyuser.com/feed.xml" htmlUrl="https://www.monkeyuser.com"></outline>
            <outline title="Mr. Money Mustache" text="Mr. Money Mustache" xmlUrl="https://feeds.feedburner.com/MrMoneyMustache" htmlUrl="https://www.mrmoneymustache.com"></outline>
            <outline title="Nackblog" text="Nackblog" xmlUrl="http://jnack.com/blog/feed/" htmlUrl="http://jnack.com/blog"></outline>
            <outline title="News : NPR" text="News : NPR" xmlUrl="https://feeds.npr.org/1001/rss.xml" htmlUrl="https://www.npr.org/templates/story/story.php?storyId=1001"></outline>
            <outline title="Nicky&#39;s New Shtuff" text="Nicky&#39;s New Shtuff" xmlUrl="https://ncase.me/feed.xml" htmlUrl="https://ncase.me/"></outline>
            <outline title="null program" text="null program" xmlUrl="https://nullprogram.com/feed/" htmlUrl="https://nullprogram.com"></outline>
            <outline title="One Foot Tsunami" text="One Foot Tsunami" xmlUrl="https://onefoottsunami.com/feed/json/" htmlUrl="https://onefoottsunami.com/"></outline>
            <outline title="OpenBSD Journal" text="OpenBSD Journal" xmlUrl="https://www.undeadly.org/cgi?action=rss" htmlUrl="https://www.undeadly.org/"></outline>
            <outline title="OpenBSD Webzine" text="OpenBSD Webzine" xmlUrl="https://webzine.puffy.cafe/atom.xml" htmlUrl="https://webzine.puffy.cafe/"></outline>
            <outline title="Open Source Musings" text="Open Source Musings" xmlUrl="https://opensourcemusings.com/feed/" htmlUrl="https://opensourcemusings.com/"></outline>
            <outline title="Open Source with Christopher Lydon" text="Open Source with Christopher Lydon" xmlUrl="https://radioopensource.org/feed/" htmlUrl="https://radioopensource.org"></outline>
            <outline title="Paul E. McKenney&#39;s Journal" text="Paul E. McKenney&#39;s Journal" xmlUrl="https://paulmck.livejournal.com/data/rss" htmlUrl="https://paulmck.livejournal.com/"></outline>
            <outline title="Phys.org - latest science and technology news stories" text="Phys.org - latest science and technology news stories" xmlUrl="https://phys.org/rss-feed/breaking/" htmlUrl="https://phys.org/"></outline>
            <outline title="Schneier on Security" text="Schneier on Security" xmlUrl="https://www.schneier.com/feed/atom/" htmlUrl="https://www.schneier.com/blog/"></outline>
            <outline title="Scott H Young" text="Scott H Young" xmlUrl="http://feeds.feedburner.com/scotthyoung/HAHx" htmlUrl="https://www.scotthyoung.com/blog"></outline>
            <outline title="Scripting News" text="Scripting News" xmlUrl="http://scripting.com/rss.xml" htmlUrl="http://scripting.com/"></outline>
            <outline title="Simon Willison&#39;s Weblog" text="Simon Willison&#39;s Weblog" xmlUrl="https://simonwillison.net/atom/everything/" htmlUrl="http://simonwillison.net/"></outline>
            <outline title="Slashdot" text="Slashdot" xmlUrl="http://rss.slashdot.org/Slashdot/slashdot" htmlUrl="https://slashdot.org/"></outline>
            <outline title="Stochastic Lifestyle" text="Stochastic Lifestyle" xmlUrl="https://www.stochasticlifestyle.com/feed/" htmlUrl="https://www.stochasticlifestyle.com"></outline>
            <outline title="swyx.io blog" text="swyx.io blog" xmlUrl="https://www.swyx.io/api/rss.xml" htmlUrl="https://swyx.io"></outline>
            <outline title="Tania Rascia | RSS Feed" text="Tania Rascia | RSS Feed" xmlUrl="https://www.taniarascia.com/rss.xml" htmlUrl="https://www.taniarascia.com"></outline>
            <outline title="The Atlantic" text="The Atlantic" xmlUrl="https://feeds.feedburner.com/TheAtlantic" htmlUrl="https://www.theatlantic.com/"></outline>
            <outline title="The David Brownman Blog" text="The David Brownman Blog" xmlUrl="https://xavd.id/blog/feeds/rss.xml" htmlUrl="https://xavd.id"></outline>
            <outline title="The Next Web" text="The Next Web" xmlUrl="https://feeds2.feedburner.com/thenextweb" htmlUrl="https://thenextweb.com"></outline>
            <outline title="The Oatmeal - Comics, Quizzes, &amp; Stories" text="The Oatmeal - Comics, Quizzes, &amp; Stories" xmlUrl="https://feeds.feedburner.com/oatmealfeed" htmlUrl="http://theoatmeal.com/"></outline>
            <outline title="The ryg blog" text="The ryg blog" xmlUrl="https://fgiesen.wordpress.com/feed/" htmlUrl="https://fgiesen.wordpress.com"></outline>
            <outline title="The Sweet Setup" text="The Sweet Setup" xmlUrl="https://thesweetsetup.com/feed/" htmlUrl="https://thesweetsetup.com"></outline>
            <outline title="Varun Vachhar" text="Varun Vachhar" xmlUrl="https://varun.ca/rss.xml" htmlUrl="https://varun.ca"></outline>
            <outline title="webcomic name" text="webcomic name" xmlUrl="https://webcomicname.com/rss" htmlUrl="https://webcomicname.com/"></outline>
            <outline title="Whatever" text="Whatever" xmlUrl="https://whatever.scalzi.com/feed/" htmlUrl="https://whatever.scalzi.com"></outline>
            <outline title="Wikipedia featured articles feed" text="Wikipedia featured articles feed" xmlUrl="https://en.wikipedia.org/w/api.php?action=featuredfeed&amp;feed=featured&amp;feedformat=atom" htmlUrl="https://en.wikipedia.org/wiki/Main_Page"></outline>
            <outline title="Wikipedia picture of the day feed" text="Wikipedia picture of the day feed" xmlUrl="https://en.wikipedia.org/w/api.php?action=featuredfeed&amp;feed=potd&amp;feedformat=atom" htmlUrl="https://en.wikipedia.org/wiki/Main_Page"></outline>
            <outline title="Writing - rachelbythebay" text="Writing - rachelbythebay" xmlUrl="https://rachelbythebay.com/w/atom.xml" htmlUrl="https://rachelbythebay.com/w/"></outline>
            <outline title="www.linusakesson.net" text="www.linusakesson.net" xmlUrl="http://www.linusakesson.net/rssfeed.php" htmlUrl="http://www.linusakesson.net/"></outline>
            <outline title="xkcd.com" text="xkcd.com" xmlUrl="https://xkcd.com/rss.xml" htmlUrl="https://xkcd.com/"></outline>
            <outline title="Yahoo Tech" text="Yahoo Tech" xmlUrl="https://www.yahoo.com/tech/rss" htmlUrl="https://finance.yahoo.com/tech"></outline>
            <outline title="Zhenghao&#39;s blog" text="Zhenghao&#39;s blog" xmlUrl="https://www.zhenghao.io/rss.xml" htmlUrl="https://zhenghao.io"></outline>
        </outline>
    </body>
</opml>

News Reader over ssh

Just an alternative news reader to miniflux, Newsboat is an RSS/Atom feed reader for the text console. It's database of feeds is separate from miniflux and has no images.

Reference:

2.25-screenshot_1x-33f26153.png

Continue

Now that a world of news feeds are at your fingertips, how about doing some electronics work? Read on my friend for an introduction to BeagleBone boards.

Proceed in the order presented, some things are depending on prior setups.

Book Last Updated: 29-March-2024



News and RSS Reader - Linux in the House - https://linux-in-the-house.org Creative Commons License