services: pangolin: extends: file: ${TEMPLATES_PATH} service: default image: docker.io/fosrl/pangolin:v1.16.2 container_name: pangolin volumes: - ./config/pangolin:/app/config network: - ip4net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"] interval: "10s" timeout: "10s" retries: 15 # gerbil: # extends: # file: ${TEMPLATES_PATH} # service: default # image: docker.io/fosrl/gerbil:latest # https://github.com/fosrl/gerbil/releases # container_name: gerbil # depends_on: # pangolin: # condition: service_healthy # command: # - --reachableAt=http://gerbil:3004 # - --generateAndSaveKeyTo=/var/config/key # - --remoteConfig=http://pangolin:3001/api/v1/ # volumes: # - ./config/pangolin:/var/config # cap_add: # - NET_ADMIN # - SYS_MODULE # ports: # - 51820:51820/udp # - 21820:21820/udp # - 443:443 # - 80:80 traefik: extends: file: ${TEMPLATES_PATH} service: default image: docker.io/traefik:v3.6 container_name: traefik network: - ip4net depends_on: pangolin: condition: service_healthy command: - --configFile=/etc/traefik/traefik_config.yml volumes: - ./config/pangolin/traefik:/etc/traefik:ro # Volume to store the Traefik configuration - ./config/pangolin/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates - ./config/pangolin/traefik/logs:/var/log/traefik # Volume to store Traefik logs