Установка FreshRSS на VPS: Свой RSS-агрегатор с доступом отовсюду
TL;DR
В этом подробном руководстве мы шаг за шагом настроим персональный RSS-агрегатор FreshRSS на вашем собственном виртуальном приватном сервере (VPS). Вы получите полный контроль над своими новостными потоками, обеспечите приватность чтения и сможете получать доступ к своим любимым источникам информации с любого устройства, используя мощь открытого программного обеспечения и надежность облачной инфраструктуры.
- Установим и настроим FreshRSS на Ubuntu Server 24.04 LTS.
- Обеспечим безопасный доступ через HTTPS с помощью Caddy.
- Развернем веб-сервер Caddy, PHP 8.3 и базу данных MariaDB.
- Настроим автоматические обновления фидов и систему резервного копирования.
- Получим полный контроль над данными и приватностью чтения новостей.
Что мы настраиваем и зачем
В современном информационном потоке крайне важно иметь инструменты для эффективного управления информацией. RSS (Really Simple Syndication) остается одним из самых мощных и приватных способов следить за новостями, блогами и подкастами, не полагаясь на алгоритмы социальных сетей или почтовые рассылки. Однако многие популярные RSS-сервисы являются проприетарными облачными решениями, которые могут собирать данные о вашем чтении, показывать рекламу или просто перестать существовать.
Именно здесь на сцену выходит FreshRSS — бесплатный и открытый (GPL v3) RSS-агрегатор, который вы можете установить на свой собственный сервер. Он предлагает чистый, быстрый и интуитивно понятный интерфейс, поддержку множества языков, API для мобильных клиентов (совместимый с Fever API), а также мощные инструменты для фильтрации и категоризации фидов. Установив FreshRSS на свой VPS, вы получаете полный контроль над своими данными, гарантируете приватность чтения и создаете централизованный хаб для всех ваших информационных потоков, доступный отовсюду.
В итоге, по завершении этого руководства, у вас будет полностью функционирующий RSS-агрегатор FreshRSS, работающий на вашем VPS под управлением Ubuntu Server 24.04 LTS. Он будет доступен по защищенному HTTPS-соединению с использованием доменного имени, которое вы выберете, и сможет автоматически обновлять ваши фиды. Вы сможете добавлять и читать RSS-потоки через веб-интерфейс или через любое мобильное приложение, поддерживающее Fever API, без каких-либо ограничений или слежки.
Существуют и альтернативы, такие как Feedly, Inoreader или The Old Reader. Это облачные сервисы, которые предлагают удобство "из коробки" за ежемесячную плату. Они идеально подходят для тех, кто не хочет заморачиваться с технической настройкой. Однако, выбирая self-hosted решение на VPS, вы избегаете ежемесячных платежей за сам сервис (платите только за VPS), получаете полную конфиденциальность (ваши данные остаются только у вас), можете настраивать систему под свои нужды без ограничений и не зависите от политики сторонних компаний. Это идеальный выбор для тех, кто ценит независимость и контроль над своей цифровой жизнью.
Какой VPS-конфиг нужен под эту задачу
FreshRSS является относительно легковесным приложением, особенно если вы планируете использовать его в одиночку или для небольшой группы пользователей (до 5-10 человек) с разумным количеством фидов (до нескольких сотен). Для такой задачи не требуется мощный сервер, что делает его идеальным кандидатом для развертывания на бюджетном VPS.
Минимальные требования:
- Процессор (CPU): 1 ядро (x86_64, 2 ГГц+). FreshRSS в основном однопоточный, поэтому высокая частота важнее количества ядер для базовых операций.
- Оперативная память (RAM): 1-2 ГБ. 1 ГБ будет достаточно для FreshRSS и всех его зависимостей (Caddy, PHP-FPM, MariaDB) в минимальной конфигурации. 2 ГБ обеспечат более комфортную работу и позволят держать больше данных в кеше базы данных.
- Дисковое пространство: 20-40 ГБ SSD. Операционная система займет около 10-15 ГБ. FreshRSS и его база данных будут использовать оставшееся пространство для хранения статей, изображений и кеша. SSD критичен для быстрой работы базы данных и доступа к файлам.
- Сеть: 100 Мбит/с или 1 Гбит/с порт. Для RSS-агрегатора, который в основном загружает текстовый контент, скорость порта менее критична, чем стабильность соединения. Месячный трафик обычно не превышает нескольких сотен гигабайт.
Рекомендуемый VPS-план для комфортной работы (на 2026 год):
- CPU: 2 vCPU
- RAM: 2-4 ГБ
- Диск: 50-80 ГБ SSD
- Сеть: 1 Гбит/с порт, 1-2 ТБ трафика.
Такой конфигурации будет достаточно для FreshRSS с несколькими тысячами фидов и десятками пользователей, а также останется запас для других небольших сервисов на том же VPS. VPS с указанными характеристиками можно арендовать у большинства провайдеров облачных услуг.
Когда нужен dedicated сервер, а не VPS:
Для FreshRSS в подавляющем большинстве случаев dedicated сервер является избыточным. Он нужен, если вы планируете:
- Обслуживать сотни или тысячи пользователей.
- Агрегировать миллионы статей ежедневно и хранить огромные объемы данных.
- Запускать множество других ресурсоемких приложений на том же оборудовании.
- Требовать максимальной производительности ввода-вывода или эксклюзивного доступа к аппаратному обеспечению.
Локация VPS: на что влияет
Выбор географической локации вашего VPS влияет на несколько факторов:
- Задержка (latency): Чем ближе сервер к вам и вашей основной аудитории (если она есть), тем быстрее будет отклик веб-интерфейса. Для RSS-агрегатора это не критично, но приятно.
- Доступность контента: Если вы агрегируете контент из определенных регионов, размещение сервера ближе к этим источникам может немного ускорить обновление фидов.
- Законодательство: Расположение сервера в определенной юрисдикции означает, что ваши данные будут подпадать под законы этой страны. Если приватность данных является приоритетом, выбирайте страны с сильным законодательством о защите данных.
Подготовка сервера
Перед установкой FreshRSS необходимо выполнить базовую настройку и подготовку вашего VPS. Мы будем использовать Ubuntu Server 24.04 LTS (Long Term Support), поскольку это стабильная и широко используемая операционная система с долгосрочной поддержкой, актуальная и в 2026 году.
1. Подключение к серверу и обновление системы
Подключитесь к вашему новому VPS по SSH. Обычно провайдер предоставляет вам IP-адрес и логин (например, root) с временным паролем или SSH-ключом.
ssh root@ВАШ_IP_АДРЕС
После успешного входа обновите список пакетов и саму систему до последних версий:
sudo apt update && sudo apt upgrade -y
Эта команда обновит все установленные пакеты до актуальных версий и обеспечит наличие всех необходимых патчей безопасности.
2. Создание нового пользователя и настройка sudo
Работать под учетной записью root небезопасно. Создадим нового пользователя с ограниченными правами и предоставим ему возможность выполнять команды с sudo.
sudo adduser freshrssuser
Следуйте инструкциям на экране, чтобы задать пароль и информацию о пользователе. Затем добавьте нового пользователя в группу sudo:
sudo usermod -aG sudo freshrssuser
Теперь вы можете выйти из root и войти как freshrssuser:
exit
ssh freshrssuser@ВАШ_IP_АДРЕС
Все последующие команды будут выполняться от имени freshrssuser, используя sudo при необходимости.
3. Настройка SSH-ключей (рекомендуется)
Для повышения безопасности рекомендуется использовать SSH-ключи вместо паролей. Если у вас еще нет пары ключей, сгенерируйте их на вашем локальном компьютере:
ssh-keygen -t rsa -b 4096
Затем скопируйте публичный ключ на сервер:
ssh-copy-id freshrssuser@ВАШ_IP_АДРЕС
После этого вы сможете входить без пароля. Чтобы полностью отключить вход по паролю (что очень рекомендуется для безопасности), отредактируйте файл конфигурации SSH-сервера:
sudo nano /etc/ssh/sshd_config
Найдите и измените следующие строки (или добавьте их, если отсутствуют):
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Перезапустите SSH-сервис, чтобы применить изменения:
sudo systemctl restart sshd
Важно: Убедитесь, что вы можете войти по ключу, прежде чем отключать парольную аутентификацию, иначе вы потеряете доступ к серверу.
4. Настройка брандмауэра (UFW)
UFW (Uncomplicated Firewall) — это простой в использовании интерфейс для настройки правил iptables. Включите его и разрешите необходимые порты:
sudo ufw allow OpenSSH # Разрешить SSH (порт 22)
sudo ufw allow http # Разрешить HTTP (порт 80)
sudo ufw allow https # Разрешить HTTPS (порт 443)
sudo ufw enable # Включить брандмауэр
sudo ufw status # Проверить статус
После включения UFW убедитесь, что SSH-соединение не прервалось. Если все в порядке, брандмауэр теперь защищает ваш сервер.
5. Установка Fail2ban
Fail2ban сканирует логи сервера на предмет подозрительной активности (например, неудачные попытки входа по SSH) и временно блокирует IP-адреса, совершающие такие попытки. Это отличная защита от брутфорс-атак.
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Fail2ban по умолчанию настроен для защиты SSH. Вы можете проверить его статус:
sudo fail2ban-client status
sudo fail2ban-client status sshd
На этом базовая подготовка сервера завершена. Теперь мы готовы к установке основного программного обеспечения.
Установка ПО — пошагово
Для работы FreshRSS нам потребуется веб-сервер (Caddy), интерпретатор PHP с модулем FPM и база данных (MariaDB). Мы будем использовать актуальные версии ПО, доступные в 2026 году.
1. Установка и настройка MariaDB (MySQL-совместимая база данных)
MariaDB — это мощная и быстрая система управления базами данных, которая является форком MySQL и полностью совместима с ним. FreshRSS отлично работает с MariaDB.
# Установка сервера MariaDB
sudo apt install mariadb-server -y
После установки выполните скрипт для базовой защиты MariaDB:
# Запуск скрипта для защиты MariaDB
sudo mysql_secure_installation
Следуйте инструкциям: установите пароль для пользователя root базы данных, удалите анонимных пользователей, запретите удаленный вход root и удалите тестовую базу данных. Затем войдите в MariaDB как root (базы данных) и создайте базу данных и пользователя для FreshRSS:
# Вход в MariaDB
sudo mysql -u root -p
Внутри консоли MariaDB выполните следующие команды, заменив freshrss_user и ВАШ_ПАРОЛЬ_БД на свои значения:
CREATE DATABASE freshrss_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'freshrss_user'@'localhost' IDENTIFIED BY 'ВАШ_ПАРОЛЬ_БД';
GRANT ALL PRIVILEGES ON freshrss_db. TO 'freshrss_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Эти команды создают базу данных freshrss_db, пользователя freshrss_user с указанным паролем и предоставляют ему полные права на эту базу данных.
2. Установка PHP и необходимых расширений
FreshRSS написан на PHP. Мы установим PHP версии 8.3 (или выше, если доступна) и все необходимые расширения.
# Установка PHP 8.3 FPM и необходимых расширений
sudo apt install php8.3-fpm php8.3-mysql php8.3-xml php8.3-gd php8.3-intl php8.3-mbstring php8.3-zip php8.3-curl php8.3-opcache -y
Эти расширения обеспечивают FreshRSS возможность работы с базой данных, обработку XML, изображений, многоязычной поддержки, сжатия и выполнения HTTP-запросов. PHP-FPM (FastCGI Process Manager) будет управлять процессами PHP для веб-сервера.
Проверьте статус PHP-FPM:
# Проверка статуса PHP-FPM
sudo systemctl status php8.3-fpm
Убедитесь, что он запущен и активен.
3. Установка веб-сервера Caddy
Caddy — это современный, простой в настройке веб-сервер, который автоматически управляет сертификатами Let's Encrypt для HTTPS. Это значительно упрощает настройку SSL/TLS.
# Установка Caddy из официального репозитория
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
Эти команды добавляют официальный репозиторий Caddy и устанавливают веб-сервер. Caddy автоматически запускается как системный сервис.
# Проверка статуса Caddy
sudo systemctl status caddy
4. Установка FreshRSS
Скачаем последнюю стабильную версию FreshRSS с GitHub и разместим ее в подходящей директории для веб-сервера.
# Переход в директорию для веб-приложений
cd /var/www/
# Скачивание последней стабильной версии FreshRSS (например, v1.25.0, актуальная на 2026 год)
# Всегда проверяйте актуальную версию на GitHub: https://github.com/FreshRSS/FreshRSS/releases
sudo wget https://github.com/FreshRSS/FreshRSS/releases/download/1.25.0/FreshRSS-1.25.0.zip
# Распаковка архива
sudo unzip FreshRSS-1.25.0.zip -d /var/www/
# Переименование директории для удобства
sudo mv /var/www/FreshRSS-1.25.0 /var/www/freshrss
# Удаление архива
sudo rm FreshRSS-1.25.0.zip
# Установка правильных прав доступа. Caddy обычно работает от пользователя 'caddy' или 'www-data'
# PHP-FPM работает от пользователя 'www-data'
sudo chown -R www-data:www-data /var/www/freshrss
sudo chmod -R 755 /var/www/freshrss
Теперь все компоненты установлены, и мы можем перейти к их конфигурации.
Конфигурация
После установки всех компонентов необходимо их правильно настроить, чтобы FreshRSS мог работать.
1. Конфигурация Caddy
Caddy использует файл Caddyfile для своей конфигурации. Мы настроим его для обслуживания FreshRSS и автоматического получения SSL-сертификатов.
# Открытие файла Caddyfile для редактирования
sudo nano /etc/caddy/Caddyfile
Удалите все существующее содержимое и вставьте следующее, заменив yourdomain.com на ваше реальное доменное имя:
yourdomain.com {
# Корневая директория FreshRSS
root /var/www/freshrss/p/
# Включить сжатие gzip
encode gzip
# Заголовок Strict-Transport-Security для HTTPS
header {
Strict-Transport-Security max-age=31536000;
X-Content-Type-Options nosniff
X-Frame-Options DENY
X-XSS-Protection "1; mode=block"
}
# Обработка PHP-файлов через PHP-FPM
php_fastcgi unix//run/php/php8.3-fpm.sock {
# Дополнительные опции, если необходимо
}
# Защита директории data от прямого доступа
@data {
path /data/
}
respond @data 403
# Защита директории app от прямого доступа
@app {
path /app/
}
respond @app 403
# Защита директории config от прямого доступа
@config {
path /config/
}
respond @config 403
# Перезапись URL для FreshRSS (frontend controller)
try_files {path} {path}/ /index.php?{query}
# Логирование
log {
output file /var/log/caddy/freshrss_access.log
format json
}
# Автоматическое получение SSL/TLS сертификатов
tls {
# Можно указать email для уведомлений Let's Encrypt
# email [email protected]
}
}
Важно: Убедитесь, что ваше доменное имя (yourdomain.com) указывает на IP-адрес вашего VPS через A-запись DNS. Без этого Caddy не сможет получить SSL-сертификат.
Сохраните файл (Ctrl+X, Y, Enter) и проверьте конфигурацию Caddy, затем перезапустите сервис:
# Проверка конфигурации Caddy
sudo caddy validate --config /etc/caddy/Caddyfile
# Перезапуск Caddy
sudo systemctl reload caddy
Если все в порядке, Caddy должен успешно запуститься и начать обслуживать ваш домен по HTTPS.
2. Начальная настройка FreshRSS через веб-интерфейс
Откройте ваш браузер и перейдите по адресу https://yourdomain.com. Вы увидите страницу приветствия FreshRSS.
На первом шаге выберите язык. Затем FreshRSS проверит системные требования. Убедитесь, что все пункты отмечены зеленым. Если есть предупреждения, убедитесь, что вы установили все PHP-расширения и правильно настроили права доступа.
На следующем шаге FreshRSS запросит данные для подключения к базе данных. Введите информацию, которую вы задали ранее:
- Тип базы данных: MySQL (или MariaDB)
- Хост базы данных:
localhost - Имя базы данных:
freshrss_db - Пользователь базы данных:
freshrss_user - Пароль базы данных:
ВАШ_ПАРОЛЬ_БД
После успешного подключения к базе данных FreshRSS предложит создать учетную запись администратора. Задайте имя пользователя и надежный пароль. Это будет ваш логин для доступа к FreshRSS.
Поздравляем! FreshRSS установлен и готов к использованию.
3. Настройка автоматического обновления фидов (Cron Job)
Для того чтобы FreshRSS автоматически обновлял RSS-потоки, необходимо настроить задачу Cron.
# Открытие таблицы Cron для редактирования
sudo crontab -u www-data -e
Если это первый раз, выберите редактор (например, nano). В конец файла добавьте следующую строку:
# Обновление фидов FreshRSS каждые 15 минут
/15 php /var/www/freshrss/app/actualize_script.php > /dev/null 2>&1
Эта команда будет запускать скрипт обновления FreshRSS каждые 15 минут от имени пользователя www-data (под которым работает PHP-FPM). Перенаправление вывода в /dev/null предотвращает заполнение логов ненужными сообщениями.
4. Проверка работоспособности
Чтобы убедиться, что все работает корректно:
- Откройте
https://yourdomain.comв браузере и убедитесь, что вы видите интерфейс FreshRSS. - Попробуйте добавить несколько RSS-фидов и убедитесь, что они успешно обновляются.
- Проверьте логи Caddy на наличие ошибок:
sudo journalctl -u caddy --since "5 minutes ago"
sudo journalctl -u php8.3-fpm --since "5 minutes ago"
На этом этапе ваш FreshRSS полностью настроен и функционирует.
Бэкапы и обслуживание
Регулярное резервное копирование и своевременное обслуживание сервера — критически важные аспекты для любой системы. FreshRSS хранит все ваши фиды, настройки и пользовательские данные в базе данных и файловой системе, поэтому важно обеспечить их сохранность.
1. Что бэкапить
Для FreshRSS необходимо бэкапить три основные компонента:
- База данных MariaDB: Содержит все ваши подписки, статьи, прочитанные/непрочитанные статусы, пользователей и их настройки. Это самый важный компонент.
- Директория данных FreshRSS:
/var/www/freshrss/data/. Эта директория содержит конфигурационные файлы FreshRSS, кеш, пользовательские настройки и другие служебные данные, которые не хранятся в БД. - Конфигурационные файлы веб-сервера:
/etc/caddy/Caddyfile. Сохранение конфигурации Caddy позволит быстро восстановить веб-сервер в случае необходимости.
2. Простой скрипт автобэкапа
Создадим простой bash-скрипт, который будет выполнять резервное копирование. Мы будем использовать mysqldump для базы данных и tar для файловых архивов.
# Создание директории для бэкапов
sudo mkdir -p /opt/backups/freshrss
sudo chown freshrssuser:freshrssuser /opt/backups/freshrss
# Создание скрипта бэкапа
nano /opt/backups/freshrss/backup_freshrss.sh
Вставьте следующее содержимое, заменив ВАШ_ПАРОЛЬ_БД на пароль пользователя базы данных FreshRSS:
#!/bin/bash
# Переменные
BACKUP_DIR="/opt/backups/freshrss"
DATE=$(date +%Y%m%d%H%M%S)
DB_NAME="freshrss_db"
DB_USER="freshrss_user"
DB_PASS="ВАШ_ПАРОЛЬ_БД" # Используйте надежный пароль
FRESHRSS_PATH="/var/www/freshrss"
CADDY_CONFIG="/etc/caddy/Caddyfile"
# Создание дампа базы данных
echo "Dumping MariaDB database..."
mysqldump --user=$DB_USER --password=$DB_PASS $DB_NAME > "$BACKUP_DIR/$DB_NAME-$DATE.sql"
# Архивирование директории данных FreshRSS
echo "Archiving FreshRSS data directory..."
tar -czf "$BACKUP_DIR/freshrss_data-$DATE.tar.gz" -C "$FRESHRSS_PATH" data/ config/
# Копирование конфигурации Caddy
echo "Copying Caddyfile..."
cp "$CADDY_CONFIG" "$BACKUP_DIR/Caddyfile-$DATE.conf"
# Удаление старых бэкапов (старше 7 дней)
echo "Cleaning up old backups..."
find "$BACKUP_DIR" -type f -name ".sql" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name ".tar.gz" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name ".conf" -mtime +7 -delete
echo "Backup finished at $DATE"
Сохраните файл и сделайте его исполняемым:
chmod +x /opt/backups/freshrss/backup_freshrss.sh
Теперь добавьте этот скрипт в Cron для автоматического выполнения. Например, для ежедневного бэкапа в 03:00 ночи:
crontab -e
Добавьте следующую строку:
0 3 /opt/backups/freshrss/backup_freshrss.sh >> /var/log/freshrss_backup.log 2>&1
Это будет запускать скрипт ежедневно и логировать его вывод в /var/log/freshrss_backup.log.
3. Куда складывать бэкапы
Хранение бэкапов на том же сервере, что и рабочая система, является рискованным. В случае сбоя сервера (например, отказа диска) вы потеряете и систему, и бэкапы. Рекомендуется использовать удаленное хранилище:
- Внешний S3-совместимый сервис: AWS S3, DigitalOcean Spaces, Backblaze B2. Для этого можно интегрировать
s3cmdилиrcloneв скрипт бэкапа. - Отдельный VPS: Если у вас есть другой VPS, можно настроить
rsyncилиscpдля копирования бэкапов туда по SSH. - Локальный компьютер: Для очень маленьких проектов можно периодически скачивать бэкапы на свой компьютер вручную или с помощью скрипта.
Например, для копирования на другой сервер по SSH (после настройки SSH-ключей без пароля):
# Добавить в скрипт backup_freshrss.sh после архивации
echo "Copying backups to remote server..."
rsync -avz "$BACKUP_DIR/" freshrssuser@REMOTE_IP:/path/to/remote/backups/
4. Обновления: rolling vs. maintenance window
Поддержание системы в актуальном состоянии критично для безопасности и стабильности.
- Обновления ОС (Ubuntu): Регулярно запускайте
sudo apt update && sudo apt upgrade -y. Для продакшн-систем желательно делать это в рамках запланированного окна обслуживания, чтобы избежать неожиданных сбоев. Для персонального сервера можно делать чаще. - Обновления PHP, MariaDB, Caddy: Они также обновляются через
apt upgrade. Иногда обновления этих компонентов могут потребовать ручного вмешательства (например, слияние конфигурационных файлов). - Обновления FreshRSS:
- Через Git: Если вы изначально клонировали репозиторий Git, то обновление сводится к
git pullв директории FreshRSS, а затем, возможно, к запуску миграций базы данных через веб-интерфейс. - Через загрузку архива: Если вы установили FreshRSS из ZIP-архива, то для обновления нужно скачать новую версию, распаковать ее, скопировать
data/иconfig/из старой установки в новую, затем обновить симлинки или изменить корневую директорию в Caddyfile.
- Через Git: Если вы изначально клонировали репозиторий Git, то обновление сводится к
Рекомендуемая стратегия:
- Проводите обновления в запланированное время.
- Перед крупными обновлениями (особенно мажорными версиями PHP или FreshRSS) сделайте полный бэкап.
- Прочитайте changelog'и обновляемых программ, чтобы быть в курсе возможных изменений или требуемых ручных действий.
- Для FreshRSS после обновления файлов всегда заходите в веб-интерфейс, чтобы убедиться, что не требуется миграция базы данных.
Troubleshooting + FAQ
В этом разделе собраны ответы на часто задаваемые вопросы и решения типичных проблем, которые могут возникнуть при установке и эксплуатации FreshRSS.
Какой VPS-конфиг минимально подойдёт?
Для FreshRSS в одиночном режиме или для небольшой группы до 5 пользователей с несколькими сотнями фидов, минимально подойдёт VPS с 1 vCPU, 1 ГБ оперативной памяти и 20-30 ГБ SSD-диска. Этой конфигурации будет достаточно для стабильной работы, но при увеличении числа фидов или пользователей рекомендуется увеличить RAM до 2 ГБ для лучшей производительности базы данных и PHP-FPM.
Что выбрать — VPS или dedicated для этой задачи?
Для установки FreshRSS почти всегда достаточно VPS. Dedicated серверы значительно дороже и предлагают избыточные ресурсы для RSS-агрегатора, если только вы не планируете обслуживать тысячи пользователей или интегрировать FreshRSS в очень крупную инфраструктуру с другими ресурсоемкими сервисами. VPS обеспечивает отличный баланс между производительностью, гибкостью и стоимостью для FreshRSS.
Почему я вижу ошибку "502 Bad Gateway" в браузере?
Ошибка "502 Bad Gateway" обычно указывает на проблему с PHP-FPM. Веб-сервер (Caddy) не может связаться с PHP-FPM или PHP-FPM не обрабатывает запросы.
Что проверить:
- Убедитесь, что PHP-FPM запущен:
sudo systemctl status php8.3-fpm. Если он неактивен, попробуйте запустить:sudo systemctl start php8.3-fpm. - Проверьте логи PHP-FPM:
sudo journalctl -u php8.3-fpm. Ищите ошибки, которые могут указывать на проблемы с конфигурацией PHP или нехватку памяти. - Убедитесь, что Caddy настроен на правильный сокет PHP-FPM (
unix//run/php/php8.3-fpm.sock).
Как обновить FreshRSS до новой версии?
Если вы следовали этому руководству, то FreshRSS был установлен из архива. Для обновления:
- Сделайте бэкап: Обязательно выполните полный бэкап базы данных и директории
/var/www/freshrss/data. - Скачайте новую версию: Загрузите последний ZIP-архив FreshRSS с GitHub-страницы релизов.
- Распакуйте: Распакуйте новый архив в новую временную директорию (например,
/var/www/freshrss_new). - Перенесите данные: Скопируйте содержимое старых директорий
/var/www/freshrss/dataи/var/www/freshrss/configв соответствующие директории новой установки. - Обновите ссылки: Переименуйте старую директорию
/var/www/freshrss(например, вfreshrss_old) и переименуйте новую директориюfreshrss_newвfreshrss. - Установите права:
sudo chown -R www-data:www-data /var/www/freshrss && sudo chmod -R 755 /var/www/freshrss. - Перезапустите Caddy:
sudo systemctl reload caddy. - Завершите в браузере: Откройте FreshRSS в браузере. Если требуется миграция базы данных, FreshRSS предложит ее выполнить.
Мои фиды не обновляются автоматически, что делать?
Это, скорее всего, проблема с Cron-задачей.
Что проверить:
- Убедитесь, что Cron-задача для
www-dataсуществует и корректна:sudo crontab -u www-data -l. - Проверьте, что путь к PHP-интерпретатору и скрипту
actualize_script.phpверный. - Убедитесь, что пользователь
www-dataимеет права на выполнение скрипта и запись в директории FreshRSS. - Проверьте системные логи Cron:
sudo grep CRON /var/log/syslog. - Попробуйте запустить скрипт вручную от имени пользователя
www-data:sudo -u www-data php /var/www/freshrss/app/actualize_script.phpи посмотрите на вывод.
Как добавить новый фид в FreshRSS?
В веб-интерфейсе FreshRSS перейдите в раздел "Подписки" (Subscriptions), затем нажмите кнопку "Добавить фид" (Add feed) или значок "+". Вставьте URL RSS-потока в поле и нажмите "Добавить". FreshRSS попытается обнаружить и добавить фид. Вы также можете указать категорию для нового фида.
Как настроить FreshRSS для доступа через мобильное приложение?
FreshRSS поддерживает Fever API, что позволяет использовать его с множеством мобильных RSS-клиентов (например, Reeder, NetNewsWire, Lire).
- В FreshRSS перейдите в "Настройки" (Settings) -> "Аутентификация" (Authentication).
- Включите "API" и выберите "Fever API" в качестве метода.
- Создайте "Токен API" (API Token) для каждого клиента или используйте существующий.
- В вашем мобильном приложении выберите "Fever" или "Self-hosted RSS" в качестве источника и введите адрес вашего FreshRSS (
https://yourdomain.com/p/api/fever) и токен API.
Выводы и следующие шаги
Поздравляем! Вы успешно установили и настроили FreshRSS на своем VPS, создав мощный, приватный и полностью контролируемый RSS-агрегатор. Теперь у вас есть инструмент для эффективного управления информационными потоками, который не зависит от сторонних сервисов и защищает вашу конфиденциальность. Вы освоили не только установку приложения, но и базовые принципы настройки веб-сервера, базы данных, PHP, а также обеспечения безопасности и резервного копирования.
Куда двигаться дальше?
- Исследуйте функционал FreshRSS: Поэкспериментируйте с категориями, фильтрами, правилами архивации, интеграцией с другими сервисами (например, Instapaper или Wallabag для отложенного чтения), доступными в FreshRSS.
- Оптимизация и мониторинг: Следите за потреблением ресурсов вашего VPS с помощью таких утилит, как
htopилиgrafana. При необходимости можно тонко настроить PHP-FPM или Caddy для лучшей производительности или снижения потребления памяти. - Дополнительные сервисы: Возможно, вы захотите развернуть другие полезные self-hosted приложения на вашем VPS, такие как менеджер паролей Vaultwarden, система управления проектами Kanboard или персональное облачное хранилище Nextcloud.