61 lines
2.1 KiB
YAML
61 lines
2.1 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
wireguard:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: wg-easy-iptables-nft:latest
|
|
container_name: wireguard
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
environment:
|
|
- WG_HOST=vpn.lazyworkhorse.net
|
|
- PASSWORD_HASH=${WG_PASSWORD_HASH}
|
|
- WG_PORT=51820
|
|
- WG_DEFAULT_ADDRESS=10.8.0.x
|
|
- WG_DEFAULT_DNS=1.1.1.1,8.8.8.8
|
|
- WG_ALLOWED_IPS=0.0.0.0/0, ::/0
|
|
- WG_PERSISTENT_KEEPALIVE=25
|
|
- UI_TRAFFIC_STATS=true
|
|
- UI_CHART_TYPE=0
|
|
ports:
|
|
- "51820:51820/udp"
|
|
volumes:
|
|
- /mnt/HoardingCow_docker_data/WireGuard:/etc/wireguard:rw
|
|
sysctls:
|
|
- net.ipv4.conf.all.src_valid_mark=1
|
|
- net.ipv4.ip_forward=1
|
|
restart: unless-stopped
|
|
networks:
|
|
- vpn_net
|
|
labels:
|
|
- "traefik.enable=true"
|
|
|
|
# HTTP → HTTPS redirect
|
|
- "traefik.http.routers.wireguard-http.rule=Host(vpn.lazyworkhorse.net)"
|
|
- "traefik.http.routers.wireguard-http.entrypoints=web"
|
|
- "traefik.http.routers.wireguard-http.middlewares=redirect-to-https"
|
|
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
|
|
|
# HTTPS router — protégé par Authelia
|
|
- "traefik.http.routers.wireguard-https.rule=Host(vpn.lazyworkhorse.net)"
|
|
- "traefik.http.routers.wireguard-https.entrypoints=websecure"
|
|
- "traefik.http.routers.wireguard-https.tls=true"
|
|
- "traefik.http.routers.wireguard-https.tls.certresolver=njalla"
|
|
- "traefik.http.routers.wireguard-https.middlewares=wireguard-auth"
|
|
|
|
# Authelia forwardAuth
|
|
- "traefik.http.middlewares.wireguard-auth.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.lazyworkhorse.net/"
|
|
- "traefik.http.middlewares.wireguard-auth.forwardauth.trustforwardheader=true"
|
|
- "traefik.http.middlewares.wireguard-auth.forwardauth.authresponseheaders=X-Forwarded-User,X-Forwarded-Groups"
|
|
|
|
# Port interne du web UI wg-easy
|
|
- "traefik.http.services.wireguard.loadbalancer.server.port=51821"
|
|
|
|
networks:
|
|
vpn_net:
|
|
driver: bridge
|
|
name: vpn_net
|