Tiny RSS
tt-rss.orgA web-based news feed reader and aggregator, supporting RSS/Atom feeds. It's free, open source, and offers a customizable and self-hostable platform for managing your news feeds.
- Homepage:tt-rss.org
- GitHub:github.com/tt-rss/tt-rss
- Web info:web-check.xyz/check/tt-rss.org
Tiny RSS Source Code
Author
Description
A free, flexible, open-source, web-based news feed (RSS/Atom/other) reader and aggregator.
Homepage
Repository
- LicenseGPL-3.0
- Created03 Oct 25
- Primary languagePHP
- Size138,197 KB
- Stars869
- Forks88
- Watchers869
Language Usage
Project Health
- Last commit5 days ago
- Open issues34
Top Contributors
@cthu1hoo (1096)
@supahgreg (435)
@ivanivanov884 (304)
@dependabot[bot] (53)
@weblate (40)
@HeikoAdams (35)
@LaurentGH (30)
@gaul (27)
@TonyRL (26)
@ptsa (22)
@dariottolo (19)
@RaphaelRochet (18)
@justauserx (18)
@ashcoft (17)
@AndriiZ (17)
@whyparkc (17)
@andersk (16)
@dedioste (16)
@cweiske (15)
@ekalin (14)
@pahles (14)
@michaelkuhn (14)
@richbeales (13)
@ujdhesa (12)
@sikmir (11)
@marapavelka (10)
@cy8aer (9)
@lotrfan (9)
@levito (8)
@chyuaner (8)
@klempin (8)
@PerryWerneck (8)
@ifireball (8)
@discotag (7)
@yan12125 (7)
@tribut (6)
@gvmelle (6)
@falu (5)
@koalahong (5)
@glossolallia (5)
@jmechnich (5)
@bbraybrook-tc (5)
@aliz27 (5)
@TobiasKappe (5)
@sq5gvm (5)
@DennisGaida (5)
@dandersson (5)
@mhaley (4)
@ldidry (4)
@wltb (4)
@syrnon (4)
@gitawego (4)
@akapar (4)
@yurtpage (4)
@yak1ex (4)
@rangerer (4)
@hoelzro (4)
@lassana (4)
@ggrandou (4)
@vapier (4)
@HenryQW (3)
@tsimmons (3)
@MikkCZ (3)
@valdisvi (3)
@Art4 (3)
@desolaris (3)
@powerivq (3)
@lllusion3418 (3)
@realEpamer (3)
@meyercr (3)
@derekschrock (3)
@mitakas (3)
@zedascouves (3)
@EyesX (3)
@nikolas-n (3)
@iskaron (3)
@rwetzlmayr (3)
@Trottel (3)
@fluffy-critter (3)
@Terrance (2)
@sunjayc (2)
@Siemenskun (2)
@ilesinge (2)
@nett00n (2)
@asalthobaity (2)
@defkev (2)
@hydrian (2)
@kythyria (2)
@ltguillaume (2)
@shibuya246 (2)
@WalterSullivan (2)
@syrn0n (2)
@xnoreq (2)
@zmni (2)
@conrad784 (2)
@waldyrious (2)
@mbirth (2)
@MatthieuSarter (2)
@ardzeus (2)
@TheSpyder (2)
Recent Commits
supahgreg(24 Oct 26)
Properly restrict generated feed access by 'is_cat'. GHSA-jp5f-hphf-vrwp
supahgreg(24 Oct 26)
Minor tweak to 'Feeds::_get_update_intervals()'
supahgreg(22 Oct 26)
Bump Alpine to 3.24.3, nginx to 1.31.8. * https://alpinelinux.org/posts/Alpine-3.21.9-3.22.7-3.23.7-3.24.3-released.html * https://nginx.org/en/CHANGES
Greg(18 Oct 26)
Centralize purge and update intervals, validate during subscribe. (#464) * Centralize purge and update intervals, validate during subscribe. * Add 'getFeedUpdateIntervals' to the API. * Add missing return type info for new 'Feed intervals' functions.
supahgreg(17 Oct 26)
Bump nginx to 1.31.7
Dawid Wróbel(17 Oct 26)
Allow setting update interval when subscribing through the API (#463) subscribeToFeed in the API does not allow to set update interval right now, so feeds are added with user's default interval. Accept an optional update_interval parameter, reject values below -1 with INCORRECT_USAGE, and raise the API level to 24.
Shai(17 Oct 26)
Don't pass curl options when Guzzle will use its stream handler (#462) Guzzle only uses a curl handler when libcurl is at least 7.34.0 with SSL support (and a few constants are defined); otherwise it falls back to the stream handler, which rejects the 'curl' request option. using_curl() only checked that the curl functions exist, so fetches failed on hosts with an older libcurl such as CentOS 7's 7.29.0. Fixes #426 Co-authored-by: Shaisolaris <[email protected]>
dependabot[bot](17 Oct 26)
GitHub Actions: Bump actions/setup-node from 7.0.0 to 7.1.0 (#461) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/820762786026740c76f36085b0efc47a31fe5020...949feb2413d6458794dcd2491c4babbbce0c15c1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot](17 Oct 26)
GitHub Actions: Bump shivammathur/setup-php from 2.37.2 to 2.40.0 (#460) Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.37.2 to 2.40.0. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](https://github.com/shivammathur/setup-php/compare/f3e473d116dcccaddc5834248c87452386958240...eb7c497e18156a6bbabfef1d3a82760b9eda3962) --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-version: 2.40.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Greg(02 Oct 26)
Merge pull request #456 from tt-rss/weblate-integration Translations update from Hosted Weblate
Dony Wibowo(30 Sept 26)
Translated using Weblate (Indonesian) Currently translated at 100.0% (728 of 728 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/id/
dependabot[bot](02 Oct 26)
npm: bump the development-dependencies group with 4 updates (#455) Bumps the development-dependencies group with 4 updates: [eslint](https://github.com/eslint/eslint), [globals](https://github.com/sindresorhus/globals), [less](https://github.com/less/less.js) and [stylelint](https://github.com/stylelint/stylelint). Updates `eslint` from 10.9.1 to 10.11.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.11.0) Updates `globals` from 17.11.0 to 17.12.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.11.0...v17.12.0) Updates `less` from 4.9.0 to 4.9.1 - [Release notes](https://github.com/less/less.js/releases) - [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/less/less.js/compare/v4.9.0...v4.9.1) Updates `stylelint` from 17.14.1 to 17.15.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/17.14.1...17.15.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: globals dependency-version: 17.12.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: less dependency-version: 4.9.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: stylelint dependency-version: 17.15.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Greg(30 Sept 26)
Merge pull request #453 from tt-rss/weblate-integration Translations update from Hosted Weblate
TonyRL(30 Sept 26)
Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (728 of 728 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/zh_Hant/
Hosted Weblate user 54392(30 Sept 26)
Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (728 of 728 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/zh_Hans/
LaurentC(29 Sept 26)
Translated using Weblate (French) Currently translated at 100.0% (728 of 728 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/fr/
Greg(29 Sept 26)
Merge pull request #452 from tt-rss/weblate-integration Translations update from Hosted Weblate
Hosted Weblate(29 Sept 26)
Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/
Dony Wibowo(28 Sept 26)
Translated using Weblate (Indonesian) Currently translated at 100.0% (727 of 727 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/id/
LaurentC(28 Sept 26)
Translated using Weblate (French) Currently translated at 100.0% (727 of 727 strings) Translation: TinyTinyRSS/webui Translate-URL: https://hosted.weblate.org/projects/tt-rss/webui/fr/
Greg(29 Sept 26)
Merge pull request #451 from tt-rss/GHSA-9f8c-5cv6-jv5x Improve Database Updater session validation, require reauth on access level changes (GHSA-9f8c-5cv6-jv5x)
supahgreg(29 Sept 26)
Rebase translations
supahgreg(29 Sept 26)
Validate the session in 'dbupdate'. GHSA-9f8c-5cv6-jv5x
supahgreg(29 Sept 26)
Mark session invalid on access level changes.
Tony(25 Sept 26)
feat: add support for filtering entries by feed title (#449)
Johannes Larsen(25 Sept 26)
Use idempotent mark/publish RPCs instead of toggle RPCs (#435) (#448) Because both the toggleMark/Pub onclick actions and the swipe-to-read touchend action triggers the Headlines.row_observer callback. This results in 2 concurrent syncModified routines for the same change. When those actions were to toggle the states, the 2nd one undid the 1st one. Instead have them both set the new state instead of asking the DB to toggle it, which is idempotent, so it works fine even if both does it. Note that since the mobile app still sends 2 RPCs for the same change, it will still trigger these plugin hooks twice: * HOOK_ARTICLES_MARK_TOGGLED * HOOK_ARTICLES_PUBLISH_TOGGLED Those plugins does not get information about whether it mark/publish flag was set/cleared, so plugins that are not idempotent would still have #435 issues. It would be fair to assume plugins out there would query the DB or something for the latest mark/publish state instead of trying to accurately keep a separate state synchronized with the DB, so these changes would probably not make it any worse for the plugins.
dependabot[bot](25 Sept 26)
GitHub Actions: Bump docker/build-push-action from 7.3.0 to 7.4.0 (#446) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.3.0 to 7.4.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/53b7df96c91f9c12dcc8a07bcb9ccacbed38856a...c3c9e263c25d99ce0380d002d59b67737d91b0dc) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-version: 7.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot](25 Sept 26)
GitHub Actions: Bump docker/setup-qemu-action from 4.2.0 to 4.4.0 (#447) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 4.2.0 to 4.4.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/96fe6ef7f33517b61c61be40b68a1882f3264fb8...99012661954931238ded8c8b007157a8430204e1) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-version: 4.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot](25 Sept 26)
GitHub Actions: Bump docker/setup-buildx-action from 4.3.0 to 4.4.1 (#445) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.3.0 to 4.4.1. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/37fe631027851001ddb9b187196cc803df7f5f0e...f87e5991a6d7451dcb8d9637bfbc97413f497069) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-version: 4.4.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Greg(18 Sept 26)
Merge pull request #444 from tt-rss/base-images-bump Bump to Alpine 3.24.2, nginx 1.31.6.
Tiny RSS Security
Security Advisories (3)
- mediumPatchedCVSS 6
GHSA-9f8c-5cv6-jv5xRevoked administrator sessions still execute the Database Updater via public.php (session not revalidated on that entry point)
- mediumPatchedCVSS 4.3
CVE-2026-81511Tiny Tiny RSS URL validation permits internal-address SSRF bypasses
- highPatchedCVSS 8
CVE-2026-81510Stored cross-site scripting via iframe srcdoc in YouTube-whitelisted feed content
Tiny RSS Website
Website
Home | Tiny Tiny RSS
Tiny Tiny RSS (tt-rss) is a free, flexible, open-source, web-based news feed (RSS/Atom/other) reader and aggregator.
Redirects
Does not redirect
Security Checks
All 65 security checks passed
Server Details
- IP Address185.199.108.153
- Hostnamecdn-185-199-108-153.github.com
- LocationFrancisco,Indiana,United States of America,NA
- ISPGitHub Inc.
- ASNAS54113
Associated Countries
US
Safety Score
Website marked as safe
100%
Trackers
No known trackers found
Blacklist Check
tt-rss.org was found on 0 blacklists
- AntiSocial Blacklist
- Artists Against 419
- Badbitcoin
- Bambenek Consulting
- CERT Polska
- CoinBlockerLists
- CRDF
- CryptoScamDB
- EtherAddressLookup
- EtherScamDB
- Fake Website Buster
- MetaMask EthPhishing
- NABP Not Recommended Sites
- OpenPhish
- PetScams
- PhishFeed
- PhishFort
- Phishing.Database
- PhishStats
- PhishTank
- Phishunt
- RPiList Not Serious
- Scam.Directory
- SecureReload Phishing List
- Spam404
- StopGunScams
- Suspicious Hosting IP
- ThreatFox
- ThreatLog
- TweetFeed
- URLhaus
- ViriBack C2 Tracker
Website Preview
Tiny RSS Docker
Container Info
tt-rss
Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.
View on DockerHub
lunik1/tt-rss:latestRun Command
docker run -d \
-p 80/tcp \
-e PUID=${PUID} \
-e PGID=${PGID} \
-v /portainer/Files/AppData/Config/tt-rss:/config \
--restart=unless-stopped \
lunik1/tt-rss:latestCompose File
version: 3.8
services:
tiny-tiny-rss:
image: "lunik1/tt-rss:latest"
ports:
- 80/tcp
environment:
PUID: 1000
PGID: 100
volumes:
- "/portainer/Files/AppData/Config/tt-rss:/config"
restart: unless-stoppedEnvironment Variables
- Var NameDefault
- PUID1000
- PGID100
Port List
- 80/tcp
Volume Mounting
- Container PathHost Bind
- /config/portainer/Files/AppData/Config/tt-rss
Tiny RSS Reviews
More News Readers
⚠️ This section is still a work in progress ⚠️
Check back soon, or help us complete it by submiting a pull request on GitHub.
Or submit an entry here
About the Data: Tiny RSS
Change History
- Amended (github) #608
Edit Tiny RSS Data
You can edit Tiny RSS's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external
sources, a list of these can be found data documentation.
Origin Data
Modify Data
API
You can access Tiny RSS's data programmatically via our API. Simply make a GET request to:
https://api.awesome-privacy.xyz/v1/services/tiny-rssThe REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.
Share Tiny RSS
Help your friends compare News Readers, and pick privacy-respecting software and services.
Share Tiny RSS and Awesome Privacy with your network!