version: "3" networks: traefik: driver: bridge name: traefik grafana: driver: bridge name: grafana volumes: prometheus_data: {} services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped networks: - traefik ports: - "80:80" - "8080:8080" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik/traefik.toml:/etc/traefik/traefik.toml - ./traefik/traefik-dynamic.toml:/etc/traefik/dynamic/traefik-dynamic.toml - ./traefik/acme.json:/etc/acme.json code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server restart: unless-stopped networks: - traefik volumes: - /pwspool/software/code-server/config:/config environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - HASHED_PASSWORD=$$argon2i$$v=19$$m=4096,t=3,p=1$$o70PqzdDrUvzijIN+Nd+uw$$8wsBelBomYLsaKFelBAf+v8KqpS7TMsfFvmouarbehg - SUDO_PASSWORD_HASH=$$argon2i$$v=19$$m=4096,t=3,p=1$$o70PqzdDrUvzijIN+Nd+uw$$8wsBelBomYLsaKFelBAf+v8KqpS7TMsfFvmouarbehg - PROXY_DOMAIN=code.whitney.rip - DEFAULT_WORKSPACE=/config/workspace labels: - traefik.http.routers.code.rule=Host(`code.whitney.rip`) - traefik.http.routers.code.tls=true - traefik.http.routers.code.tls.certresolver=lets-encrypt - traefik.http.services.code.loadbalancer.server.port=8443 grafana: image: grafana/grafana container_name: grafana restart: unless-stopped depends_on: - node_exporter - prometheus networks: - grafana - traefik user: "1003" volumes: - ./grafana/grafana.ini:/etc/grafana/grafana.ini - /pwspool/software/grafana:/var/lib/grafana labels: - traefik.http.routers.grafana.rule=Host(`grafana.whitney.rip`) - traefik.http.routers.grafana.tls=true - traefik.http.routers.grafana.tls.certresolver=lets-encrypt - traefik.http.services.grafana.loadbalancer.server.port=3000 node_exporter: image: quay.io/prometheus/node-exporter:latest container_name: node_exporter restart: unless-stopped depends_on: - prometheus networks: - grafana pid: host user: "1003:1005" command: - "--path.rootfs=/host" volumes: - "/:/host:ro,rslave" labels: - traefik.enable=false prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped networks: - grafana volumes: - "./grafana/prometheus.yml:/etc/prometheus.yml" - prometheus_data:/prometheus command: - "--config.file=/etc/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--web.console.libraries=/usr/share/prometheus/console_libraries" - "--web.console.templates=/usr/share/prometheus/consoles" labels: - traefik.enable=false