Nomploy Nomad Packs

← All packs

miniflux v0.1.0

Apps

Miniflux — a minimalist, fast, opinionated self-hosted RSS/Atom feed reader with a clean UI and REST API. Deployed all-in-one with its PostgreSQL database in a single host-networked Nomad job; runs migrations and creates the admin on first start.

nomad-pack run miniflux --registry nomploy
2 tasks http 8100db 5432 1 volume image miniflux/miniflux:latest
Variables 15
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run miniflux -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "miniflux"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The Miniflux container image. Pin a tag in production.
image = "miniflux/miniflux:latest"

# Host port for the Miniflux web UI / API.
port = 8100

# Admin username, created on first boot.
admin_user = "admin"

# Admin password, created on first boot. CHANGE THIS (Miniflux requires at least 6 characters).
admin_password = "changeme"

# Public base URL Miniflux is served at (e.g. https://reader.example.com/). Empty = leave unset.
base_url = ""

# PostgreSQL image backing Miniflux.
postgres_image = "postgres:16-alpine"

# Host port PostgreSQL listens on. Miniflux connects on 127.0.0.1.
db_port = 5432

# Password for the Miniflux Postgres user. CHANGE THIS. (DB name and user are both "miniflux".)
db_password = "miniflux"

# Docker named volume for the Postgres data dir (feeds, entries, users). Back it up.
db_data_volume = "miniflux_db_data"

# Resources for the Miniflux task.
miniflux_resources = {
    cpu    = 300
    memory = 256
  }

# Resources for the PostgreSQL task.
postgres_resources = {
    cpu    = 500
    memory = 512
  }

# Placement constraints — pin the job to one node so the Postgres local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []
NameTypeDefaultDescription
job_name string
"miniflux"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"miniflux/miniflux:latest"
The Miniflux container image. Pin a tag in production.
port number
8100
Host port for the Miniflux web UI / API.
admin_user string
"admin"
Admin username, created on first boot.
admin_password set me string
"changeme"
Admin password, created on first boot. CHANGE THIS (Miniflux requires at least 6 characters).
base_url string
""
Public base URL Miniflux is served at (e.g. https://reader.example.com/). Empty = leave unset.
postgres_image string
"postgres:16-alpine"
PostgreSQL image backing Miniflux.
db_port number
5432
Host port PostgreSQL listens on. Miniflux connects on 127.0.0.1.
db_password key string
"miniflux"
Password for the Miniflux Postgres user. CHANGE THIS. (DB name and user are both "miniflux".)
db_data_volume string
"miniflux_db_data"
Docker named volume for the Postgres data dir (feeds, entries, users). Back it up.
miniflux_resources object
{
    cpu    = 300
    memory = 256
  }
Resources for the Miniflux task.
postgres_resources object
{
    cpu    = 500
    memory = 512
  }
Resources for the PostgreSQL task.
constraints list
[]
Placement constraints — pin the job to one node so the Postgres local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
Readme

miniflux

Miniflux — a minimalist, fast, self-hosted RSS/Atom feed reader with a clean reading UI, keyboard shortcuts, and a REST API. All-in-one: Miniflux plus its PostgreSQL database in a single host-networked Nomad job. It runs migrations and creates the admin on first start.

Usage

nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run miniflux --registry nomploy --var admin_password=<secret>

In nomploy: create a Compose service, type Nomad Pack, pack miniflux, set admin_password, then Deploy. Open http://<node-ip>:8100 and log in as admin.

Key variables

Variable Default Notes
image miniflux/miniflux:latest Pin a tag in production.
port 8100 Web UI / API (LISTEN_ADDR).
admin_user / admin_password admin / changeme Created on first boot. Change the password (min 6 chars).
base_url "" Public URL when behind a domain.
db_password miniflux Postgres password. Change this.
db_data_volume miniflux_db_data Feeds/entries/users. Back it up.
db_port 5432 Bundled Postgres host port.
constraints [] Pin to a node so the volume stays put.

Per-task resources: miniflux_resources, postgres_resources.

Notes