MinifluxをTraefik連携でDocker構築する

Deploy Miniflux with Traefik and Docker Compose: Complete Setup Guide

* 本ページはプロモーションが含まれています

今まで、RSSのセルフホストをFreshRSSで活用してきましたが、軽量やいろんな外部と連携できるとして、Minifluxへ移行しました。

今回もDockerで構築していきますが、下記の前提として記載します。

環境 

  • 独自ドメイン(Cloudflareにて登録済み)
  • ネットワーク: traefik-network (external)
  • CertResolver: cloudflare
  • entryPoints: web (80), websecure (443)

docker-compose.yml 

services:
  miniflux:
    image: miniflux/miniflux:latest
    container_name: miniflux
    restart: always
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgres://miniflux:${DB_PASSWORD}@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=${ADMIN_USERNAME}
      - ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - BASE_URL=https://${MINIFLUX_DOMAIN}
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-network"
      - "traefik.http.routers.miniflux.rule=Host(`${MINIFLUX_DOMAIN}`)"
      - "traefik.http.routers.miniflux.entrypoints=websecure"
      - "traefik.http.routers.miniflux.tls=true"
      - "traefik.http.routers.miniflux.tls.certresolver=cloudflare"
      - "traefik.http.services.miniflux.loadbalancer.server.port=8080"
    networks:
      - traefik-network
      - miniflux-internal
    healthcheck:
      test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
      interval: 10s
      start_period: 30s
  db:
    image: postgres:17
    container_name: miniflux-db
    restart: always
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=miniflux
    volumes:
      - miniflux-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
    networks:
      - miniflux-internal
networks:
  traefik-network:
    external: true
  miniflux-internal:
    driver: bridge
volumes:
  miniflux-db:

.env 

DB_PASSWORD=your_secure_db_password
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_secure_admin_password
MINIFLUX_DOMAIN=rss.your-domain.com

起動 

docker compose up -d

Miniflux を Traefik + Docker Compose で安全に構築する 

  • PostgreSQL: 公式ドキュメントではPostgres 18だが、まだbetaなので17を使用
  • ネットワーク分離: DBはminiflux-internalのみに接続し、外部からアクセス不可
  • Traefik連携: minifluxコンテナはtraefik-networkに接続し、labelsでルーティング設定
  • ポート: minifluxはデフォルトで8080で起動するため、ホストへのポート公開は不要(Traefikが処理)