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