Miniflux von Frédéric Guillot ist mein datenschutztechnischer Ersatz für Feedly (was mein Feedreader-Ersatz für den eingestellten Google Reader war). Ich habe Miniflux nun schon einige Zeit im Einsatz und es funktioniert einfach… perfekt! Hier das Setup für eine mögliche Installation im Dockerswarm mit einer PostgreSQL Datenbank…

Docker Swarm

cat <<'EOF' > ./swarm.yml
version: '3.7'

services:
  app:
    image: miniflux/miniflux:latest
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: 3
    networks:
      - internal
      - traefik-net
    env_file: ./miniflux.env
    deploy:
      replicas: 1
      labels:
        - "traefik.port=8080"
        - "traefik.backend=miniflux"
        - "traefik.frontend.rule=Host:miniflux.mplx.demo"
        - "traefik.enable=true"
        - "traefik.frontend.entryPoints=https,http"
        - "traefik.docker.network=traefik-net"
        - "traefik.backend.loadbalancer.method=drr"
      restart_policy:
        condition: on-failure
        max_attempts: 3
      update_config:
        parallelism: 1
        delay: 5s
        failure_action: continue
        monitor: 10s
        max_failure_ratio: 0
  db:
    image: postgres:10.7-alpine
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: 3
    networks:
      - internal
    env_file: ./postgres.env
    volumes:
      - ./database:/var/lib/postgresql/data
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        max_attempts: 10
      update_config:
        parallelism: 1
        delay: 5s
        failure_action: continue
        monitor: 5s
        max_failure_ratio: 0
networks:
  traefik-net:
    external: true
  internal:
EOF

Datenbank Config

cat <<'EOF' > ./postgres.env
POSTGRES_USER=miniflux
POSTGRES_PASSWORD=minifluxpassword
POSTGRES_DB=minifluxdb
EOF

Miniflux Setup

cat <<'EOF' > ./miniflux.env
#RUN_MIGRATIONS=1
DATABASE_URL=postgres://miniflux:minifluxpassword@db/minifluxdb?sslmode=disable
# disable after 1st run
CREATE_ADMIN=1
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
EOF

Nach dem ersten Deployment anpassen…

Daten-Volume

mkdir -pv ./database

Docker Swarm

docker stack deploy -c swarm.yml miniflux
docker service logs -f miniflux_app

Cleanup

docker stack rm miniflux
sleep 5
rm -Rf database