containers/docker-compose.yml

126 lines
3.7 KiB
YAML

version: "3.8"
services:
traefik:
image: "traefik:v2.9"
container_name: "traefik"
networks:
- proxy
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--api.insecure=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.httpchallenge=true"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.le.acme.email=axpwpi@gmail.com"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/traefik:/letsencrypt"
labels:
- traefik.enable=true
- traefik.http.routers.traefik.rule=Host(`traefik.axpdsp.org`)
- traefik.http.routers.traefik.tls.certresolver=le
- traefik.http.services.traefik.loadbalancer.server.port=8080
restart: always
certdumper:
image: humenius/traefik-certs-dumper:latest
container_name: certdumper
restart: unless-stopped
volumes:
- /traefik:/traefik:ro
- /certs:/output:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- CERTIFICATE_FILE_NAME=fullchain
- PRIVATE_KEY_FILE_NAME=privkey
- OVERRIDE_UID=1000
- OVERRIDE_GID=1000
portainer:
image: portainer/portainer-ee
container_name: portainer
restart: unless-stopped
networks:
- proxy
volumes:
- portainer:/data
- /var/run/docker.sock:/var/run/docker.sock
labels:
- traefik.enable=true
- traefik.http.routers.portainer.rule=Host(`portainer.axpdsp.org`)
- traefik.http.routers.portainer.tls.certresolver=le
- traefik.http.services.portainer.loadbalancer.server.port=9000
homepage:
image: ghcr.io/benphelps/homepage:latest
container_name: homepage
restart: unless-stopped
networks:
- proxy
volumes:
- homepage:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- traefik.enable=true
- traefik.http.routers.homepage.rule=Host(`dashboard.axpdsp.org`)
- traefik.http.routers.homepage.tls.certresolver=le
- traefik.http.routers.homepage.entrypoints=websecure
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
networks:
- proxy
volumes:
- uptime-kuma:/app/data
- /var/run/docker.sock:/var/run/docker.sock
restart: always
labels:
- traefik.enable=true
- traefik.http.routers.uptime.rule=Host(`uptime.axpdsp.org`)
- traefik.http.routers.uptime.tls.certresolver=le
- traefik.http.routers.uptime.entrypoints=websecure
- traefik.http.services.uptime.loadbalancer.server.port=3001
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
environment:
- WATCHTOWER_POLL_INTERVAL=3600
labels:
- com.centurylinklabs.watchtower.monitor-only=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
mail:
image: juanluisbaptiste/postfix
container_name: mail
restart: unless-stopped
networks:
- mail
environment:
- SMTP_SERVER=smtppro.zoho.com
- SMTP_USERNAME=axp@reilysiegel.com
- SMTP_PASSWORD_FILE=/secret
- SERVER_HOSTNAME=axpdsp.org
- OVERWRITE_FROM=axp@reilysiegel.com
volumes:
- /secrets/smtp:/secret
networks:
proxy:
external: true
name: proxy
mail:
external: true
name: mail
volumes:
homepage:
portainer:
uptime-kuma: