Miniflux является минималистский веб RSS-ридер с открытым исходным кодом, оптимизированным для удобства чтения. Это быстрый, простой, эффективный и он работает с помощью смартфона, планшетного ПК или на рабочем столе.

Подготовка

Прежде всего, давайте начнем с обновления пакетов:

$ sudo apt-get update && sudo apt-get -y upgrade

Miniflux требует postresql в качестве сервера базы данных. Поэтому давайте установим необходимые пакеты:

$ sudo apt install postgresql postgresql-contrib

Загрузятся драйверы PostgreSQL последней версии и развернутся необходимые компоненты.

Запускаем сервис:

$ sudo systemctl start postgresql.service

Проверка статуса сервиса:

$ sudo systemctl status postgresql.service

Сервис развернули.

Создание базы данных

Нам нужно создать базу данных для Miniflux для работы.

$ sudo -u postgres psql -c "CREATE USER miniflux WITH PASSWORD 'miniflux';"
$ sudo -u postgres psql -c "CREATE DATABASE miniflux_db OWNER miniflux;"
$ sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE miniflux_db TO miniflux;"
$ sudo -u postgres psql miniflux_db -c 'CREATE EXTENSION hstore;'

Установите Miniflux.

$ sudo wget -O /usr/local/bin/miniflux https://github.com/miniflux/v2/releases/download/2.0.34/miniflux-linux-amd64

Сделайте файл miniflux исполняемый

$ sudo chmod +x /usr/local/bin/miniflux
$ sudo chmod 755 /usr/local/bin/miniflux
$ sudo setcap cap_net_bind_service=+ep /usr/local/bin/miniflux

Убедитесь, что возможность добавлена:

$ getcap /usr/local/bin/miniflux
/usr/local/bin/miniflux = cap_net_bind_service+ep

Обратите внимание, что вам придется сделать эту операцию каждый раз, когда вы обновляете Miniflux.

Создайте пользователя для запуска

$ sudo useradd -s /usr/sbin/nologin -r -M miniflux

Конфигурация

Наконец, нам нужно настроить miniflux. Файл конфигурации хранится в /etc/miniflux.conf:

$ sudo nano /etc/miniflux.conf

И добавьте следующее содержимое.

# /etc/miniflux.conf

LOG_DATE_TIME=yes
LISTEN_ADDR=127.0.0.1:8080
DATABASE_URL=user=miniflux password=miniflux dbname=miniflux_db sslmode=disable host=localhost port=MyPostgreSQLPort

# Run SQL migrations automatically:
# RUN_MIGRATIONS=1

Затем

$ sudo chown miniflux:miniflux /etc/miniflux.conf
$ sudo chmod 600 /etc/miniflux.conf

Чтобы завершить установку, запустите миграции SQL и создайте администратора пользователя:

$ sudo miniflux -c /etc/miniflux.conf -migrate
$ sudo miniflux -c /etc/miniflux.conf -create-admin

Создайте файл сервиса, чтобы запустить Miniflux автоматически

Используйте nano, чтобы создать новый файл сервиса.

$ sudo nano /etc/systemd/system/miniflux.service

И добавьте следующее содержимое в miniflux.service.

[Unit]
Description=Miniflux Service
Requires=miniflux
After=network.target
After=postgresql.service


[Service]
Type=simple
StartLimitBurst=0
ExecStart=/usr/local/bin/miniflux
EnvironmentFile=/etc/miniflux.conf
User=miniflux
Restart=always
NonBlocking=true

[Install]
WantedBy=multi-user.target

Запустите сервис.

$ sudo systemctl enable miniflux.service
$ sudo systemctl start miniflux.service
$ sudo systemctl status miniflux.service

Настройте Nginx в качестве обратного прокси

$ sudo apt-get -y install nginx

Создайте обратный конфигурацию прокси-сервера для Miniflux.

$ sudo nano /etc/nginx/sites-available/miniflux.conf

Заполните файл следующей конфигурацией.

server {
    server_name     my.domain.tld;
    listen          80;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Включите конфигурацию обратной прокси-сервера Miniflux Nginx.

$ sudo ln -s /etc/nginx/sites-available/miniflux.conf /etc/nginx/sites-enabled/miniflux.conf

Проверка конфигурации и перезагрузите службу Nginx.

$ sudo nginx -t
$ sudo systemctl restart nginx.service

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

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

В целом, miniflux мне очень понравился тем, что он очень легкий, быстрый, имеет управление с клавиатуры. Плюс в нем очень просто настраивать оформление статей.