Гид по технологиям

FreshRSS на Raspberry Pi: установка, настройка и безопасность

8 min read Самохостинг Обновлено 08 Jan 2026
FreshRSS на Raspberry Pi: установка и руководство
FreshRSS на Raspberry Pi: установка и руководство

Зачем запускать FreshRSS на Raspberry Pi

Логотип FreshRSS на сером фоне

FreshRSS — это свободный и само-хостируемый RSS-ридер. RSS (Really Simple Syndication) — это XML-лента с заголовками, ссылками, датами и краткими фрагментами статей. Вместо того чтобы пользоваться облачными сервисами крупных компаний, вы получаете полный контроль: ленты хранятся у вас, запросы идут с вашего IP, а не с профиля в Google или Facebook.

Ключевые преимущества:

  • Централизованное чтение всех лент в браузере или мобильном клиенте.
  • Возможность загружать полные тексты статей (fetch full article) и избегать мягких платежных стен.
  • Отсутствие отслеживающих скриптов и сторонних куки — лучше приватность.
  • Полный контроль над резервными копиями, доступом и обновлениями.

Что нужно подготовить перед установкой

Перед началом убедитесь, что у вас есть:

  • Raspberry Pi с установленной Raspberry Pi OS (поддерживаемая версия, желательно актуальная). Рекомендуется минимум 2 ГБ ОЗУ для комфортной работы.
  • Доступ по SSH и права sudo для пользователя pi или другого администратора.
  • Рабочая сеть: если вы хотите открывать сайт наружу — публичный IP или DDNS и проброшенный порт 80/443 на роутере.
  • Установленные Apache, PHP и MariaDB (точные пакеты приведены ниже в разделе установки).
  • Доменное имя и доступ к панели DNS для создания A-записи.

Совет: если у вас динамический IP, используйте сервис типа DuckDNS или другой DDNS и настраивайте сертификаты с учётом динамики IP.

Быстрая проверка требований (чеклист)

  • Raspberry Pi обновлён: sudo apt update && sudo apt upgrade
  • Apache установлен: apache2
  • PHP с нужными модулями: php, php-mysql, php-xml, php-curl, php-gd и т.д.
  • MariaDB или MySQL установлены
  • Доступ к DNS панели для A-записи
  • Публичный или локальный IP и проброс портов при необходимости

Установка FreshRSS на Raspberry Pi — пошагово

  1. Настройте DNS. В панели регистратора создайте запись типа A: хост — @, значение — ваш публичный IP (или используйте DDNS).

  2. Подключитесь по SSH к Raspberry Pi:

ssh pi@local.pi.ip.address
  1. Обновите пакеты:
sudo apt update
sudo apt upgrade
  1. Перейдите в каталог веб-контента и скачайте архив FreshRSS:
cd /var/www/
sudo wget https://github.com/FreshRSS/FreshRSS/archive/master.zip
  1. Разархивируйте:
sudo unzip master.zip
  1. Передайте права Apache на папку:
sudo chown -R www-data:www-data FreshRSS-master
  1. Создайте конфигурацию виртуального хоста Apache. Перейдите в каталог сайтов:
cd /etc/apache2/sites-available/

Откройте новый файл:

sudo nano freshrss.conf

Вставьте:


ServerName your-domain.tld

DocumentRoot /var/www/FreshRSS-master/p/

Сохраните (Ctrl + O) и выйдите (Ctrl + X).

  1. Включите сайт и перезапустите Apache:
sudo a2ensite freshrss.conf
sudo service apache2 restart
  1. Подготовьте базу данных. Откройте MariaDB:
sudo MariaDB

В MySQL/MariaDB выполните:

CREATE DATABASE fresh;
CREATE USER fresh IDENTIFIED BY 'password';
GRANT USAGE ON . TO fresh@localhost IDENTIFIED BY 'password';
GRANT ALL privileges ON fresh.* TO fresh@localhost;
FLUSH PRIVILEGES;
quit;

Замените ‘password’ на надёжный пароль. Не используйте простой пароль в продакшене.

  1. Откройте в браузере имя вашего домена. Установщик FreshRSS проведёт проверку окружения, попросит выбрать язык, затем ввести параметры доступа к базе данных: тип — MySQL, хост — localhost, пользователь — fresh, база — fresh.

  2. Укажите имя пользователя администратора (до 16 буквенно-цифровых символов), метод аутентификации и пароль. После «Complete Installation» войдите в FreshRSS.

