services: traefik: image: "traefik:v2.3" container_name: traefik command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - "--certificatesresolvers.myresolver.acme.email=postmaster@example.com" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" depends_on: - miniflux ports: - "443:443" volumes: - "./letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock:ro" miniflux: image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest} container_name: miniflux depends_on: db: condition: service_healthy expose: - "8080" environment: - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable - RUN_MIGRATIONS=1 - CREATE_ADMIN=1 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=test123 - BASE_URL=https://miniflux.example.org labels: - "traefik.enable=true" - "traefik.http.routers.miniflux.rule=Host(`miniflux.example.org`)" - "traefik.http.routers.miniflux.entrypoints=websecure" - "traefik.http.routers.miniflux.tls.certresolver=myresolver" db: image: postgres:15 container_name: postgres environment: - POSTGRES_USER=miniflux - POSTGRES_PASSWORD=secret volumes: - miniflux-db:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "miniflux"] interval: 10s start_period: 30s volumes: miniflux-db: