51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
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
|
|
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:
|