跳到主要内容

主机资讯与使用指南

Miniflux 部署教程:Docker、RSS 订阅与个人阅读器

通过 Docker Compose 部署 Miniflux 与 PostgreSQL,创建管理员、添加 RSS 并配置域名及数据备份。

用一个服务集中订阅 RSS

Miniflux 把不同网站的 RSS 更新放进一个阅读器,适合在电脑与手机之间同步未读状态。它需要 PostgreSQL 保存订阅、文章和账号。

本文使用 Linux、Docker Compose 与宿主机 Caddy。先准备 rss.example.com 域名,已有 Docker 安装和 HTTPS 教程可作为前置阅读。

生成凭证并建立 Compose

mkdir -p "$HOME/miniflux"
cd "$HOME/miniflux"
umask 077
printf "DB_PASSWORD=%s\nADMIN_PASSWORD=%s\n" "$(openssl rand -hex 24)" "$(openssl rand -hex 24)" > .env

将下面配置保存成 compose.yml。PostgreSQL 固定为 17,数据目录与该大版本匹配。

services:
  db:
    image: postgres:17-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: miniflux
      POSTGRES_USER: miniflux
      POSTGRES_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD}
    volumes:
      - ./postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U miniflux -d miniflux"]
      interval: 10s
      timeout: 5s
      retries: 10
  miniflux:
    image: miniflux/miniflux:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8082:8080"
    environment:
      DATABASE_URL: postgres://miniflux:${DB_PASSWORD:?set DB_PASSWORD}@db:5432/miniflux?sslmode=disable
      RUN_MIGRATIONS: "1"
      CREATE_ADMIN: "1"
      ADMIN_USERNAME: admin
      ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD}
      BASE_URL: https://rss.example.com
    depends_on:
      db:
        condition: service_healthy

启动与域名访问

docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=100 miniflux
rss.example.com {
    reverse_proxy 127.0.0.1:8082
}

域名需换成自己的,并同步修改 BASE_URL。Caddy 运行在宿主机时使用此本地映射;其他代理环境按对应网络设置。

登录并添加订阅

使用 admin 和 .env 中生成的 ADMIN_PASSWORD 登录,添加一个有效 RSS 地址,查看能否刷新出文章。订阅入口通常是网站提供的 feed URL,不是任意首页地址。

首次初始化完成后,可以从环境中移除 CREATE_ADMIN、ADMIN_USERNAME、ADMIN_PASSWORD 并重建容器,账号已经保存在数据库中。不要删除数据库目录。

升级和备份

将实际运行的 Miniflux 版本记录下来,需要固定版本时把 latest 改成对应稳定标签。升级前导出 PostgreSQL 数据,保留 compose.yml 与 .env。

PostgreSQL 升级大版本需要逻辑导出恢复或专门升级流程,不能只把 17 改成 18。RSS 阅读器占用随订阅、文章数量和保留时间变化,磁盘用量增加时检查数据保留设置。

相关阅读