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

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

Но, как обычно это бывает, захотелось странного. И решил попробовать [miniflux](http://miniflux.net/ "Miniflux is a minimalist and open source rss reader").

[![miniflux](https://static.juev.org/2013/09/miniflux-th.jpg)](https://static.juev.org/2013/09/miniflux.png "Miniflux")

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

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

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

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

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

    ```shell
    $ sudo add-apt-repository ppa:nginx/stable
    $ sudo apt-get update
    $ sudo apt-get upgrade --show-upgraded
    $ sudo apt-get install nginx
    ```

2. Установим php5:

    ```shell
    $ sudo apt-get install php5-fpm php5-sqlite php-xml-parser php-xml-serializer
    ```

3. Настраиваем php5 и его связку с nginx:

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

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

    ```conf
    date.timezone = "Europe/Moscow"
    ```

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

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

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

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

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

    ```shell
    $ sudo service php5-fpm restart
    ```

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

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

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

    ```nginx
    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;
        }
    }
    ```

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

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

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

    ```shell
    $ sudo ln -s /etc/nginx/sites-available/sitename /etc/nginx/sites-enabled
    $ sudo service nginx restart
    ```

4. Устанавливаем miniflux:

    ```shell
    $ 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 для обновления по времени, для это используется команда:

```shell
$ crontab -e
```

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

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

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

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

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

