Установка Miniflux в Ubuntu 12.04

01 September 2013 #vps#nginx#services#ubuntu

В тот момент, как появилась новость о закрытии Google Reader, во всю властвовал Feedly. Из всех предложенных вариантов он оказался самым интересным, и я просто перенес все свои подписки в данный сервис. Кстати, и сейчас я в нем не разочарован.

Но, как обычно это бывает, захотелось странного. И решил попробовать miniflux.

miniflux

Есть два варианта его использования:

  1. Заплатить единоразово 10 евро и использовать miniflux на хостинге разработчика
  2. Установить miniflux на свой сервер

Проще всего, конечно, заплатить. Так как не нужно будет думать о работоспособности сервера, его оплате, не нужно будет обновлять miniflux, за этим следит сам разработчик. Но мне показалось это не интересным. Сервер-то у меня уже есть.

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

  1. Установим nginx:

     $ sudo add-apt-repository ppa:nginx/stable
     $ sudo apt-get update
     $ sudo apt-get upgrade --show-upgraded
     $ sudo apt-get install nginx
    
  2. Установим php5:

     $ sudo apt-get install php5-fpm php5-sqlite php-xml-parser php-xml-serializer
    
  3. Настраиваем php5 и его связку с nginx:

     $ sudo vim /etc/php5/fpm/php.ini
    

    Ищем строку с date.timezone, снимаем с нее комментарий и приводим к следующему виду:

     date.timezone = "Europe/Moscow"
    

    Естественно, что в значении указываете свой часовой пояс. Теперь аналогичные изменения производим в файле /etc/php5/cli/php.ini. Теперь меняем поведение php5 с прослушивания tcp-соединения на использование сокетов:

     $ sudo vim /etc/php5/fpm/pool.d/www.conf
    

    В этом файле ищем строку listen = 127.0.0.1:9000, комментируем ее или просто меняем на:

     listen = /var/run/php5-fpm.sock
    

    Остается перезапустить php5, чтобы использовать новые настройки:

     $ sudo service php5-fpm restart
    

    И теперь остается создать новый сайт в nginx, для это выполняем следующие команды:

     $ cd /etc/nginx/site-available
     $ sudo vim sitename
    

    Новый файл приводим примерно к следующему виду, большинство настроек понятны из контекста:

     server {
         listen 80;
         server_name sitename.ru;
    
         root /home/username/www/miniflux;
         index index.php;
         autoindex off;
    
         charset utf-8;
    
         location / {
             try_files $uri $uri/ =404;
         }
    
         access_log  off;
         error_log   /home/username/logs/miniflux/error.log;
    
         location ~ /\. {
             deny all;
             access_log      off;
             log_not_found   off;
         }
    
         location ~ /data {
             deny all;
             access_log      off;
             log_not_found   off;
         }
    
         location ~ \.php$ {
             fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_index index.php;
             include fastcgi_params;
         }
     }
    

    Теперь создаем используемые в конфигурации директории:

     $ mkdir -p ~/www/miniflux ~/logs/miniflux
    

    Активируем новую конфигурацию сайта и перезапускаем nginx:

     $ sudo ln -s /etc/nginx/sites-available/sitename /etc/nginx/sites-enabled
     $ sudo service nginx restart
    
  4. Устанавливаем miniflux:

     $ cd ~/www/miniflux
     $ wget https://github.com/fguillot/miniflux/archive/master.zip
     $ sudo apt-get install unzip
     $ unzip master.zip
     $ mv miniflux-master/* .
     $ rm -rf master.zip miniflux-master
    

Собственно на этом все. Остается только у своего доменного регистратора прописать на используемый sitename.ru требуемый ip-адрес, дождаться его делегирования, и можно открывать уже свой ридер в браузере.

Для первого входа в систему используется учетные данные: admin/admin. После входа нужно в настройках их изменить и импортировать свой opml-файл с rss-подписками.

Обновление подписок производится вручную, либо можно использовать crontab для обновления по времени, для это используется команда:

$ crontab -e

И в открывшемся файле добавляем строку:

*/20 * * * * cd /home/ubuntu/www/miniflux && php cronjob.php > /dev/null 2>&1

Согласно данной настройке, обновление лент будет производиться каждые 20 минут.

В целом, miniflux мне очень понравился тем, что он очень легкий, быстрый, имеет управление с клавиатуры. Плюс в нем очень просто настраивать оформление статей. Я после первого же запуска изменил используемые шрифты, отцентровал изображения в статьях (как это выглядит сейчас можно посмотреть на изображении в начале статьи). А фиды для помеченных статей подключил в ifttt, создал правило, по которому при появлении в данном фиде статьи, добавлять ее в instapaper.

Просто и удобно!