services: headscale-client: image: tailscale/tailscale:latest environment: - TS_AUTHKEY={{ headscale_user_auth_key }} - TS_EXTRA_ARGS=--login-server=https://{{ headscale_host }} --accept-routes --accept-dns --stateful-filtering=false - TS_STATE_DIR=/var/lib/tailscale - TS_USERSPACE=false - TZ={{ timezone }} hostname: headscale-outbound restart: unless-stopped cap_add: - NET_ADMIN - SYS_ADMIN volumes: - ./data:/var/lib/tailscale - /dev/net/tun:/dev/net/tun networks: - headnet proxy: image: nginx:latest depends_on: - headscale-client networks: - proxy - headnet environment: - VIRTUAL_HOST=*.{{ domain }},{{ domain }} - VIRTUAL_PORT=80 - LETSENCRYPT_HOST=*.{{ domain }},{{ domain }} networks: headnet: proxy: external: true