version: '3' services: traefik: image: traefik:v3.2 container_name: traefik command: # - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entryPoints.web.address=:80" - "--entryPoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.httpchallenge=true" - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "--certificatesresolvers.myresolver.acme.email=barton@akeley.tech" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" - "8080:8080" volumes: - "/data/docker/volumes/letsencrypt:/letsencrypt:rw" - "/var/run/docker.sock:/var/run/docker.sock:ro" labels: - 'traefik.enable=true' - 'traefik.http.routers.api.rule=Host(`traefik.akeley.tech`)' - 'traefik.http.routers.api.entryPoints=https' - 'traefik.http.routers.api.tls=true' - 'traefik.http.routers.api.service=api@internal' # - 'traefik.http.routers.api.middlewares=authelia@docker' # pktriot: # image: packetriot/pktriot:latest # container_name: pktriot # restart: unless-stopped # volumes: # - /data/docker/volumes/pktriot:/data:rw # mariadb: # image: mariadb:10.6 # container_name: mariadb # restart: always # command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW # volumes: # - /data/docker/volumes/mariadb:/var/lib/mysql:rw # environment: # - MYSQL_ROOT_PASSWORD=fji9_+jK12dEW # - MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd # - MYSQL_DATABASE=nextcloud # - MYSQL_USER=nextcloud # # nextcloud: # image: nextcloud:30.0.4 # container_name: nextcloud # restart: always # ports: # - 8088:80 # links: # - mariadb # volumes: # - /data/docker/volumes/nextcloud:/var/www/html # - /data:/data:rw # - /docs/documents:/documents:rw # environment: # - MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd # - MYSQL_DATABASE=nextcloud # - MYSQL_USER=nextcloud # - MYSQL_HOST=mariadb # labels: # - traefik.enable=true # - traefik.http.routers.nextcloud.entrypoints=web,websecure # - traefik.http.routers.nextcloud.rule=Host(`nextcloud.akeley.tech`) # - traefik.http.routers.nextcloud.tls=true # - traefik.http.routers.nextcloud.tls.certresolver=myresolver # plex: # image: plexinc/pms-docker # container_name: plex # init: true # hostname: excellon # restart: always # ports: # - 32400:32400 # - 8324:8324 # - 32469:32469 # - 1900:1900 # - 32410:32410 # - 32412:32412 # - 32413:32413 # - 32414:32414 # environment: # TZ: "America/Chicago" # PLEX_CLAIM: "claim-7-N1LVT5AMco6ayhy4Tm" # ADVERTISE_IP: "http://192.168.1.3:32400/" # volumes: # - /data/docker/volumes/plex/config:/config # - /data/docker/volumes/plex/transcode:/transcode # - /data:/data:rw # forgejo: # image: codeberg.org/forgejo/forgejo:9 # container_name: forgejo # environment: # - USER_UID=1000 # - USER_GID=1000 # restart: always # volumes: # - /data/docker/volumes/forgejo:/data # - /etc/timezone:/etc/timezone:ro # - /etc/localtime:/etc/localtime:ro # ports: # - '3000:3000' # - '222:22' # miniflux: # image: miniflux/miniflux:latest # container_name: miniflux # ports: # - "8081:8080" # depends_on: # pg_db: # condition: service_healthy # environment: # - DATABASE_URL=postgres://miniflux:99uskas0_l@pg_db/miniflux?sslmode=disable # - RUN_MIGRATIONS=1 # - CREATE_ADMIN=1 # - ADMIN_USERNAME=admin # - ADMIN_PASSWORD=982#@2gGGHjf # # pg_db: # image: postgres:17-alpine # container_name: pg_db # environment: # - POSTGRES_USER=miniflux # - POSTGRES_PASSWORD=99uskas0_l # - POSTGRES_DB=miniflux # volumes: # - /data/docker/volumes/pg_db:/var/lib/postgresql/data # healthcheck: # test: ["CMD", "pg_isready", "-U", "miniflux"] # interval: 10s # start_period: 30s # whoami: # image: "traefik/whoami" # container_name: whoami # labels: # - "traefik.enable=true" # - "traefik.http.routers.whoami.rule=Host(`whoami.akeley.tech`)" # - "traefik.http.routers.whoami.entrypoints=web,websecure" # - "traefik.http.routers.whoami.tls.certresolver=myresolver" # authelia: # container_name: 'authelia' # image: 'authelia/authelia' # restart: 'unless-stopped' # expose: # - 9091 # volumes: # - './authelia/config:/config' # environment: # TZ: "America/Chicago" # labels: # - 'traefik.enable=true' # - 'traefik.http.routers.authelia.rule=Host(`auth.akeley.tech`)' # - 'traefik.http.routers.authelia.entryPoints=https' # - 'traefik.http.routers.authelia.tls=true' # - 'traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth' # ## The following commented line is for configuring the Authelia URL in the proxy. We strongly suggest this is # ## configured in the Session Cookies section of the Authelia configuration. # # - 'traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth?authelia_url=https%3A%2F%2Fauth.example.com%2F' # - 'traefik.http.middlewares.authelia.forwardAuth.trustForwardHeader=true' # - 'traefik.http.middlewares.authelia.forwardAuth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Email,Remote-Name'