caddydash/gen/struct.go
2025-06-30 15:31:14 +08:00

109 lines
3.3 KiB
Go

package gen
func HeadersMapToHeadersUp(headers map[string][]string) []string {
var headersUp []string
for key, values := range headers {
for _, value := range values {
headersUp = append(headersUp, key+" "+value)
}
}
return headersUp
}
type CaddyUniConfig struct {
DomainConfig CaddyUniDomainConfig `json:"domain_config"`
Mode string `json:"mode"`
Upstream CaddyUniUpstreamConfig `json:"upstream_config"`
FileServer CaddyUniFileServerConfig `json:"file_server_config"`
Headers map[string][]string `json:"headers"`
Log CaddyUniLogConfig `json:"log_config"`
ErrorPage CaddyUniErrorPageConfig `json:"error_page_config"`
Encode CaddyUniEncodeConfig `json:"encode_config"`
}
type CaddyUniDomainConfig struct {
Domain string `json:"domain"`
MutiDomains bool `json:"muti_domains"`
Domains []string `json:"domains"`
}
type CaddyUniUpstreamConfig struct {
EnableUpStream bool `json:"enable_upstream"`
UpStream string `json:"upstream"`
MutiUpStreams bool `json:"muti_upstream"`
UpStreams []string `json:"upstream_servers"`
UpStreamHeaders map[string][]string `json:"upstream_headers"`
}
type CaddyUniFileServerConfig struct {
EnableFileServer bool `json:"enable_file_server"`
FileDirPath string `json:"file_dir_path"`
EnableBrowser bool `json:"enable_browser"`
}
type CaddyUniLogConfig struct {
EnableLog bool `json:"enable_log"`
LogDomain string `json:"log_domain"`
}
type CaddyUniErrorPageConfig struct {
EnableErrorPage bool `json:"enable_error_page"`
}
type CaddyUniEncodeConfig struct {
EnableEncode bool `json:"enable_encode"`
}
type CaddyGlobalConfig struct {
Debug bool `json:"debug"`
PortsConfig CaddyGlobalPortsConfig `json:"ports_config"`
Metrics bool `json:"metrics"`
LogConfig CaddyGlobalLogConfig `json:"log_config"`
TLSConfig CaddyGlobalTLSConfig `json:"tls_config"`
TLSSnippetConfig CaddyGlobalSnippetTLSConfig `json:"tls_snippet_config"`
}
type CaddyGlobalPortsConfig struct {
AdminPort string `json:"admin_port"`
HTTPPort uint16 `json:"http_port"`
HTTPSPort uint16 `json:"https_port"`
}
type CaddyGlobalLogConfig struct {
Level string `json:"level"`
// 日志滚动配置
RotateSize string `json:"rotate_size"`
RotateKeep string `json:"rotate_keep"`
RotateKeepForTime string `json:"rotate_keep_for_time"`
}
// 维护一个日志等级列表
// Possible levels: DEBUG, INFO, WARN, ERROR, PANIC, and FATAL
var LogLevelList = map[string]struct{}{
"DEBUG": {},
"INFO": {},
"WARN": {},
"ERROR": {},
"PANIC": {},
"FATAL": {},
}
type CaddyGlobalTLSConfig struct {
EnableDNSChallenge bool `json:"enable_dns_challenge"`
Provider string `json:"provider"`
Token string `json:"token"`
ECHOuterSNI string `json:"echouter_sni"`
Email string `json:"email"`
}
type CaddyGlobalSnippetTLSConfig struct {
EnableSiteTLSSnippet bool `json:"enable_site_tls_snippet"`
Email string `json:"email"`
Provider string `json:"provider"`
Token string `json:"token"`
}
// 维护一个提供商列表
var ProviderList = map[string]struct{}{
"cloudflare": {},
}