traefik.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. services:
  2. traefik:
  3. image: "traefik:v2.3"
  4. container_name: traefik
  5. command:
  6. - "--providers.docker=true"
  7. - "--providers.docker.exposedbydefault=false"
  8. - "--entrypoints.websecure.address=:443"
  9. - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
  10. - "--certificatesresolvers.myresolver.acme.email=postmaster@example.com"
  11. - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
  12. depends_on:
  13. - miniflux
  14. ports:
  15. - "443:443"
  16. volumes:
  17. - "./letsencrypt:/letsencrypt"
  18. - "/var/run/docker.sock:/var/run/docker.sock:ro"
  19. miniflux:
  20. image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest}
  21. container_name: miniflux
  22. depends_on:
  23. db:
  24. condition: service_healthy
  25. expose:
  26. - "8080"
  27. environment:
  28. - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
  29. - RUN_MIGRATIONS=1
  30. - CREATE_ADMIN=1
  31. - ADMIN_USERNAME=admin
  32. - ADMIN_PASSWORD=test123
  33. - BASE_URL=https://miniflux.example.org
  34. labels:
  35. - "traefik.enable=true"
  36. - "traefik.http.routers.miniflux.rule=Host(`miniflux.example.org`)"
  37. - "traefik.http.routers.miniflux.entrypoints=websecure"
  38. - "traefik.http.routers.miniflux.tls.certresolver=myresolver"
  39. db:
  40. image: postgres:latest
  41. container_name: postgres
  42. environment:
  43. - POSTGRES_USER=miniflux
  44. - POSTGRES_PASSWORD=secret
  45. volumes:
  46. - miniflux-db:/var/lib/postgresql/data
  47. healthcheck:
  48. test: ["CMD", "pg_isready", "-U", "miniflux"]
  49. interval: 10s
  50. start_period: 30s
  51. volumes:
  52. miniflux-db: