diff --git a/blueprints/wg-easy/docker-compose.yml b/blueprints/wg-easy/docker-compose.yml new file mode 100644 index 00000000..b5d48fe1 --- /dev/null +++ b/blueprints/wg-easy/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3.8" +services: + wg-easy: + image: ghcr.io/wg-easy/wg-easy:15 + volumes: + - ../files/etc_wireguard:/etc/wireguard + - /lib/modules:/lib/modules:ro + ports: + - 51820/udp + - 51821 + restart: unless-stopped + cap_add: + - NET_ADMIN + - SYS_MODULE + sysctls: + - net.ipv4.ip_forward=1 + - net.ipv4.conf.all.src_valid_mark=1 + - net.ipv6.conf.all.disable_ipv6=0 + - net.ipv6.conf.all.forwarding=1 + - net.ipv6.conf.default.forwarding=1 diff --git a/blueprints/wg-easy/image.png b/blueprints/wg-easy/image.png new file mode 100644 index 00000000..e3d5319e Binary files /dev/null and b/blueprints/wg-easy/image.png differ diff --git a/blueprints/wg-easy/template.toml b/blueprints/wg-easy/template.toml new file mode 100644 index 00000000..8b064ab7 --- /dev/null +++ b/blueprints/wg-easy/template.toml @@ -0,0 +1,25 @@ +[variables] +main_domain = "${domain}" +wg_password = "${password:32}" + +[config] +[[config.domains]] +serviceName = "wg-easy" # Matches the service name in docker-compose.yml +port = 51821 +host = "${main_domain}" + +[config.env] +# WG_HOST is required for the WG-Easy web interface to know the public hostname +WG_HOST = "${main_domain}" +# PASSWORD is used to secure the WG-Easy web interface +PASSWORD = "${wg_password}" +# Optional: PORT is set to match the exposed port +PORT = "51821" +# Optional: HOST ensures the service listens on all interfaces +HOST = "${main_domain}" +# Optional: INSECURE set to false for security +INSECURE = "false" + +[[config.mounts]] +filePath = "/etc/wireguard" +content = "" diff --git a/meta.json b/meta.json index 63fc8129..85dd94ec 100644 --- a/meta.json +++ b/meta.json @@ -3138,6 +3138,20 @@ }, "tags": ["analytics"] }, + { + + "id": "wg-easy", + "name": "WG-Easy", + "version": "15", + "description": "WG-Easy is a simple and user-friendly WireGuard VPN server with a web interface for easy management.", + "logo": "image.png", + "links": { + "github": "https://github.com/wg-easy/wg-easy", + "website": "https://wg-easy.github.io/", + "docs": "https://github.com/wg-easy/wg-easy/wiki" + }, + "tags": ["vpn", "wireguard", "networking"] + }, { "id": "open_notebook", "name": "Open Notebook",