2022-07-28 11:00:05 -04:00
|
|
|
package conf
|
2022-06-01 13:35:41 -04:00
|
|
|
|
|
|
|
type CertConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
CertMode string `yaml:"CertMode"` // none, file, http, dns
|
|
|
|
RejectUnknownSni bool `yaml:"RejectUnknownSni"`
|
|
|
|
CertDomain string `yaml:"CertDomain"`
|
|
|
|
CertFile string `yaml:"CertFile"`
|
|
|
|
KeyFile string `yaml:"KeyFile"`
|
|
|
|
Provider string `yaml:"Provider"` // alidns, cloudflare, gandi, godaddy....
|
|
|
|
Email string `yaml:"Email"`
|
|
|
|
DNSEnv map[string]string `yaml:"DNSEnv"`
|
2022-06-01 13:35:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
type FallBackConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
SNI string `yaml:"SNI"`
|
|
|
|
Alpn string `yaml:"Alpn"`
|
|
|
|
Path string `yaml:"Path"`
|
|
|
|
Dest string `yaml:"Dest"`
|
|
|
|
ProxyProtocolVer uint64 `yaml:"ProxyProtocolVer"`
|
2022-06-01 13:35:41 -04:00
|
|
|
}
|
2022-07-28 11:00:05 -04:00
|
|
|
|
2022-10-20 23:07:04 -04:00
|
|
|
type RecorderConfig struct {
|
|
|
|
Url string `yaml:"Url"`
|
|
|
|
Token string `yaml:"Token"`
|
|
|
|
Timeout int `yaml:"Timeout"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type RedisConfig struct {
|
|
|
|
Address string `yaml:"Address"`
|
|
|
|
Password string `yaml:"Password"`
|
|
|
|
Db int `yaml:"Db"`
|
2022-11-17 21:18:26 -05:00
|
|
|
Expiry int `json:"Expiry"`
|
2022-10-20 23:07:04 -04:00
|
|
|
}
|
|
|
|
|
2022-07-28 11:00:05 -04:00
|
|
|
type IpReportConfig struct {
|
2022-10-20 23:07:04 -04:00
|
|
|
Periodic int `yaml:"Periodic"`
|
|
|
|
Type string `yaml:"Type"`
|
|
|
|
RecorderConfig *RecorderConfig `yaml:"RecorderConfig"`
|
|
|
|
RedisConfig *RedisConfig `yaml:"RedisConfig"`
|
|
|
|
EnableIpSync bool `yaml:"EnableIpSync"`
|
2022-07-28 11:00:05 -04:00
|
|
|
}
|
|
|
|
|
2022-09-07 11:02:02 -04:00
|
|
|
type DynamicSpeedLimitConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
Periodic int `yaml:"Periodic"`
|
|
|
|
Traffic int64 `yaml:"Traffic"`
|
|
|
|
SpeedLimit uint64 `yaml:"SpeedLimit"`
|
|
|
|
ExpireTime int `yaml:"ExpireTime"`
|
2022-09-07 11:02:02 -04:00
|
|
|
}
|
|
|
|
|
2022-07-28 11:00:05 -04:00
|
|
|
type ControllerConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
ListenIP string `yaml:"ListenIP"`
|
|
|
|
SendIP string `yaml:"SendIP"`
|
|
|
|
UpdatePeriodic int `yaml:"UpdatePeriodic"`
|
|
|
|
EnableDNS bool `yaml:"EnableDNS"`
|
|
|
|
DNSType string `yaml:"DNSType"`
|
|
|
|
DisableUploadTraffic bool `yaml:"DisableUploadTraffic"`
|
|
|
|
DisableGetRule bool `yaml:"DisableGetRule"`
|
|
|
|
EnableProxyProtocol bool `yaml:"EnableProxyProtocol"`
|
|
|
|
EnableFallback bool `yaml:"EnableFallback"`
|
|
|
|
DisableIVCheck bool `yaml:"DisableIVCheck"`
|
|
|
|
DisableSniffing bool `yaml:"DisableSniffing"`
|
|
|
|
FallBackConfigs []*FallBackConfig `yaml:"FallBackConfigs"`
|
|
|
|
EnableIpRecorder bool `yaml:"EnableIpRecorder"`
|
|
|
|
IpRecorderConfig *IpReportConfig `yaml:"IpRecorderConfig"`
|
|
|
|
EnableDynamicSpeedLimit bool `yaml:"EnableDynamicSpeedLimit"`
|
|
|
|
DynamicSpeedLimitConfig *DynamicSpeedLimitConfig `yaml:"DynamicSpeedLimitConfig"`
|
|
|
|
CertConfig *CertConfig `yaml:"CertConfig"`
|
2022-07-28 11:00:05 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
type ApiConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
APIHost string `yaml:"ApiHost"`
|
|
|
|
NodeID int `yaml:"NodeID"`
|
|
|
|
Key string `yaml:"ApiKey"`
|
|
|
|
NodeType string `yaml:"NodeType"`
|
|
|
|
EnableVless bool `yaml:"EnableVless"`
|
|
|
|
EnableXTLS bool `yaml:"EnableXTLS"`
|
|
|
|
//EnableSS2022 bool `yaml:"EnableSS2022"`
|
|
|
|
Timeout int `yaml:"Timeout"`
|
|
|
|
SpeedLimit float64 `yaml:"SpeedLimit"`
|
|
|
|
DeviceLimit int `yaml:"DeviceLimit"`
|
|
|
|
RuleListPath string `yaml:"RuleListPath"`
|
|
|
|
DisableCustomConfig bool `yaml:"DisableCustomConfig"`
|
2022-07-28 11:00:05 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
type NodeConfig struct {
|
2022-09-12 23:08:20 -04:00
|
|
|
ApiConfig *ApiConfig `yaml:"ApiConfig"`
|
|
|
|
ControllerConfig *ControllerConfig `yaml:"ControllerConfig"`
|
2022-07-28 11:00:05 -04:00
|
|
|
}
|