Files
esh-pfi-infrastructure/stacks/wgtunnel/compose.yaml
T
vh 398b58a161 stacks(wgtunnel): mirror deployed wstunnel server stack from ana-docker
wgtunnel deployed + accepted end-to-end (tunnel-dev): erebe/wstunnel v10.6.2 behind
traefik on ana-docker, Host boring.phasefinal.com (Mode A anaprod cert), --restrict-to
ana-wg:31337 (not an open relay). Mirror per fleet convention; full project in vh/wgtunnel.
2026-08-12 10:01:46 -07:00

39 lines
1.4 KiB
YAML

version: "3.8"
services:
wstunnel:
image: ghcr.io/erebe/wstunnel:${WGTUNNEL_IMAGE_TAG}
restart: unless-stopped
# The image ENTRYPOINT is dumb-init; we override the command with the full
# binary path so dumb-init execs it. `--restrict-to` is not in the image's
# default CMD, so a full override is required.
command:
- /home/app/wstunnel
- server
- --restrict-to
- ${WG_TARGET}
- ws://0.0.0.0:${WSTUNNEL_PORT}
networks:
- traefik-net
healthcheck:
# The image is dash + grep/sed/cat only — no nc/wget/curl and dash has no
# /dev/tcp (contract R5.4 "no usable probe binary" case). Verify the listener
# via /proc/net/tcp instead: port 8080 = 0x1F90 (update if WSTUNNEL_PORT changes).
test: ["CMD-SHELL", "grep -qi ':1F90 ' /proc/net/tcp /proc/net/tcp6 2>/dev/null || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
labels:
- traefik.enable=true
- traefik.docker.network=traefik-net
- "traefik.http.routers.wgtunnel.rule=Host(`${TUNNEL_HOST}`)"
- traefik.http.routers.wgtunnel.entrypoints=websecure
- traefik.http.routers.wgtunnel.tls=true
- traefik.http.routers.wgtunnel.tls.certresolver=anaprod
- traefik.http.services.wgtunnel.loadbalancer.server.port=${WSTUNNEL_PORT}
networks:
traefik-net:
external: true