Dokploy

Miniflux

Miniflux is a minimalist and opinionated feed reader for self-hosted RSS and Atom subscriptions.

Miniflux logo

Configuration

version: "3.8"

services:
  miniflux:
    image: miniflux/miniflux:2.2.19
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    environment:
      DATABASE_URL: user=miniflux password=${POSTGRES_PASSWORD} dbname=miniflux host=db sslmode=disable
      RUN_MIGRATIONS: "1"
      CREATE_ADMIN: "1"
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      BASE_URL: https://${MINIFLUX_DOMAIN}
    expose:
      - "8080"
    healthcheck:
      test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

  db:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: miniflux
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: miniflux
    expose:
      - "5432"
    volumes:
      - miniflux-db:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U miniflux -d miniflux"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  miniflux-db:
[variables]
main_domain = "${domain}"
postgres_password = "${password:32}"
admin_username = "admin"
admin_password = "${password:32}"

[config]
[[config.domains]]
serviceName = "miniflux"
port = 8080
host = "${main_domain}"

[config.env]
MINIFLUX_DOMAIN = "${main_domain}"
POSTGRES_PASSWORD = "${postgres_password}"
ADMIN_USERNAME = "${admin_username}"
ADMIN_PASSWORD = "${admin_password}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIG1pbmlmbHV4OlxuICAgIGltYWdlOiBtaW5pZmx1eC9taW5pZmx1eDoyLjIuMTlcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIERBVEFCQVNFX1VSTDogdXNlcj1taW5pZmx1eCBwYXNzd29yZD0ke1BPU1RHUkVTX1BBU1NXT1JEfSBkYm5hbWU9bWluaWZsdXggaG9zdD1kYiBzc2xtb2RlPWRpc2FibGVcbiAgICAgIFJVTl9NSUdSQVRJT05TOiBcIjFcIlxuICAgICAgQ1JFQVRFX0FETUlOOiBcIjFcIlxuICAgICAgQURNSU5fVVNFUk5BTUU6ICR7QURNSU5fVVNFUk5BTUV9XG4gICAgICBBRE1JTl9QQVNTV09SRDogJHtBRE1JTl9QQVNTV09SRH1cbiAgICAgIEJBU0VfVVJMOiBodHRwczovLyR7TUlOSUZMVVhfRE9NQUlOfVxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCI4MDgwXCJcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcIi91c3IvYmluL21pbmlmbHV4XCIsIFwiLWhlYWx0aGNoZWNrXCIsIFwiYXV0b1wiXVxuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzXG4gICAgICBzdGFydF9wZXJpb2Q6IDMwc1xuXG4gIGRiOlxuICAgIGltYWdlOiBwb3N0Z3JlczoxOC1hbHBpbmVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgUE9TVEdSRVNfVVNFUjogbWluaWZsdXhcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiAke1BPU1RHUkVTX1BBU1NXT1JEfVxuICAgICAgUE9TVEdSRVNfREI6IG1pbmlmbHV4XG4gICAgZXhwb3NlOlxuICAgICAgLSBcIjU0MzJcIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIG1pbmlmbHV4LWRiOi92YXIvbGliL3Bvc3RncmVzcWxcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgbWluaWZsdXggLWQgbWluaWZsdXhcIl1cbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiA1XG4gICAgICBzdGFydF9wZXJpb2Q6IDMwc1xuXG52b2x1bWVzOlxuICBtaW5pZmx1eC1kYjpcbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5wb3N0Z3Jlc19wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuYWRtaW5fdXNlcm5hbWUgPSBcImFkbWluXCJcbmFkbWluX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJtaW5pZmx1eFwiXG5wb3J0ID0gODA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG5bY29uZmlnLmVudl1cbk1JTklGTFVYX0RPTUFJTiA9IFwiJHttYWluX2RvbWFpbn1cIlxuUE9TVEdSRVNfUEFTU1dPUkQgPSBcIiR7cG9zdGdyZXNfcGFzc3dvcmR9XCJcbkFETUlOX1VTRVJOQU1FID0gXCIke2FkbWluX3VzZXJuYW1lfVwiXG5BRE1JTl9QQVNTV09SRCA9IFwiJHthZG1pbl9wYXNzd29yZH1cIlxuIgp9

Tags

rss, feed-reader, news


Version: 2.2.19

On this page