From bd4a3312f4a58306544fdd74b8a0e285a5a3869f Mon Sep 17 00:00:00 2001 From: andycandy-de <8217449+andycandy-de@users.noreply.github.com> Date: Sun, 22 Jan 2023 21:47:46 +0100 Subject: [PATCH] Added Table to global settings Added Table to UI global settings view Added Table to wg conf template Added Table to settings model Added Table with default value `auto` to config util Updated README --- README.md | 1 + model/setting.go | 1 + store/jsondb/jsondb.go | 1 + templates/global_settings.html | 16 ++++++++++++++-- templates/wg.conf | 1 + util/config.go | 2 ++ 6 files changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 598a994..7ec9ea9 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Note: | `WGUI_MTU` | The default MTU used in global settings | `1450` | | `WGUI_PERSISTENT_KEEPALIVE` | The default persistent keepalive for WireGuard in global settings | `15` | | `WGUI_FORWARD_MARK` | The default WireGuard forward mark | `0xca6c` | +| `WGUI_TABLE` | The default WireGuard table value settings | `auto` | | `WGUI_CONFIG_FILE_PATH` | The default WireGuard config file path used in global settings | `/etc/wireguard/wg0.conf` | | `WG_CONF_TEMPLATE` | The custom `wg.conf` config file template. Please refer to our [default template](https://github.com/ngoduykhanh/wireguard-ui/blob/master/templates/wg.conf) | N/A | | `EMAIL_FROM_ADDRESS` | The sender email address | N/A | diff --git a/model/setting.go b/model/setting.go index e871591..df3cda2 100644 --- a/model/setting.go +++ b/model/setting.go @@ -11,6 +11,7 @@ type GlobalSetting struct { MTU int `json:"mtu,string"` PersistentKeepalive int `json:"persistent_keepalive,string"` ForwardMark string `json:"forward_mark"` + Table string `json:"table"` ConfigFilePath string `json:"config_file_path"` UpdatedAt time.Time `json:"updated_at"` } diff --git a/store/jsondb/jsondb.go b/store/jsondb/jsondb.go index f39a452..d5ef629 100644 --- a/store/jsondb/jsondb.go +++ b/store/jsondb/jsondb.go @@ -97,6 +97,7 @@ func (o *JsonDB) Init() error { globalSetting.MTU = util.LookupEnvOrInt(util.MTUEnvVar, util.DefaultMTU) globalSetting.PersistentKeepalive = util.LookupEnvOrInt(util.PersistentKeepaliveEnvVar, util.DefaultPersistentKeepalive) globalSetting.ForwardMark = util.LookupEnvOrString(util.ForwardMarkEnvVar, util.DefaultForwardMark) + globalSetting.Table = util.LookupEnvOrString(util.TableEnvVar, util.DefaultTable) globalSetting.ConfigFilePath = util.LookupEnvOrString(util.ConfigFilePathEnvVar, util.DefaultConfigFilePath) globalSetting.UpdatedAt = time.Now().UTC() o.conn.Write("server", "global_settings", globalSetting) diff --git a/templates/global_settings.html b/templates/global_settings.html index e013349..50c1d87 100644 --- a/templates/global_settings.html +++ b/templates/global_settings.html @@ -61,6 +61,12 @@ Global Settings name="forward_mark" placeholder="Forward Mark" value="{{ .globalSettings.ForwardMark }}"> +
+ + +
Leave blank to omit this setting in the Client config.
5. Forward Mark
Set an fwmark on all packets going out of WireGuard's UDP socket. Default value: 0xca6c
-
6. Wireguard Config File Path
+
6. Table
+
Value for the Table setting in the wg conf file. Default value: auto
+
7. Wireguard Config File Path
The path of your Wireguard server config file. Please make sure the parent directory exists and is writable.
@@ -150,8 +158,9 @@ Global Settings const mtu = $("#mtu").val(); const persistent_keepalive = $("#persistent_keepalive").val(); const forward_mark = $("#forward_mark").val(); + const table = $("#table").val(); const config_file_path = $("#config_file_path").val(); - const data = {"endpoint_address": endpoint_address, "dns_servers": dns_servers, "mtu": mtu, "persistent_keepalive": persistent_keepalive, "forward_mark": forward_mark, "config_file_path": config_file_path}; + const data = {"endpoint_address": endpoint_address, "dns_servers": dns_servers, "mtu": mtu, "persistent_keepalive": persistent_keepalive, "forward_mark": forward_mark, "table": table, "config_file_path": config_file_path}; $.ajax({ cache: false, @@ -224,6 +233,9 @@ Global Settings }, forward_mark: { required: false + }, + table: { + required: false } }, messages: { diff --git a/templates/wg.conf b/templates/wg.conf index 745a92f..81893a8 100644 --- a/templates/wg.conf +++ b/templates/wg.conf @@ -10,6 +10,7 @@ PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }} {{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}} PostUp = {{ .serverConfig.Interface.PostUp }} PostDown = {{ .serverConfig.Interface.PostDown }} +Table = {{ .globalSettings.Table }} {{range .clientDataList}}{{if eq .Client.Enabled true}} # ID: {{ .Client.ID }} diff --git a/util/config.go b/util/config.go index 63044ca..7fe1505 100644 --- a/util/config.go +++ b/util/config.go @@ -30,6 +30,7 @@ const ( DefaultMTU = 1450 DefaultPersistentKeepalive = 15 DefaultForwardMark = "0xca6c" + DefaultTable = "auto" DefaultConfigFilePath = "/etc/wireguard/wg0.conf" UsernameEnvVar = "WGUI_USERNAME" PasswordEnvVar = "WGUI_PASSWORD" @@ -39,6 +40,7 @@ const ( MTUEnvVar = "WGUI_MTU" PersistentKeepaliveEnvVar = "WGUI_PERSISTENT_KEEPALIVE" ForwardMarkEnvVar = "WGUI_FORWARD_MARK" + TableEnvVar = "WGUI_TABLE" ConfigFilePathEnvVar = "WGUI_CONFIG_FILE_PATH" ServerAddressesEnvVar = "WGUI_SERVER_INTERFACE_ADDRESSES" ServerListenPortEnvVar = "WGUI_SERVER_LISTEN_PORT"