Нема описа

Frédéric Guillot d62df4e02a refactor(server): avoid double call to Sprintf пре 9 месеци
.devcontainer c326d5574b build: Bump devcontainer version to go 1.23 пре 1 година
.github a8076e1891 ci: remove deprecated `reviewers` field from `dependantbot.yml` пре 11 месеци
client 2a9d91c783 feat: add entry filters at the feed level пре 9 месеци
contrib 2dffcfeadc fix: add datasource variable and upgrade depecrated panels on the grafana dashboard пре 1 година
internal d62df4e02a refactor(server): avoid double call to Sprintf пре 9 месеци
packaging 4e181330d0 build(deps): bump library/alpine in /packaging/docker/alpine пре 10 месеци
.gitignore 4b86570b7c chore(gitignore): ignore miniflux binary in root directory пре 10 месеци
ChangeLog 325c505b88 docs(changelog): update release notes for version 2.2.9 пре 10 месеци
LICENSE 8ffb773f43 First commit пре 8 година
Makefile d33e305af9 fix(api): `hide_globally` categories field should be a boolean пре 11 месеци
Procfile 41ce0a3b80 Make latest changes compatible with Heroku пре 7 година
README.md 6a6a88d06d docs(readme): document a couple of nifty features пре 9 месеци
SECURITY.md ea8c3c801a Update Security policy пре 3 година
go.mod 50dff576b0 build(go): bump to go 1.24 пре 9 месеци
go.sum 567e8cfc89 build(deps): bump golang.org/x/image from 0.27.0 to 0.28.0 пре 10 месеци
main.go 168a870c02 Move internal packages to an internal folder пре 2 година
miniflux.1 e0f7e6f2a8 feat(config)!: remove `SERVER_TIMING_HEADER` config option пре 9 месеци

README.md

Miniflux 2

Miniflux is a minimalist and opinionated feed reader. It's simple, fast, lightweight and super easy to install.

Official website: https://miniflux.app

Features

Feed Reader

  • Supported feed formats: Atom 0.3/1.0, RSS 1.0/2.0, and JSON Feed 1.0/1.1.
  • OPML file import/export and URL import.
  • Supports multiple attachments (podcasts, videos, music, and images enclosures).
  • Plays videos from YouTube directly inside Miniflux.
  • Organizes articles using categories and bookmarks.
  • Share individual articles publicly.
  • Fetches website icons (favicons).
  • Saves articles to third-party services.
  • Provides full-text search (powered by Postgres).
  • Available in 20 languages: Portuguese (Brazilian), Chinese (Simplified and Traditional), Dutch, English (US), Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Polish, Romanian, Russian, Taiwanese POJ, Ukrainian, Spanish, and Turkish.

Privacy and Security

  • Removes pixel trackers.
  • Strips tracking parameters from URLs (e.g., utm_source, utm_medium, utm_campaign, fbclid, etc.).
  • Retrieves original links when feeds are sourced from FeedBurner.
  • Opens external links with attributes rel="noopener noreferrer" referrerpolicy="no-referrer" for improved security.
  • Implements the HTTP header Referrer-Policy: no-referrer to prevent referrer leakage.
  • Provides a media proxy to avoid tracking and resolve mixed content warnings when using HTTPS.
  • Plays YouTube videos via the privacy-focused domain youtube-nocookie.com.
  • Supports alternative YouTube video players such as Invidious.
  • Blocks external JavaScript to prevent tracking and enhance security.
  • Sanitizes external content before rendering it.
  • Enforces a Content Security and a Trusted Types Policy to only application JavaScript and blocks inline scripts and styles.

Bot Protection Bypass Mechanisms

  • Optionally disable HTTP/2 to mitigate fingerprinting.
  • Allows configuration of a custom user agent.
  • Supports adding custom cookies for specific use cases.
  • Enables the use of proxies for enhanced privacy or bypassing restrictions.

Content Manipulation

  • Fetches the original article and extracts only the relevant content using a local Readability parser.
  • Allows custom scraper rules based on CSS selectors.
  • Supports custom rewriting rules for content manipulation.
  • Provides a regex filter to include or exclude articles based on specific patterns.
  • Optionally permits self-signed or invalid certificates (disabled by default).
  • Scrapes YouTube's website to retrieve video duration as read time or uses the YouTube API (disabled by default).

User Interface

  • Optimized stylesheet for readability.
  • Responsive design that adapts seamlessly to desktop, tablet, and mobile devices.
  • Minimalistic and distraction-free user interface.
  • No requirement to download an app from Apple App Store or Google Play Store.
  • Can be added directly to the home screen for quick access.
  • Supports a wide range of keyboard shortcuts for efficient navigation.
  • Optional touch gesture support for navigation on mobile devices.
  • Custom stylesheets and JavaScript to personalize the user interface to your preferences.
  • Themes:
    • Light (Sans-Serif)
    • Light (Serif)
    • Dark (Sans-Serif)
    • Dark (Serif)
    • System (Sans-Serif) – Automatically switches between Dark and Light themes based on system preferences.
    • System (Serif)

Integrations

Authentication

  • Local username and password.
  • Passkeys (WebAuthn).
  • Google (OAuth2).
  • Generic OpenID Connect.
  • Reverse-Proxy authentication.

Technical Stuff

  • Written in Go (Golang).
  • Single binary compiled statically without dependency.
  • Works only with PostgreSQL.
  • Does not use any ORM or any complicated frameworks.
  • Uses modern vanilla JavaScript only when necessary.
  • All static files are bundled into the application binary using the Go embed package.
  • Supports the Systemd sd_notify protocol for process monitoring.
  • Configures HTTPS automatically with Let's Encrypt.
  • Allows the use of custom SSL certificates.
  • Supports HTTP/2 when TLS is enabled.
  • Updates feeds in the background using an internal scheduler or a traditional cron job.
  • Uses native lazy loading for images and iframes.
  • Compatible only with modern browsers.
  • Adheres to the Twelve-Factor App methodology.
  • Provides official Debian/RPM packages and pre-built binaries.
  • Publishes a Docker image to Docker Hub, GitHub Registry, and Quay.io Registry, with ARM architecture support.
  • Uses a limited amount of third-party go dependencies
  • Has a comprehensive testsuite, with both unit tests and integration tests.
  • Only uses a couple of MB of memory and a negligible amount of CPU, even with several hundreds of feeds.
  • Respects/sends Last-Modified, If-Modified-Since, If-None-Match, Cache-Control, Expires and ETags headers, and has a default polling interval of 1h.

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