version: '3' services: ######## Miniflux ######## miniflux: container_name: "mf-frontend" image: "ghcr.io/miniflux/miniflux:2.0.51@sha256:9f3bca6a95428c04c8fb54ee723a5f69b9e419b0bf5dfd7a4d70dfb0414d60f1" restart: always depends_on: - mf-db16 environment: DATABASE_URL: "postgres://miniflux:{{ lookup('keepass', 'miniflux_postgres_password', 'password') }}@mf-db16/miniflux?sslmode=disable" RUN_MIGRATIONS: 1 # CREATE_ADMIN: 1 # ADMIN_USERNAME: adminmf # ADMIN_PASSWORD: "{{ lookup('keepass', 'miniflux_admin_password', 'password') }}" WORKER_POOL_SIZE: 10 POLLING_FREQUENCY: 10 CLEANUP_ARCHIVE_UNREAD_DAYS: -1 CLEANUP_ARCHIVE_READ_DAYS: 90 TZ: Europe/Berlin networks: - intern - traefik healthcheck: test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"] labels: traefik.http.routers.miniflux.rule: Host(`miniflux.mgrote.net`) traefik.enable: true traefik.http.routers.miniflux.tls: true traefik.http.routers.miniflux.tls.certresolver: resolver_letsencrypt traefik.http.routers.miniflux.entrypoints: entry_https traefik.http.services.miniflux.loadbalancer.server.port: 8080 com.centurylinklabs.watchtower.enable: true com.centurylinklabs.watchtower.depends-on: mf-db16 ######## Postgres ######## mf-db16: container_name: "mf-db16" image: "postgres:16.1@sha256:4d1b17af6f66b852ee3a721f6691a2ca7352f9d28f570a6a48cee4ebe646b2fd" restart: always environment: POSTGRES_USER: miniflux POSTGRES_PASSWORD: "{{ lookup('keepass', 'miniflux_postgres_password', 'password') }}" TZ: Europe/Berlin POSTGRES_HOST_AUTH_METHOD: "md5" # Workaround beim Migration von 13 -> 16; https://eelkevdbos.medium.com/upgrade-postgresql-with-docker-compose-99d995e464 ; volumes: - db16:/var/lib/postgresql/data networks: - intern healthcheck: test: ["CMD", "pg_isready", "-U", "miniflux"] interval: 10s start_period: 30s labels: com.centurylinklabs.watchtower.enable: true ######## Miniflux-Filter ######## mf-filter: container_name: mf-filter depends_on: - miniflux restart: always environment: TZ: Europe/Berlin MF_AUTH_TOKEN: "{{ lookup('keepass', 'miniflux_auth_token', 'password') }}" MF_API_URL: https://miniflux.mgrote.net/v1 MF_SLEEP: 600 #MF_DEBUG: 1 image: "registry.mgrote.net/miniflux-filter:latest@sha256:fa09455085aad163b742521e0b2e73d8f673882e7211f2ea4a8572d1ae26c35c" volumes: - ./filter.txt:/data/filter.txt networks: - intern labels: com.centurylinklabs.watchtower.enable: true com.centurylinklabs.watchtower.depends-on: mf-frontend ######## Volumes ######## volumes: db16: ######## Networks ######## networks: traefik: external: true intern: driver: bridge