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
