0
0
mirror of https://github.com/vx3r/wg-gen-web.git synced 2024-11-04 17:31:17 +00:00
Simple Web based configuration generator for WireGuard
Go to file
2020-01-30 16:12:26 +09:00
api go fmt / badges 2020-01-30 16:12:26 +09:00
model go fmt / badges 2020-01-30 16:12:26 +09:00
repository go fmt / badges 2020-01-30 16:12:26 +09:00
ui Initial commit 2020-01-30 15:45:49 +09:00
util go fmt / badges 2020-01-30 16:12:26 +09:00
.env Initial commit 2020-01-30 15:45:49 +09:00
.gitignore Initial commit 2020-01-30 15:45:49 +09:00
.gitlab-ci.yml Initial commit 2020-01-30 15:45:49 +09:00
Dockerfile Initial commit 2020-01-30 15:45:49 +09:00
go.mod go fmt / badges 2020-01-30 16:12:26 +09:00
go.sum go fmt / badges 2020-01-30 16:12:26 +09:00
LICENSE-WTFPL Initial commit 2020-01-30 15:45:49 +09:00
main.go Initial commit 2020-01-30 15:45:49 +09:00
README.md go fmt / badges 2020-01-30 16:12:26 +09:00
Wg-Gen-Web.png Initial commit 2020-01-30 15:45:49 +09:00

Wg Gen Web

Simple Web based configuration generator for WireGuard.


Go Report Card Gitlab CI / CD

Whay another one ?

All WireGuard UI implementation are trying to manage the WireGuard by applying configurations or creation network rules. This implementation only generate configuration and its up to you to create network rules and apply configuration to WireGuard. For example by monituring generated directory with inotifywait.

The goal is to run Wg Gen Web in a container and WireGuard on host system.

Features

  • Self-serve and web based
  • Automatically select IP from networks chosen for client
  • QR-Code for convenient mobile client configuration
  • Enable / Disable client
  • Generation of wg0.conf after any modification
  • Dockerized
  • Pretty cool look Screenshot

Running

The easiest way to run wireguard-ui is using the container image

docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

docker compose snipped

version: '3.6'
services:
  wg-gen-web:
    image: vx3r/wg-gen-web:latest
    container_name: wg-gen-web
    restart: unless-stopped
    expose:
      - "8080/tcp"
    environment:
      - WG_CONF_DIR=/data
      - WG_INTERFACE_NAME=wg0.conf
    volumes:
      - /mnt/raid-lv-data/docker-persistent-data/wg-gen-web:/data

What is out of scope

  • Generation or application of any iptables or nftables rules
  • Application of configuration to WireGuard

TODO

  • Full setup example with inotifywait and systemd
  • Multi-user support behind Authelia (suggestions / thoughts are welcome)
  • Send configs by email to client

License