How to install miniflux

Posted on May 16, 2024
Use miniflux with Metal & Docker

DATABASE INITIALIZATION

# user
sudo -iu postgres psql -c "CREATE USER usr1 WITH PASSWORD 'debian';"
sudo -iu postgres psql -c "ALTER USER usr1 WITH SUPERUSER";

# db
sudo -iu postgres psql -c "CREATE DATABASE miniflux WITH OWNER usr1;"
sudo -iu postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE miniflux TO usr1;"
sudo -Su postgres psql -c "\l"

# connect db
sudo -u postgres psql miniflux
CREATE EXTENSION hstore;
SELECT * from pg_stat_activity where datname='miniflux';

INSTALL WITH DOCKER

docker run -d \
  -p 85:8080 \
  --name miniflux \
  --restart always \
  -e "DATABASE_URL=postgres://usr1:[email protected]/miniflux?sslmode=disable" \
  -e "RUN_MIGRATIONS=1" \
  -e "CREATE_ADMIN=1" \
  -e "ADMIN_USERNAME=admin" \
  -e "ADMIN_PASSWORD=password" \
  docker.io/miniflux/miniflux:latest

DOWNLOADS

get miniflux https://github.com/miniflux/v2/releases/tag/2.1.3

CONFIGURE

/usr/local/miniflux/miniflux.conf

DATABASE_URL=user=usr1 password=debian dbname=miniflux host=10.21.0.26 sslmode=disable
ADMIN_USERNAME=admin
ADMIN_PASSWORD=debian
CREATE_ADMIN=1
LOG_LEVEL=debug
WORKER_POOL_SIZE=20
LISTEN_ADDR=0.0.0.0:8080
BASE_URL=http://0.0.0.0/miniflux
HTTP_CLIENT_PROXY=http://10.21.0.1:8118

/lib/systemd/system/miniflux.service

[Unit]
Description=Miniflux
Documentation=man:miniflux(1) https://miniflux.app/docs/index.html
Wants=network.target postgresql.service
After=network.target postgresql.service

[Service]
Type=notify
ExecStart=/usr/local/miniflux/miniflux -c /usr/local/miniflux/miniflux.conf
Restart=on-failure
WatchdogSec=60s
WatchdogSignal=SIGKILL

[Install]
WantedBy=multi-user.target

NGINX REVERSE PROXY

location ^~ /miniflux {
    return 301 $scheme://$host/miniflux/;
}

location /miniflux/ {
    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;
}