Частые проблемы при установке и их решения

  • Apache возвращает 403 Forbidden: проверьте права на каталог /var/www/FreshRSS-master и убедитесь, что www-data владеет файлами. Проверьте директивы в конфигурации Apache.
  • Ошибки PHP: установите недостающие расширения: php-mysql, php-xml, php-curl, php-gd, php-cli.
  • Подключение к MariaDB не работает: проверьте, что MariaDB запущена и учётная запись fresh@localhost имеет нужные права. Попробуйте подключиться локально через mysql -u fresh -p.
  • Страницы не грузятся по домену: проверьте A-запись DNS, подождите распространения, убедитесь, что порт 80 проброшен через роутер.

Добавление и управление лентами в FreshRSS

Интерфейс FreshRSS с заполненными лентами

После первого входа вы увидите одну штатную ленту FreshRSS. Чтобы добавить свои источники:

  • Нажмите плюс рядом с управлением подписками.
  • Создайте категорию или добавьте отдельную ленту, вставив URL-адрес feed (например, https://makeuseof.com/feed).

Как найти RSS на сайте:

  • Попробуйте добавить /feed, /rss или /rss.xml к корневому URL.
  • Если не получается, откройте «Просмотр исходного кода страницы» и ищите слова feed, RSS, atom, XML.

Добавление ленты MUO в FreshRSS

Как FreshRSS вытягивает полный текст статей

FreshRSS может автоматически извлекать содержимое полного текста статьи с сайта. Для этого используется CSS-селектор элемента, содержащего текст.

Мини-методология: как найти селектор

  1. Откройте любую статью на целевом сайте.
  2. Нажмите правой кнопкой на тело статьи и выберите «Inspect» или «Просмотр кода».
  3. Навигируйте по DOM-дереву вверх, пока не выделится весь блок статьи.
  4. Правой кнопкой — Copy → Copy selector.
  5. В FreshRSS перейдите в настройки ленты → «Advanced», вставьте селектор в поле «Article CSS selector on original website» и сохраните.

Для makeuseof.com полезный селектор: #article-body.

Поиск CSS-селектора статьи на MUO в Firefox

Экран администрирования FreshRSS с полем CSS-селектора

После этого FreshRSS будет подставлять полный текст в записи при последующих загрузках.

Когнитивная шпаргалка: если один селектор не срабатывает на всех статьях — попробуйте более общий селектор или несколько правил для разных шаблонов страниц.

Автоматическое обновление лент через cron

По умолчанию обновление лент вручную: вы нажимаете «Refresh». На Raspberry Pi проще настроить cron для автоматического обновления.

Откройте crontab для root (или другого подходящего системного пользователя):

sudo crontab -e

Пример записи для обновления каждые 15 минут:

*/15 * * * * php -f /var/www/FreshRSS-master/app/actualize_script.php

Варианты расписания:

  • Каждые 5 минут: /5 * …
  • Каждые сутки в 03:00: 0 3 * …
  • Каждые 30 минут, но только в рабочие дни: /30 1-5 …

Совет: если у вас много подписок, ставьте интервал больше, чтобы не перегружать систему и источники.

Безопасность и защита приватности

Доверие важнее удобства. Несколько шагов для безопасного развёртывания FreshRSS:

  • Всегда используйте HTTPS. Установите certbot и получите бесплатные сертификаты Let’s Encrypt:
sudo certbot

При использовании Apache certbot обычно автоматически настроит HTTPS для выбранного виртуального хоста.

  • Обновляйте систему: sudo apt update && sudo apt upgrade регулярно.
  • Ограничьте доступ к административной панели по IP (при возможности) или настройте двухфакторную аутентификацию в клиенте.
  • Настройте firewall (ufw): откройте порты 80 и 443, закройте лишние порты.

Пример простых команд ufw:

sudo apt install ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  • Включите fail2ban для защиты от перебора паролей.
  • Сделайте регулярные бэкапы базы данных и каталога /var/www/FreshRSS-master.
  • Используйте сложные пароли для учётных записей и базы данных.

Важно: даже если вы хостите ленты локально, сервер, доступный в Интернет, требует стандартной практики безопасности.

Приватность и соответствие GDPR

Если вы используете FreshRSS только для личного чтения, риск минимален. Если вы планируете предоставлять доступ другим людям (например, коллективный внутренний ридер), подумайте о GDPR и защите персональных данных:

  • Собираете ли вы email-адреса или аккаунты? Если да — обеспечьте хранение и обработку в соответствии с законодательством.
  • Ведёте ли вы логи посещений? Храните их минимально необходимое время.
  • Показываете ли вы превью с оригинальных сайтов, включающие трекеры? Рассмотрите предварительную очистку контента.

Для личного использования большинство требований не применимо, но разумно документировать политику хранения и удаления данных, если у вас есть другие пользователи.

Рекомендации по производительности и масштабированию

  • Для десятков подписок Raspberry Pi 3/4 достаточно. Для сотен/тысяч подписок рассматривайте выделенный сервер или оптимизацию: кеширование, php-fpm, более мощный процессор и больше памяти.
  • Используйте внешнюю базу (если есть) для резервирования и более быстрой обработки.
  • Настройте ротацию логов и мониторинг свободного места на диске; логи и база могут расти.

Критерии приёмки

Чтобы считать установку успешной, проверьте:

  • Страница установки доступна по домену и загружается по HTTPS.
  • Успешный вход в FreshRSS под администратором.
  • Добавление и загрузка новой ленты. Записи появляются в интерфейсе.
  • Скрипт actualize_script.php успешно запускается вручную и через cron; новые статьи появляются в запланированное время.
  • Настроены бэкапы базы и каталога FreshRSS.
  • Минимальные меры безопасности: обновления, firewall и сертификаты.

Руководство по отладки (runbook)

  1. Проблема: 500 Internal Server Error при обращении к FreshRSS.

    • Проверьте логи Apache: sudo journalctl -u apache2 или /var/log/apache2/error.log.
    • Проверьте права файлов и владельца (www-data).
  2. Проблема: статьи не загружаются полностью.

    • Убедитесь, что CSS-селектор указан верно.
    • Проверьте сетевые ошибки при обращении к сайту-источнику.
  3. Проблема: cron не обновляет ленты.

    • Проверьте, что запись в crontab сохранена для нужного пользователя.
    • Запустите команду вручную: php -f /var/www/FreshRSS-master/app/actualize_script.php и проанализируйте вывод.
  4. Проблема: Certbot не может получить сертификат.

    • Убедитесь, что порт 80 доступен извне и домен разрешается в DNS корректно.

Роль‑ориентированные контрольные списки

Администратор:

  • Установить Apache/PHP/MariaDB.
  • Настроить виртуальный хост и SSL.
  • Создать бэкап-план и мониторинг.

Пользователь (чтение):

  • Добавить желаемые ленты и категории.
  • Настроить мобильный клиент (если используете) с URL вашего сервера.

Разработчик/поддержка:

  • Проверять логи и обновления FreshRSS.
  • Обновлять расширения PHP и систему.

Короткая карта принятия решений

flowchart TD
  A[Нужен ли доступ из интернета?] -->|Да| B[Настроить DNS и проброс портов]
  A -->|Нет| C[Запуск в локальной сети, использовать локальный IP]
  B --> D[Установить certbot и настроить HTTPS]
  D --> E[Ограничить доступ/включить fail2ban]
  C --> F[Обновление через cron в локальной сети]
  E --> G[Готово]
  F --> G

Шпаргалка селекторов и примеры crontab

  • Общие селекторы: article, .post-content, #content, .entry-content.
  • Если сайт использует динамическую подгрузку (JS), автоматическое извлечение может не сработать — нужен серверный парсер или внешний сервис.

Примеры crontab:

  • Каждые 10 минут:
*/10 * * * * php -f /var/www/FreshRSS-master/app/actualize_script.php >> /var/log/freshrss_cron.log 2>&1
  • Раз в час:
0 * * * * php -f /var/www/FreshRSS-master/app/actualize_script.php

Глоссарий (одна строка)

  • RSS: формат (XML) для публикации обновлений контента.
  • FreshRSS: само-хостируемый RSS-ридер с веб-интерфейсом.
  • Cron: планировщик задач в Unix-подобных системах.
  • Certbot: клиент для автоматической выдачи сертификатов Let’s Encrypt.
  • MariaDB: форк MySQL, СУБД.

Заключение

FreshRSS — отличный выбор для тех, кто хочет контролировать свои ленты и читать контент без трекеров и рекламы. Raspberry Pi предоставляет недорогую и энергоэффективную платформу для круглосуточного ридера. Следуйте шагам установки, настройте обновления через cron, найдите корректные CSS-селекторы для полнотекстового извлечения и не забывайте про регулярные обновления и бэкапы.

Ключевые действия после установки: добавить ленты, настроить автоматическое обновление, включить HTTPS и сделать резервные копии.

Важно: поддерживайте систему в актуальном состоянии и защищайте доступ к своему экземпляру FreshRSS.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство