61 lines
4.0 KiB
Go
61 lines
4.0 KiB
Go
package valuesYaml
|
|
|
|
// Addons represents the schema for the 'addons' section.
|
|
type Addons struct {
|
|
Codeserver Codeserver `yaml:"codeserver,omitempty" schema:"additional_attrs:true,type:dict"`
|
|
Netshoot Netshoot `yaml:"netshoot,omitempty" schema:"additional_attrs:true,type:dict"`
|
|
VPN VPN `yaml:"vpn,omitempty" schema:"additional_attrs:true,type:dict"`
|
|
}
|
|
|
|
// Codeserver represents the schema for the 'codeserver' addon.
|
|
type Codeserver struct {
|
|
Enabled bool `yaml:"enabled" schema:"type:boolean,default:false,show_subquestions_if:true"`
|
|
Service ServiceConfiguration `yaml:"service,omitempty" schema:"additional_attrs:true,type:dict"`
|
|
Ingress IngressConfiguration `yaml:"ingress,omitempty" schema:"additional_attrs:true,type:dict"`
|
|
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
|
|
}
|
|
|
|
// Netshoot represents the schema for the 'netshoot' addon.
|
|
type Netshoot struct {
|
|
Enabled bool `yaml:"enabled" schema:"type:boolean,default:false,show_subquestions_if:true"`
|
|
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[['type','!=','disabled']]"`
|
|
}
|
|
|
|
// VPN represents the schema for the 'vpn' addon.
|
|
type VPN struct {
|
|
Type string `yaml:"type,omitempty" schema:"type:string,default:disabled,enum:,disabled,gluetun,tailscale,openvpn,wireguard"`
|
|
OpenVPN OpenVPNSettings `yaml:"openvpn,omitempty" schema:"additional_attrs:true,type:dict,show_if:[[type,=,openvpn]]"`
|
|
Tailscale TailscaleSettings `yaml:"tailscale,omitempty" schema:"additional_attrs:true,type:dict,show_if:[[type,=,tailscale]]"`
|
|
KillSwitch bool `yaml:"killSwitch" schema:"type:boolean,show_if:[[type,!=,disabled]],default:true"`
|
|
ExcludedNetworksIPv4 []ExcludedNetwork `yaml:"excludedNetworks_IPv4,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
|
|
ExcludedNetworksIPv6 []ExcludedNetwork `yaml:"excludedNetworks_IPv6,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[[type,!=,disabled]]"`
|
|
ConfigFile string `yaml:"configFile,omitempty" schema:"type:string,show_if:[[type,!=,disabled]]"`
|
|
EnvList []EnvList `yaml:"envList,omitempty" schema:"type:list,default:[],items:type:dict,show_if:[['type','!=','disabled']]"`
|
|
}
|
|
|
|
// OpenVPNSettings represents the schema for OpenVPN settings.
|
|
type OpenVPNSettings struct {
|
|
Username string `yaml:"username,omitempty" schema:"type:string,default:''"`
|
|
Password string `yaml:"password,omitempty" schema:"type:string,show_if:[[username,!=,]],default:''"`
|
|
}
|
|
|
|
// TailscaleSettings represents the schema for Tailscale settings.
|
|
type TailscaleSettings struct {
|
|
AuthKey string `yaml:"authkey,omitempty" schema:"type:string,private:true,default:''"`
|
|
AuthOnce bool `yaml:"auth_once,omitempty" schema:"type:boolean,default:true"`
|
|
AcceptDNS bool `yaml:"accept_dns,omitempty" schema:"type:boolean,default:false"`
|
|
Userspace bool `yaml:"userspace,omitempty" schema:"type:boolean,default:false"`
|
|
Routes string `yaml:"routes,omitempty" schema:"type:string,default:''"`
|
|
DestIP string `yaml:"dest_ip,omitempty" schema:"type:string,default:''"`
|
|
Sock5Server string `yaml:"sock5_server,omitempty" schema:"type:string,default:''"`
|
|
OutboundHTTPProxyListen string `yaml:"outbound_http_proxy_listen,omitempty" schema:"type:string,default:''"`
|
|
ExtraArgs string `yaml:"extra_args,omitempty" schema:"type:string,default:''"`
|
|
DaemonExtraArgs string `yaml:"daemon_extra_args,omitempty" schema:"type:string,default:''"`
|
|
}
|
|
|
|
// ExcludedNetwork represents the schema for an excluded network in the killswitch.
|
|
type ExcludedNetwork struct {
|
|
NetworkV4 string `yaml:"networkv4,omitempty" schema:"type:string,required:true"`
|
|
NetworkV6 string `yaml:"networkv6,omitempty" schema:"type:string,required:true"`
|
|
}
|