Формат RSS (Really Simple Syndication) хотя и довольно старая технология, но до сих пор очень популярная. Можно сказать, что сейчас она словно переживает второе рождение, особенно в условиях затруднённого доступа ко многим сайтам.
Это действительно самый удобный способ читать весь контент в одном месте, без рекламы и лишних отвлечений. Конечно, есть внешние RSS-агрегаторы и ридеры, но можно выбрать и другой вариант: запустить агрегатор на своём сервере и не зависеть от внешних факторов. Это даёт бóльшую свободу, потому что его функциональность в некоторых случаях даже шире, чем у специализированных сервисов.
▍ Fusion
RSS-агрегатор Fusion специально разработан для установки и работе на своём сервере (VPS).
Автор говорит, что пробовал Inoreader и Feedly, но в итоге посчитал лучшим вариантом самостоятельно разместить инстанс Miniflux на домашнем хостинге. Недавно он переехал в другой город и ему пришлось надолго отключить домашний сервер, в итоге он не смог получить доступ к локальному Miniflux. Тогда автор решил разместить свой RSS-агрегатор на крошечном VPS или PaaS. Однако Miniflux требует базы данных PostgreSQL, которая не подойдёт для крошечного VPS.
Поэтому он написал Fusion на Golang и SQLite. Он содержит базовые функции, такие как группировка, закладки, поиск, автоматическое чтение фидов, импорт/экспорт OPML-файлов и т. д. Агрегатор использует около 80 МБ памяти и немного CPU.
Как обычно, собираем конфигурацию VPS на странице заказа сервера. Например, на Ubuntu 24.04. В принципе, для такой задачи можно выбрать сервер из набора VPS Старт минимальной конфигурации от 130 рублей в месяц, но нам он нужен для других задач, поэтому остановимся на конфигурации чуть помощнее.
Через несколько минут ОС установлена. Получаем IP-адрес и пароль для удалённого доступа по SSH.
Вводим информацию в SSH-клиент и подключаемся:
Можно установить докер-контейнер:
docker run -it -d -p 8080:8080 -v $(pwd)/fusion:/data \
-e PASSWORD="123456" \
rook1e404/fusion
Или скачать готовый бинарник со страницы релизов, отредактировать
.env
и запускать напрямую ./fusion
, что лучше для VPS в минимальной конфигурации.После установки можно подключаться к фронтенду на сервере, введя в браузере адрес
http://45.135.164.173:8080
(IP-адрес вашего сервера):▍ RSS-Bridge
Ещё одно полезное приложение — RSS-Bridge, которое генерирует RSS-фиды для сайтов и сервисов, официально не имеющих этих фидов. Таким образом, можно читать контент с этих сайтов и сервисов, не посещая их каждый раз, а только если встретится что-то интересное.
Есть несколько способов установки приложения на свой сервер, например, из докер-контейнера:
# Создать контейнер
docker create --name=rss-bridge --publish 3000:80 rssbridge/rss-bridge
# Запуск контейнера
docker start rss-bridge
Потом он доступен на порту 3000, то есть по адресу
http://45.135.164.173:3000/
.Для работы требуется PHP 7.4 или выше, а также 100 МБ свободного места.
Нужно заметить, что RSS-Bridge не всегда загружает последний, самый свежий контент. Дело в том, что он создаёт кэшированную версию ленты, чтобы уменьшить трафик и быстрее реагировать на запросы. Кэшированная версия создаётся при первом запросе и выдаётся при всех последующих запросах. При каждом запросе RSS-Bridge проверяет, не истекло ли время ожидания кэша (оно составляет от пяти минут до 24 часов, но есть опция установить его вручную через
custom_timeout
). Если таймаут истёк, загружается новое содержимое и обновляется кэшированная версия. Но он обновляет последний контент при более активных запросах этого конкретного фида.Здесь много полезных инструментов. Например, можно генерировать фиды для публичных телеграм-каналов:
Вот некоторые из доступных инструментов:
-
CssSelectorBridge
: скрапинг фидов с помощью CSS-селекторов
-
FeedMergeBridge
: объединяет несколько фидов в один
-
FeedReducerBridge
: очищает фиды от лишнего контента, что немного уменьшает информационный шум
-
FilterBridge
: фильтрует фид, добавляя или уменьшая контент по ключевым словам
-
GettrBridge
: получает последние посты от указанных пользователей GETTR
-
MastodonBridge
: получает статусы из инстанса Mastodon (ActivityPub)
-
RedditBridge
: получает посты от указанных пользователей или подреддитов из Reddit
-
RumbleBridge
: получает видео от указанных пользователей или каналов
-
SoundcloudBridge
: получает музыку от указанных пользователей Soundcloud
-
TelegramBridge
: получает посты из публичных каналов, как упомянуто выше
-
ThePirateBayBridge
: получает торренты из ThePirateBay по поисковым запросам, пользователям или категориям
-
TikTokBridge
: получает посты из TikTok по имени пользователя
-
TwitchBridge
: получает видео из каналов Twitch
-
VkBridge
: получает посты из VK по имени пользователя или группы
-
XPathBridge
: скрапит фиды с помощью выражений XPath
-
YoutubeBridge
: получает видео из YouTube по имени пользователя, каналу, плейлисту или поисковому запросу
-
YouTubeCommunityTabBridge
: получает посты из сообществ YouTube Community
Как видно, некоторые из этих возможностей недоступны на стандартных внешних RSS-агрегаторах, так что на своём сервере можно получить более широкую функциональность.
В принципе, есть и официальный публичный сервер, которым можно пользоваться в отсутствие своего VPS. Есть также список открытых публичных хостов.
Собственный инстанс тоже можно оставить открытым для всех или запаролить, изменив настройку в
config.ini.php
.▍ RSSHub
RSSHub — опенсорсный, простой в использовании и расширяемый генератор фидов практически из чего угодно. Можно сказать, что это в каком-то смысле альтернатива RSS-Bridge.
Работает с браузерным расширением RSSHub Radar и вспомогательными мобильными приложениями RSSBud (iOS) и RSSAid (Android).
Процесс организован очень просто: заходим на любую страницу, нажимаем на кнопочку расширения — появляется всплывающее окно со ссылкой на RSS-фид:
Этот фид можно скопировать, открыть предварительный просмотр в браузере или перенести во внешний/локальный RSS-агрегатор.
Поддерживает подписку в один клик на различных платформах, включая Tiny Tiny RSS, Miniflux, FreshRSS, Feedly, Inoreader, Feedbin, The Old Reader, Feeds.Pub и Local Reader.
Какие конкретно ридеры выдавать во всплывающем окне для подписки в один клик, можно установить в настройках расширения:
Для использования доступны многочисленные предварительно сконфигурированные «маршруты» (правила для генерации URL для фидов) и публичные инстансы. Расширяемые API и проекты экосистемы поддерживают различные сценарии.
Среди прочего, поддерживается генерация фидов из телеграм-каналов, см. техническое описание соответствующего правила.
Согласно документации, маршрут для Telegram имеет вид
/telegram/channel/:username/:routeParams?
, где username
— обязательный параметр, а routeParams
— необязательный. Если заменить :username
на идентификатор канала awesomeRSSHub
, то получим путь /telegram/channel/awesomeRSSHub
, затем добавим домен инстанса https://rsshub.app
, будет сгенерирован адрес подписки: https://rsshub.app/telegram/channel/awesomeRSSHub
.Затем этот адрес можно добавить rsshub.app/telegram/channel/awesomeRSSHub в любой RSS-ридер.
Кроме того, RSSHub поддерживает множество полезных параметров, таких как фильтрация контента, полнотекстовый вывод и т. д.
И это не единственное социальное медиа, СМИ и приложение в списке поддерживаемых правил, там список очень большой. Из популярных сайтов: AP News, Apple, Docker Hub, Epic Games Store, Fediverse, GitHub, Google, Instagram, JavBus, Lofter, NASA, NGA, pixiv, PlayStation Store, Reuters, RSSHub, Spotify, Telegram, X (Twitter), YouTube и др.
Вместо упомянутого rsshub.app можно использовать и собственный инстанс на своём сервере. Хотя официальный инстанс достаточно стабилен, разработчики всё-таки призывают пользователей использовать собственные серверы или другие публичные инстансы (свой сервер тоже можно добавить в этот список).
▍ FreshRSS
Наконец, последний полезный инструмент, который можно упомянуть в этом списке. Он специально предназначен для установки на своём сервере — это агрегатор FreshRSS.
Инструмент заявляется как «легковесный, простой в работе, мощный и настраиваемый».
Это многопользовательское приложение с режимом анонимного чтения. Поддерживаются пользовательские теги. Имеется API для (мобильных) клиентов и интерфейс командной строки.
Благодаря стандарту WebSub этот агрегатор умеет получать мгновенные пуш-уведомления из совместимых источников, таких как Friendica, WordPress, Blogger, Medium и т. д.
Инструмент поддерживает базовый веб-скрапинг, основанный на XPath, для сайтов, не предоставляющих RSS/Atom-ленту. Также поддерживаются документы в формате JSON.
FreshRSS также предлагает возможность повторного распространения избранных статей в форматах HTML, RSS и OPML.
Поддерживаются различные способы входа в систему: через веб (включая анонимную опцию), HTTP-аутентификацию (совместимую с делегированием прокси), OpenID Connect.
Наконец, FreshRSS поддерживает расширения для дополнительной настройки.
Демо-версию сервера можно посмотреть здесь.
Инструкцию по установке на свой сервер см. здесь.
К серверу FreshRSS можно получать доступ из различных мобильных и нативных приложений под Linux, Android, iOS, Windows и macOS.
Подводя итог, можно повторить, что RSS сейчас живее всех живых и переживает вторую молодость. И многие RSS-агрегаторы можно установить на собственном сервере, сделать публичными или использовать в личных целях.
Telegram-канал со скидками, розыгрышами призов и новостями IT ?
Комментарии (4)
wgy4ufbo
07.08.2024 18:37Во FreshRSS привлекло то, что YouTube с блокировкой Shorts можно, очень нравится. Расширение YouTubeChannel2RssFeed, но нужно еще YouTube-operational-API поднять.
alexanderniki
07.08.2024 18:37+1Конечно, есть внешние RSS-агрегаторы и ридеры, но можно выбрать и другой
вариант: запустить агрегатор на своём сервере и не зависеть от внешних
факторов. Это даёт бóльшую свободу, потому что его функциональность в
некоторых случаях даже шире, чем у специализированных сервисов.Возможно, вопрос глупый: чем селфхост удобнее по сравнению с обычным приложением и синхронизацией списка фидов между устройствами?
Biga
Спасибо за статью. Ковырялся с miniflux, а тут прочитал про fusion и сразу его поставил.