Files
wireguard-ui-multi/model/setting.go
T
sysopsandClaude Sonnet 5 28eb08df41 Add nftables firewall ruleset preview per server (review-only)
New firewall package generates an nftables snippet (INPUT accept for the
listen port, FORWARD rules for the WireGuard interface, optional LAN
forwarding via a new ServerSetting.LanInterface field). Text only -
nothing is applied to the live firewall. Exposed as GET
/servers/:id/firewall-preview and a "Firewall Preview" button in the
All Servers page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 16:52:20 +02:00

34 lines
1.3 KiB
Go

package model
import (
"time"
)
// GlobalSetting model
type GlobalSetting struct {
EndpointAddress string `json:"endpoint_address"`
DNSServers []string `json:"dns_servers"`
MTU int `json:"mtu,string"`
PersistentKeepalive int `json:"persistent_keepalive,string"`
FirewallMark string `json:"firewall_mark"`
Table string `json:"table"`
ConfigFilePath string `json:"config_file_path"`
UpdatedAt time.Time `json:"updated_at"`
}
// ServerSetting model holds the per-server-interface subset of settings
// that used to live in the single global GlobalSetting. Introduced for the
// multi-server extension; not yet wired into store/handler layers.
type ServerSetting struct {
EndpointAddress string `json:"endpoint_address"`
FirewallMark string `json:"firewall_mark"`
Table string `json:"table"`
ConfigFilePath string `json:"config_file_path"`
// LanInterface is optional: the local interface (e.g. "eth0", "br-lan")
// this server's WireGuard traffic should be allowed to forward to/from.
// Only used to generate the nftables ruleset preview; left empty means
// the preview only covers the WireGuard interface itself.
LanInterface string `json:"lan_interface,omitempty"`
UpdatedAt time.Time `json:"updated_at"`
}