diff --git a/README.md b/README.md index 2dd66694..555ec7d3 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,110 @@ 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 - +Miniflux is a minimalist and opinionated feed reader. It's simple, fast, lightweight and super easy to install. Official website: +Features +-------- + +### Feed Reader + +- Supported feed formats: Atom 0.3/1.0, RSS 1.0/2.0, and JSON Feed 1.0/1.1. +- [OPML](https://en.wikipedia.org/wiki/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 + +- 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](https://invidio.us). +- Blocks external JavaScript to prevent tracking and enhance security. + +### 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 + +- 25+ integrations with third-party services: [Apprise](https://github.com/caronc/apprise), [Betula](https://sr.ht/~bouncepaw/betula/), [Cubox](https://cubox.cc/), [Discord](https://discord.com/), [Espial](https://github.com/jonschoning/espial), [Instapaper](https://www.instapaper.com/), [LinkAce](https://www.linkace.org/), [Linkding](https://github.com/sissbruecker/linkding), [LinkWarden](https://linkwarden.app/), [Matrix](https://matrix.org), [Notion](https://www.notion.com/), [Ntfy](https://ntfy.sh/), [Nunux Keeper](https://keeper.nunux.org/), [Pinboard](https://pinboard.in/), [Pocket](https://getpocket.com/), [Pushover](https://pushover.net), [RainDrop](https://raindrop.io/), [Readeck](https://readeck.org/en/), [Readwise Reader](https://readwise.io/read), [RssBridge](https://rss-bridge.org/), [Shaarli](https://github.com/shaarli/Shaarli), [Shiori](https://github.com/go-shiori/shiori), [Slack](https://slack.com/), [Telegram](https://telegram.org), [Wallabag](https://www.wallabag.org/), etc. +- Bookmarklet for subscribing to websites directly from any web browser. +- Webhooks for real-time notifications or custom integrations. +- Compatibility with existing mobile applications using the Fever or Google Reader API. +- REST API with client libraries available in [Go](https://github.com/miniflux/v2/tree/main/client) and [Python](https://github.com/miniflux/python-client). + +### Authentication + +- Local username and password. +- Passkeys ([WebAuthn](https://en.wikipedia.org/wiki/WebAuthn)). +- Google (OAuth2). +- Generic OpenID Connect. +- Reverse-Proxy authentication. + +### Technical Stuff + +- Written in [Go (Golang)](https://golang.org/). +- Single binary compiled statically without dependency. +- Works only with [PostgreSQL](https://www.postgresql.org/). +- 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](https://en.wikipedia.org/wiki/HTTP/2) when TLS is enabled. +- Updates feeds in the background using an internal scheduler or a traditional cron job. +- Sanitizes external content before rendering it. +- Enforces a [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) that permits only application JavaScript and blocks inline scripts and styles. +- Uses native lazy loading for images and iframes. +- Compatible only with modern browsers. +- Adheres to the [Twelve-Factor App](https://12factor.net/) 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. + Documentation ------------- @@ -29,7 +119,7 @@ The Miniflux documentation is available here: ([Man - [Command Line Usage](https://miniflux.app/docs/cli.html) - [User Interface Usage](https://miniflux.app/docs/ui.html) - [Keyboard Shortcuts](https://miniflux.app/docs/keyboard_shortcuts.html) -- [Integration with External Services](https://miniflux.app/docs/services.html) +- [Integration with External Services](https://miniflux.app/docs/#integrations) - [Rewrite and Scraper Rules](https://miniflux.app/docs/rules.html) - [API Reference](https://miniflux.app/docs/api.html) - [Development](https://miniflux.app/docs/development.html)