Я долгое время пользовался Inoreader для чтения кучи разных потоков разных сайтов. Но вчера, неожиданно для меня самого, я не смог добавить новый RSS-фид, в виду появившегося в Inoreader ограничения в 150 записей на бесплатном аккаунте. Взглянув на общее количество подписок несколько подохренел. Цифра показывала аж 276 записей. Справедливости ради, должен отметить, что из них часть была мертвыми, так что по факту я «читал» около 200-210 фидов. Странно что Inoreader продолжал показывать их, несмотря на ограничение.
В общем, поняв что новые фиды я не добавлю, а платить ежемесячно желания не было, решил таки развернуть tt-rss на малине, ибо оная валялась без дела. Об установке, собственно, ниже и напишу.
Использовать будем чистый Raspbian Stretch with desktop, с уже настроенной SSH, т.к. всё взаимодействие будет идти через неё. Можно было бы взять Raspbian Stretch lite, но у меня возникли проблемы с подключением wifi, ибо малина будет подключена к сети по вафле, поэтому взял с десктопом.
Итак, первое что необходимо сделать — обновить систему:
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade sudo apt-get autoremove sudo apt-get clean sudo apt-get check
Далее установим apache:
sudo apt-get install apache2
Затем — php и библиотеки:
sudo apt-get install php libapache2-mod-php sudo apt-get install php7.0-mbstring sudo apt-get install php7.0-xml sudo apt-get install php-curl php-pgsql php-intl
Следом закинем на установку Postgres. Я взял версию 9.6, но можно выбрать и более свежую:
sudo apt-get install postgresql-9.6
Установим Git, т.к. дистрибутив tt-rss лежит именно там:
sudo apt install git
Провалимся в apache, где будет лежать сам tt-rss в будущем:
cd /var/www/ sudo chmod -R 777 html cd html
Теперь скачаем дистрибутив tt-rss:
git clone https://tt-rss.org/git/tt-rss.git tt-rss
Давайте настроим базу и пользователя для работы с tt-rss:
sudo -u postgres psql postgres
Далее введем:
CREATE ROLE ttrssuser LOGIN PASSWORD 'ваш очень сложный пароль'; CREATE DATABASE ttrssdb WITH OWNER = ttrssuser;
Обратите внимание, что точку с запятой в конце строки необходимо ставить, также пароль имеет смысл заключить в одинарные кавычки. Выполняйте команды одну за другой, по очереди.
После выполнения введите \q для выхода из postgres
Для проверки корректности данных введите следующее:
psql -h localhost -d ttrssdb -U ttrssuser -p 5432
и при запросе введите установленный пароль. Если все будет правильно — вы снова попадете в postgres из которого необходимо выйти точно также как и раньше: \q
Идем дальше. В документации к tt-rss рекомендуется включить php opcode кэш. Давайте найдем его среди файлов, чтобы потом добавить в php.ini
sudo find / -name opcache.so
На выходе должно получиться нечто следующее:
/usr/lib/php/20151012/opcache.so
Теперь найдем php.ini:
sudo find / -name php.ini
Вывод команды должен быть похож на это:
/etc/php/7.0/apache2/php.ini
Прежде чем править php.ini сделаем его бэкап на всякий случай:
sudo cp -pv /etc/php/7.0/apache2/php.ini /etc/php/7.0/apache2/php.ini.bak
Теперь начнем редактировать php.ini, добавляя нужные для работы tt-rss расширения. Откроем файл для редактирования:
sudo nano /etc/php/7.0/apache2/php.ini
Ищем секцию ; Dynamic Extensions ; и добавляем в нее следующее:
extension=/usr/lib/php/20151012/pdo_pgsql.so extension=/usr/lib/php/20151012/pgsql.so
Далее ищем [opcache] секцию и добавляем:
zend_extension=/usr/lib/php/20151012/opcache.so opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1
Сохраним введенные данные и выйдем обратно в командную строку.
Теперь для проверки включенных расширений создадим файл info.php
sudo nano /var/www/html/info.php
в который впишем следующее:
<?php phpinfo(); ?>
Также сохраним и теперь перезапустим apache:
sudo service apache2 restart
Теперь в браузере введем: http://IP-адрес-raspberry-pi/info.php. Должна будет открыться страница с конфигурацией php. Проверьте на странице, что следующие данные идентичны:
Opcode Caching Up and Running
PDO drivers pgsql
Теперь отправимся конфигурировать tt-rss:
cd /var/www/html chmod 777 tt-rss cd tt-rss sudo chmod -R 777 cache/images sudo chmod -R 777 cache/upload sudo chmod -R 777 cache/export sudo chmod -R 777 feed-icons sudo chmod -R 777 lock
Собственно после этих действий можно отправляться в браузер для установки tt-rss:
http://IP-адрес-raspberry-pi/tt-rss/install/
Не забудьте выбрать Postgre SQL и ввести данные созданные ранее для доступа к базе (ttrssuser, ttrssdb вот это вот всё)
Заключительным шагом будет настройка cron для обновления фидов каждые 30 минут.
Откроем cron:
crontab -e
и введем туда следующее:
*/30 * * * * /usr/bin/php /var/www/html/tt-rss/update.php --feeds --quiet
На этом всё 🙂
P.S. Пользуясь днем публикации данной заметки — поздравляю прекрасную половину человечества с праздником! 🙂