Files
wireguard-admin/docker-compose.yml
T
lofyerandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 1b227c2470 Multi-interface management, topology view, performance tuning, precompiled CSS
- Interface model with per-interface subnet/port/keys; import/adopt existing wg-quick configs (key-less imported peers, optional key rotation), cascade delete
- Split wireguard.py into a package (keys via cryptography X25519, status, addressing, conf parse/render, sync, host tuning)
- ECharts horizontal topology view (interface -> peers -> site subnets)
- Advanced options: MTU, MSS clamping, FwMark/Table, custom PostUp/PostDown, per-peer keepalive override
- Runtime settings (sample interval/retention, online threshold, UI refresh) with traffic sample pruning; host tuning (UDP buffers, backlog, GRO forwarding)
- Precompiled Tailwind CSS replacing Play CDN runtime (fixes FOUC); stable table layout and diffed polling renders
- Host network mode in compose; NAT/isolation iptables moved into app sync

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-07-05 14:01:44 +08:00

30 lines
1.1 KiB
YAML

services:
wireguard-admin:
build: .
container_name: wireguard-admin
restart: unless-stopped
cap_add:
- NET_ADMIN
# Host networking: new interfaces and their UDP ports work without
# editing port mappings. The admin UI listens on host port 8000.
# Requires net.ipv4.ip_forward=1 on the host (sysctls cannot be set
# per-container in host network mode); entrypoint.sh enables it.
network_mode: host
devices:
- /dev/net/tun:/dev/net/tun
environment:
WG_INTERFACE: ${WG_INTERFACE:-wg1}
WG_HOST: ${WG_HOST:?set WG_HOST to your public IP or domain}
WG_PORT: ${WG_PORT:-51821}
WG_SUBNET: ${WG_SUBNET:-10.8.0.0/24}
WG_DNS: ${WG_DNS:-8.8.8.8}
WG_ALLOWED_IPS: ${WG_ALLOWED_IPS:-0.0.0.0/0, ::/0}
WG_RELAY_SUBNETS: ${WG_RELAY_SUBNETS:-}
WG_PEER_ISOLATION: ${WG_PEER_ISOLATION:-false}
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD in .env}
SECRET_KEY: ${SECRET_KEY:?set SECRET_KEY in .env}
volumes:
- ./volumes/admin-data:/opt/wireguard-admin/data
- ./volumes/config:/etc/wireguard