services: headscale: image: docker.io/headscale/headscale:stable restart: unless-stopped container_name: headscale read_only: true tmpfs: - /var/run/headscale ports: - "27896:8080" - "3478:3478/udp" volumes: # Please set to the absolute path # of the previously created headscale directory. - /home/twoface/headscale/config:/etc/headscale:ro - /home/twoface/headscale/lib:/var/lib/headscale command: serve healthcheck: test: ["CMD", "headscale", "health"] headscale-ui: image: ghcr.io/gurucomputing/headscale-ui:latest restart: unless-stopped container_name: headscale-ui ports: - "8443:8443" - "8080:8080" caddy: image: caddy:latest restart: unless-stopped container_name: caddy ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config depends_on: - headscale - headscale-ui volumes: caddy_data: caddy_config: