Minimalist and opinionated feed reader

Miniflux 2

Miniflux is a minimalist and opinionated feed reader:

  • Written in Go (Golang)
  • Works only with Postgresql
  • Doesn't use any ORM
  • Doesn't use any complicated framework
  • Use only modern vanilla Javascript (ES6 and Fetch API)
  • Single binary compiled statically without dependency
  • The number of features is voluntarily limited

It's simple, fast, lightweight and super easy to install.

Official website: https://miniflux.app

Documentation

The Miniflux documentation is available here: https://miniflux.app/docs/ (Man page)

Screenshots

Default theme:

Default theme

Dark theme when using keyboard navigation:

Dark theme

Credits

Owner
Miniflux
Minimalist and opinionated feed reader
Miniflux
Comments
  • Proxify images in API responses

    Proxify images in API responses

    fix #1591 fix #1279 This PR allows to proxy images of an entry content and enclosures when using the API. Feel free to make suggestions.

    Do you follow the guidelines?

    • [x] I have tested my changes
    • [x] I read this document: https://miniflux.app/faq.html#pull-request
  • Is there a Google Reader API support in the future?

    Is there a Google Reader API support in the future?

    [Feature Request] I use Reeder 4 APP on all my devices, and I found for self-hosted RSS service, Google Reader API has more functionality than Fever API, like u can add/remove subscriptions or manage folders right in app, maybe it's more convenient than on the web. So is there a Google Reader API support in the future?

  • Tumblr RSS feed

    Tumblr RSS feed "Unable to find any subscription"

    I'm trying to subscribe to http://prostheticknowledge.tumblr.com/ but miniflux seems to be unable to add that feed although it's perfectly valid https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fprostheticknowledge.tumblr.com%2Frss

    I've tried with some other tumblr websites and they have the same issue.

    I've actually used to have that subscription on the previous miniflux version (PHP one), so I guess that is an issue just on the new miniflux 2?

  • Make reading speed user-configurable

    Make reading speed user-configurable

    Do you follow the guidelines?

    • [x] I have tested my changes
    • [x] I read this document: https://miniflux.app/faq.html#pull-request

    Hello! πŸ‘‹πŸ» I was lacking the possibility to configure the reading speed so this PR fixes that. I acknowledge the fact that it creates two more settings, which could be a reason for not merging it. I'm opening this as a discussion πŸ™‚

    Here's what it looks like:

    Screenshot 2021-08-30 at 16 56 19

    I don't know what to do with the translations: should I use something like Google Translate to provide a basic translation for supported languages that I don't speak? Currently only French and English are OK.

    Finally, I don't mean to offend anyone so if the naming of AsianReadingSpeed is not OK in this regard, please let me know (preferably with a suggestion πŸ™‚)!

  • Recovering from feed errors

    Recovering from feed errors

    My situation is similar to #149 except I will likely be experiencing timeouts everyday depending on how heavy the internet is being used (Windows Update can be a huge sucker). Not to mention natural disasters can cut internet connection for days.

    Is there a reason why feeds are not updated after 3 errors? Is it performance-wise? Shouldn't this be the responsibility of the user? I would prefer to not constantly check miniflux for network errors. I'm a forgetful person so this is a big issue for me. I believe the number indicator beside the Feeds menu is good enough to notify the user that something is wrong (maybe you can make it color red).

    #288 will be a good complement for this. You can disable feeds that are invalid and retry the rest.

  • Better feeds management

    Better feeds management

    I have made following improvement. This would help user to find the most useful/read feeds (Also See #668).

    1. In the feeds page, in addition to "unread/read" count, add the "total" count. Add latest post time to the feeds page.
    2. Allow to sort feeds by a given order allow to sort feeds by last published time. Solved #632 This is intentional done on the client side. No need to send requests to the server.
    3. Differentiate the actual "read" items from the items "marked as read" By adding a new status "marked". Fever API is unchanged. always marked as "read".
    4. in the history page, allow user to show only "viewed/read" items.
  • Feeds not updating on 2.0.25

    Feeds not updating on 2.0.25

    I updated to 2.0.25, and now my feeds are not updating. They all have last check as 1 hour ago, and new articles are not being pulled. Manually refreshing has no effect.

    There are no log entries aside from User authenticated messages:

    Current schema version: 37
    Latest schema version: 40
    Migrating to version: 38
    Migrating to version: 39
    Migrating to version: 40
    [INFO] Starting Miniflux...
    [INFO] Starting scheduler...
    [INFO] Listening on "0.0.0.0:8080" without TLS
    [INFO] [API][TokenAuth] [ClientIP=<IP>] User authenticated: <USER>
    ...
    

    I am running via the miniflux/miniflux Docker container.

  • Impossible to log-in on iOS

    Impossible to log-in on iOS

    Hi,

    As reported in another thread for the hosted version, the open source self hosted version on a Raspberry Pi does not let me log in. I always get "Invalid or missing CSRF".

    I tried incognito/private navigation and regular one. I also tried to flush sessions. It stopped working suddenly one day with version 2.0.16 and it is still broken with 2.0.17.

    Firefox from a Linux desktop does work, but I always read news from my mobile.

    How can I fix it or help to find the issue?

    Thank you

  • Filtering out articles?

    Filtering out articles?

    Any suggestions on filtering out articles that contain keywords?

    If the recommendation is to implement this outside of miniflux - any suggestions for that?

    Thanks

  • 403 on reddit feeds

    403 on reddit feeds

    I have about 30 reddit feeds on my self hosted miniflux instance and they all started failing with '403' errors. I tried curling like so from the same machine that the instance is hosted on:

    > curl https://www.reddit.com/r/gaming/top.rss -vvI -X GET   -H "User-Agent: Mozilla/5.0 (compatible; Miniflux/2.0.36; +https://miniflux.app)" -H 'Connection: close' --http1.1 -H
     'Accept-Encoding: gzip'
    *   Trying 151.101.1.140:443...
    * TCP_NODELAY set
    * Connected to www.reddit.com (151.101.1.140) port 443 (#0)
    * ALPN, offering http/1.1
    * successfully set certificate verify locations:
    *   CAfile: /etc/ssl/certs/ca-certificates.crt
      CApath: /etc/ssl/certs
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    * TLSv1.3 (IN), TLS handshake, Server hello (2):
    * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
    * TLSv1.3 (IN), TLS handshake, Certificate (11):
    * TLSv1.3 (IN), TLS handshake, CERT verify (15):
    * TLSv1.3 (IN), TLS handshake, Finished (20):
    * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
    * TLSv1.3 (OUT), TLS handshake, Finished (20):
    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
    * ALPN, server accepted to use http/1.1
    * Server certificate:
    *  subject: C=US; ST=CALIFORNIA; L=SAN FRANCISCO; O=Reddit Inc.; CN=*.reddit.com
    *  start date: Feb 17 00:00:00 2022 GMT
    *  expire date: Aug 16 23:59:59 2022 GMT
    *  subjectAltName: host "www.reddit.com" matched cert's "*.reddit.com"
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  SSL certificate verify ok.
    > GET /r/gaming/top.rss HTTP/1.1
    > Host: www.reddit.com
    > Accept: */*
    > User-Agent: Mozilla/5.0 (compatible; Miniflux/2.0.36; +https://miniflux.app)
    > Connection: close
    > Accept-Encoding: gzip
    >
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    

    I tried modifying the miniflux user agent for this feed to use my browser's user agent and I still get 403 when I try to update/refresh/add reddit feeds. I tried going inside the container itself and running wget on a feed (as curl isn't available) and that also worked. Finally, I enabled debug logging and collected the following when trying to add a feed:

    [DEBUG] [HttpClient:Before] Method=GET InputURL="https://www.reddit.com/r/gaming/top.rss" ETag=None LastMod=None Auth=false UserAgent="Mozilla/5.0 (compatible; Miniflux/2.0.36; +https://miniflux.app)" Verify=true
    [DEBUG] [HttpClient:After] Method=GET InputURL="https://www.reddit.com/r/gaming/top.rss" ETag=None LastMod=None Auth=false UserAgent="Mozilla/5.0 (compatible; Miniflux/2.0.36; +https://miniflux.app)" Verify=true; Response => StatusCode=403 EffectiveURL="https://www.reddit.com/r/gaming/top.rss" LastModified="" ETag= Expires= ContentType="text/plain" ContentLength=7
    [DEBUG] [HttpClient] inputURL=https://www.reddit.com/r/gaming/top.rss took 93.221736ms
    [ERROR] [UI:SubmitSubscription] Unable to fetch this resource (Status Code = 403)
    

    as well as this one when trying with my browser's UA

    [DEBUG] [HttpClient:Before] Method=GET InputURL="https://www.reddit.com/r/gaming/top.rss" ETag=None LastMod=None Auth=false UserAgent=" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" Verify=true
    [DEBUG] [HttpClient:After] Method=GET InputURL="https://www.reddit.com/r/gaming/top.rss" ETag=None LastMod=None Auth=false UserAgent=" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36" Verify=true; Response => StatusCode=403 EffectiveURL="https://www.reddit.com/r/gaming/top.rss" LastModified="" ETag= Expires= ContentType="text/plain" ContentLength=7
    [DEBUG] [HttpClient] inputURL=https://www.reddit.com/r/gaming/top.rss took 80.981398ms
    

    What else is different about how miniflux calls reddit? Is there a way for me to read the content of that 403 that's coming back? I don't think that I'm getting rate limited because when I call the feed with no user agent, I get a 429 with a brief message saying that I should use a user agent.

  • Theme selection is not applied

    Theme selection is not applied

    This occurred after upgrading from 2.0.2 to 2.0.12.

    • I used the black theme before upgrading, after the upgrade the app was displayed on a white background.
    • The "link rel=stylesheet" header points to default.css, changing it to black.css displays the correct theme.
    • The settings value for theme is set to "black", changing it back and forth doesn't help

    looking at the db:

    • in the table "users" the column "theme" is set to "black"
    • in the table "sessions" the key "Theme" is set to "", as are all other keys except "csrf"
  • Feature Request: Refresh all failed feeds button

    Feature Request: Refresh all failed feeds button

    • [x ] I have read this document: https://miniflux.app/opinionated.html#feature-request Hey I was wondering if you could add a button to refresh all failed feeds. I've been having to individually refresh them and its pretty tedious.
  • Migrate all data from other readers

    Migrate all data from other readers

    I really liked miniflux and want to migrate to it from FreshRSS.

    Is it possible to move (1) all the entries cached by FreshRSS, not just the ones that certain feed returns and (2) read/unread statuses of all the entries?

  • ENHANCEMENT HELP QUESTION Enhance find a feed

    ENHANCEMENT HELP QUESTION Enhance find a feed

    πŸ‘‰ https://github.com/miniflux/v2/issues/35

    πŸ‘‹

    As title

    When I try to find a feed from this URL, which clearly has .rss URIs in the page, nothing is found: Screenshot 2022-12-18 at 06 54 14 Screenshot 2022-12-18 at 06 55 15

    Is there a simple reason why no feed is found else could this issue be a feature request to enhance the feature?

    If you're reading and:

    • agree then please vote up (e.g. +1, like), or;
    • disagree then please vote down (e.g. -1, dislike) - I'd love to know why?

    Welcome feedback/input

    Sincerely

    Software - application:

    Version: 2.0.41
    Git Commit e12c263f
    Build Date: 2022-12-10T18:48:05+0000
    Postgres version: 14.6 (Debian 14.6-1.pgdg110+1)
    Go version: go1.19.4
    
  • Support transparent status bar on iOS

    Support transparent status bar on iOS

    This is a small change to HTML to make the status bar on iOS transparent. It isn't really notable with the default themes, but is helpful for PWA when using custom CSS. Docs from Apple regarding these tags

    • [x] I have tested my changes
    • [x] I read this document: https://miniflux.app/faq.html#pull-request
  • Wallabag integration doesn't support subpaths

    Wallabag integration doesn't support subpaths

    As raised in https://github.com/miniflux/v2/issues/655 Wallabag instances woking on URL with subpath ex. mydomain.com/wallabag don't work with current implementation. Endpoints are cutted to mydomain.com. Is there really need for that? Can be fixed?

  • Login page locale without cookies

    Login page locale without cookies

    The language of the login page is determined by cookies (Settings - Language), so initially it is always in English. Is it possible to set non-English locale of the login page without cookies?

A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.
A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.

one-file-pdf - A minimalist PDF generator in <2K lines and 1 file The main idea behind this project was: "How small can I make a PDF generator for it

Dec 11, 2022
Optimized bit-level Reader and Writer for Go.

bitio Package bitio provides an optimized bit-level Reader and Writer for Go. You can use Reader.ReadBits() to read arbitrary number of bits from an i

Dec 1, 2022
Load environment variables from `.env` or `io.Reader` in Go.

gotenv Load environment variables from .env or io.Reader in Go. Usage Put the gotenv package on your import statement: import "github.com/subosito/got

Dec 30, 2022
A bit reader tool written in golang

A bit reader tool written in golang

Dec 12, 2021
:guardsman: A teeny tiny and somewhat opinionated generator for your next golang project

A Yeoman Golang Generator We are very sorry Gophers, but other names for the generator where taken, so we choose go-lang. But we have gocreate as an a

Sep 27, 2022
Giraffe - An opinionated static site generator written in Go

Giraffe: An opinionated static site generator I want to start 2022 by writing a

Nov 18, 2022
Esfmt - An opinionated, zero-configuration formatter for ES/TS/ESX/TSX

esfmt - an opinionated, zero-configuration formatter for ES/TS/ESX/TSX Status: t

Apr 5, 2022
[TOOL, CLI] - Filter and examine Go type structures, interfaces and their transitive dependencies and relationships. Export structural types as TypeScript value object or bare type representations.

typex Examine Go types and their transitive dependencies. Export results as TypeScript value objects (or types) declaration. Installation go get -u gi

Dec 6, 2022
:chart_with_upwards_trend: Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...

Package stats Package stats allows for gathering of statistics regarding your Go application and system it is running on and sent them via UDP to a se

Nov 10, 2022
James is your butler and helps you to create, build, debug, test and run your Go projects
James is your butler and helps you to create, build, debug, test and run your Go projects

go-james James is your butler and helps you to create, build, debug, test and run your Go projects. When you often create new apps using Go, it quickl

Oct 8, 2022
GoThanks automatically stars Go's official repository and your go.mod github dependencies, providing a simple way to say thanks to the maintainers of the modules you use and the contributors of Go itself.
GoThanks automatically stars Go's official repository and your go.mod github dependencies, providing a simple way  to say thanks to the maintainers of the modules you use and the contributors of Go itself.

Give thanks (in the form of a GitHub β˜…) to your fellow Go modules maintainers. About GoThanks performs the following operations Sends a star to Go's r

Dec 24, 2022
A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons.

Cron.go This is a simple library to handle scheduled tasks. Tasks can be run in a minimum delay of once a second--for which Cron isn't actually design

Dec 17, 2022
Library to work with MimeHeaders and another mime types. Library support wildcards and parameters.

Mime header Motivation This library created to help people to parse media type data, like headers, and store and match it. The main features of the li

Nov 9, 2022
The new home of the CUE language! Validate and define text-based and dynamic configuration

The CUE Data Constraint Language Configure, Unify, Execute CUE is an open source data constraint language which aims to simplify tasks involving defin

Dec 31, 2022
Hack this repo and add your name to the list above. Creativity and style encouraged in both endeavors.

Hack this repo and add your name to the list above. Creativity and style encouraged in both endeavors.

Oct 1, 2021
A comprehensive training, nutrition, and social platform for martial artists and combat sport athletes

COMHRAC Comhrac (Gaelic for "Combat") is a comprehensive training, nutrition, and social platform for martial artists and combat sport athletes. Devel

Oct 17, 2021
Purpose: dump slack messages, users and files using browser token and cookie.

Slack Dumper Purpose: dump slack messages, users and files using browser token and cookie. Typical usecase scenarios: You want to archive your private

Jan 2, 2023
Package buildinfo provides basic building blocks and instructions to easily add build and release information to your app.
Package buildinfo provides basic building blocks and instructions to easily add build and release information to your app.

Package buildinfo provides basic building blocks and instructions to easily add build and release information to your app. This is done by replacing variables in main during build with ldflags.

Nov 14, 2021
Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and traditional RESTful API.

Phalanx Phalanx is a cloud-native full-text search and indexing server written in Go built on top of Bluge that provides endpoints through gRPC and tr

Dec 25, 2022