config

package
v0.6.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProviderAliyun 是阿里云 provider 的配置名称。
	ProviderAliyun = "aliyun"
	// ProviderTencentCloud 是腾讯云 provider 的配置名称。
	ProviderTencentCloud = "cloudTencent"
	// ProviderQiniu 是七牛云 provider 的配置名称。
	ProviderQiniu = "qiniu"
)

Variables

View Source
var (
	Config   *Configuration
	URL      = URLProd
	URLProd  = "https://anssl.cn/deploy"
	URLLocal = "http://localhost:9000/deploy"
)
View Source
var Version = "dev"

Version is injected by release builds with:

go build -ldflags="-X github.com/https-cert/deploy/internal/config.Version=vX.Y.Z"

Development builds keep "dev" to avoid shipping stale hard-coded versions.

Functions

func GetSSHKnownHostsFile added in v0.6.5

func GetSSHKnownHostsFile() string

GetSSHKnownHostsFile 返回与当前配置文件同目录的 SSH 主机密钥记录文件。

func Init

func Init(configFile string) error

Init 初始化配置

func IsDeploymentResourceBusiness added in v0.6.4

func IsDeploymentResourceBusiness(business deployPB.ExecuteBusinesType) bool

IsDeploymentResourceBusiness 判断业务是否需要解析一个精确部署资源。

func IsSSHConfigured added in v0.6.5

func IsSSHConfigured(sshConfig *SSHConfig) bool

IsSSHConfigured 判断除默认端口外是否已经填写任一 SSH 字段。

func PrepareRuntimeDirs added in v0.6.0

func PrepareRuntimeDirs() error

PrepareRuntimeDirs 创建启动和部署需要的本地目录

Types

type ALBConfig added in v0.6.5

type ALBConfig struct {
	Label          string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain         string `yaml:"domain"`          // Domain 监听器默认或 SNI 扩展绑定的精确域名
	Region         string `yaml:"region"`          // Region ALB 实例所在地域 ID
	LoadBalancerID string `yaml:"loadBalancerId"`  // LoadBalancerID ALB 实例 ID
	ListenerID     string `yaml:"listenerId"`      // ListenerID ALB HTTPS 或 QUIC 监听器 ID
}

ALBConfig 描述阿里云 ALB HTTPS 或 QUIC 监听器部署资源。

type CDNConfig added in v0.6.4

type CDNConfig struct {
	Label  string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain string `yaml:"domain"`          // Domain CDN 绑定的精确域名
}

CDNConfig 描述一个 CDN 精确域名部署资源。

type CLBConfig added in v0.6.5

type CLBConfig struct {
	Label          string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain         string `yaml:"domain"`          // Domain 监听器默认或 SNI 扩展绑定的精确域名
	Region         string `yaml:"region"`          // Region CLB 实例所在地域 ID
	LoadBalancerID string `yaml:"loadBalancerId"`  // LoadBalancerID CLB 实例 ID
	ListenerPort   int    `yaml:"listenerPort"`    // ListenerPort 阿里云 CLB HTTPS 监听端口
	ListenerID     string `yaml:"listenerId"`      // ListenerID 腾讯云 CLB 监听器 ID
}

CLBConfig 描述阿里云或腾讯云 CLB 监听器部署资源;字段按 provider 名称使用。

type COSConfig added in v0.6.4

type COSConfig struct {
	Label  string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain string `yaml:"domain"`          // Domain COS Bucket 绑定的精确自定义域名
	Region string `yaml:"region"`          // Region COS Bucket 所在地域
	Bucket string `yaml:"bucket"`          // Bucket 包含 APPID 的完整 COS Bucket 名称
}

COSConfig 描述一个 COS Bucket 自定义域名部署资源。

type Configuration

type Configuration struct {
	Server   *ServerConfig `yaml:"server"`   // Server 服务端连接和本地 HTTP-01 配置
	SSL      *DeployConfig `yaml:"ssl"`      // SSL 本地部署目标配置
	Update   *UpdateConfig `yaml:"update"`   // Update 自更新配置
	Log      *LogConfig    `yaml:"log"`      // Log 日志轮转配置
	Provider []*Provider   `yaml:"provider"` // Provider 云服务提供商配置
}

Configuration 应用配置结构

func GetConfig

func GetConfig() *Configuration

GetConfig 获取配置

type DCDNConfig added in v0.6.4

type DCDNConfig struct {
	Label  string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain string `yaml:"domain"`          // Domain DCDN 绑定的精确域名
}

DCDNConfig 描述一个 DCDN 精确域名部署资源。

type DeployConfig added in v0.5.0

type DeployConfig struct {
	NginxPath  string          `yaml:"nginxPath"`  // NginxPath 是 Nginx SSL 证书目录
	ApachePath string          `yaml:"apachePath"` // ApachePath 是 Apache SSL 证书目录
	RustFSPath string          `yaml:"rustFSPath"` // RustFSPath 兼容旧版 RustFS 本机目录配置
	RustFS     *RustFSConfig   `yaml:"rustFS"`     // RustFS 是本机或 SSH 远程部署配置
	FeiNiu     *SSHConfig      `yaml:"feiNiu"`     // FeiNiu 是可选的 SSH 远程配置,空值表示本机部署
	OnePanel   *OnePanelConfig `yaml:"onePanel"`   // OnePanel 是 1Panel API 配置
	SafeLine   *SafeLineConfig `yaml:"safeLine"`   // SafeLine 是雷池 WAF OpenAPI 配置
}

DeployConfig 本地证书部署目标配置

type DeploymentResource added in v0.6.4

type DeploymentResource struct {
	TargetRef      string // TargetRef 客户端根据资源身份自动生成的不透明稳定引用
	Label          string // Label 控制台展示名称
	Domain         string // Domain 资源绑定的精确域名
	Region         string // Region 云资源所在地域
	Endpoint       string // Endpoint OSS API Origin 覆盖值
	Bucket         string // Bucket 对象存储 Bucket 名称
	SiteID         string // SiteID 阿里云 ESA Site ID
	ZoneID         string // ZoneID 腾讯云 EdgeOne Zone ID
	LoadBalancerID string // LoadBalancerID 负载均衡实例 ID
	ListenerPort   int    // ListenerPort 负载均衡监听端口
	ListenerID     string // ListenerID 腾讯云 CLB 或阿里云 ALB/NLB 监听器 ID
}

DeploymentResource 描述从固定业务配置中解析出的精确部署资源。

func GetDeploymentResource added in v0.6.4

func GetDeploymentResource(providerName string, business deployPB.ExecuteBusinesType, targetRef string) (*DeploymentResource, bool)

GetDeploymentResource 按 provider、业务类型和 targetRef 精确查询本地部署资源。

type DeploymentResourceDirectoryEntry added in v0.6.4

type DeploymentResourceDirectoryEntry struct {
	Provider           string                      // Provider 云服务提供商配置名称
	ExecuteBusinesType deployPB.ExecuteBusinesType // ExecuteBusinesType 明确的产品部署业务
	TargetRef          string                      // TargetRef 客户端自动生成的不透明引用
	Label              string                      // Label 资源展示名称
	Domain             string                      // Domain 资源精确域名
}

DeploymentResourceDirectoryEntry 是可上报给后端的脱敏部署资源目录项。

func GetDeploymentResourceDirectory added in v0.6.4

func GetDeploymentResourceDirectory() []DeploymentResourceDirectoryEntry

GetDeploymentResourceDirectory 返回不含凭据和私有资源定位字段的部署资源目录。

type ESAConfig added in v0.6.4

type ESAConfig struct {
	Label  string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain string `yaml:"domain"`          // Domain ESA Record 绑定的精确域名
	SiteID string `yaml:"siteId"`          // SiteID ESA 站点 ID
}

ESAConfig 描述一个 ESA Record 部署资源。

type EdgeOneConfig added in v0.6.4

type EdgeOneConfig struct {
	Label  string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain string `yaml:"domain"`          // Domain EdgeOne Host 的精确域名
	ZoneID string `yaml:"zoneId"`          // ZoneID EdgeOne 站点 ID
}

EdgeOneConfig 描述一个 EdgeOne Host 部署资源。

type FeiNiuSSHConfig added in v0.6.5

type FeiNiuSSHConfig = SSHConfig

FeiNiuSSHConfig 兼容已有飞牛 SSH 配置类型名称。

type LogConfig added in v0.6.0

type LogConfig struct {
	MaxSizeMB  int `yaml:"maxSizeMB"`  // MaxSizeMB 单个日志文件最大体积,单位 MB
	MaxBackups int `yaml:"maxBackups"` // MaxBackups 最多保留的轮转文件数量
	MaxAgeDays int `yaml:"maxAgeDays"` // MaxAgeDays 轮转文件最长保留天数
}

LogConfig 日志轮转配置

type NLBConfig added in v0.6.5

type NLBConfig struct {
	Label          string `yaml:"label,omitempty"` // Label 控制台展示名称,留空时使用规范化域名
	Domain         string `yaml:"domain"`          // Domain 监听器默认或 SNI 扩展绑定的精确域名
	Region         string `yaml:"region"`          // Region NLB 实例所在地域 ID
	LoadBalancerID string `yaml:"loadBalancerId"`  // LoadBalancerID NLB 实例 ID
	ListenerID     string `yaml:"listenerId"`      // ListenerID NLB TCPSSL 监听器 ID
}

NLBConfig 描述阿里云 NLB TCPSSL 监听器部署资源。

type OSSConfig added in v0.6.4

type OSSConfig struct {
	Label    string `yaml:"label,omitempty"`    // Label 控制台展示名称,留空时使用规范化域名
	Domain   string `yaml:"domain"`             // Domain OSS Bucket 绑定的精确自定义域名
	Region   string `yaml:"region"`             // Region OSS Bucket 所在地域
	Bucket   string `yaml:"bucket"`             // Bucket OSS Bucket 名称
	Endpoint string `yaml:"endpoint,omitempty"` // Endpoint 可选的 OSS HTTPS API Origin
}

OSSConfig 描述一个 OSS Bucket 自定义域名部署资源。

type OnePanelConfig added in v0.5.1

type OnePanelConfig struct {
	URL    string `yaml:"url"`    // 1Panel API 地址
	APIKey string `yaml:"apiKey"` // 1Panel API 密钥
}

OnePanelConfig 1Panel 配置

type Provider

type Provider struct {
	Name    string           `yaml:"name"`    // Name 提供商内部名称
	Remark  string           `yaml:"remark"`  // Remark 提供商展示备注
	Auth    *ProviderAuth    `yaml:"auth"`    // Auth 提供商认证配置
	CDN     []*CDNConfig     `yaml:"cdn"`     // CDN 精确域名部署资源
	DCDN    []*DCDNConfig    `yaml:"dcdn"`    // DCDN 精确域名部署资源
	ESA     []*ESAConfig     `yaml:"esa"`     // ESA Record 部署资源
	OSS     []*OSSConfig     `yaml:"oss"`     // OSS 自定义域名部署资源
	EdgeOne []*EdgeOneConfig `yaml:"edgeOne"` // EdgeOne Host 部署资源
	COS     []*COSConfig     `yaml:"cos"`     // COS 自定义域名部署资源
	CLB     []*CLBConfig     `yaml:"clb"`     // 阿里云或腾讯云 CLB 监听器部署资源
	ALB     []*ALBConfig     `yaml:"alb"`     // 阿里云 ALB 监听器部署资源
	NLB     []*NLBConfig     `yaml:"nlb"`     // 阿里云 NLB 监听器部署资源
}

Provider 云服务提供商配置

func GetProvider

func GetProvider(name string) *Provider

GetProvider 获取提供商配置

func (*Provider) GetAccessKey added in v0.5.0

func (p *Provider) GetAccessKey() string

GetAccessKey 获取七牛云 AccessKey

func (*Provider) GetAccessKeyId added in v0.5.0

func (p *Provider) GetAccessKeyId() string

GetAccessKeyId 获取阿里云 AccessKeyId

func (*Provider) GetAccessKeySecret added in v0.5.0

func (p *Provider) GetAccessKeySecret() string

GetAccessKeySecret 获取阿里云 AccessKeySecret

func (*Provider) GetAccessSecret added in v0.5.0

func (p *Provider) GetAccessSecret() string

GetAccessSecret 获取七牛云 AccessSecret

func (*Provider) GetSecretId added in v0.5.0

func (p *Provider) GetSecretId() string

GetSecretId 获取腾讯云 SecretId

func (*Provider) GetSecretKey added in v0.5.0

func (p *Provider) GetSecretKey() string

GetSecretKey 获取腾讯云 SecretKey

type ProviderAuth added in v0.5.0

type ProviderAuth struct {
	// 阿里云认证字段
	AccessKeyId     string `yaml:"accessKeyId,omitempty"`
	AccessKeySecret string `yaml:"accessKeySecret,omitempty"`
	// 腾讯云认证字段
	SecretId  string `yaml:"secretId,omitempty"`
	SecretKey string `yaml:"secretKey,omitempty"`
	// 七牛云认证字段
	AccessKey    string `yaml:"accessKey,omitempty"`
	AccessSecret string `yaml:"accessSecret,omitempty"`
}

ProviderAuth 云服务提供商认证字段集合

type RustFSConfig added in v0.6.5

type RustFSConfig struct {
	Path      string                                  `yaml:"path"` // Path 是 RustFS TLS 证书根目录
	SSHConfig `yaml:",inline" mapstructure:",squash"` // SSHConfig 是可选的 SSH 远程连接配置
}

RustFSConfig 保存 RustFS 证书目录及可选的 SSH 远程配置。

type SSHConfig added in v0.6.5

type SSHConfig struct {
	Host                 string `yaml:"host"`                 // Host 是远程主机名或 IP 地址
	Port                 int    `yaml:"port"`                 // Port 是 SSH 端口,默认 22
	Username             string `yaml:"username"`             // Username 是 SSH 登录用户名
	Password             string `yaml:"password"`             // Password 是密码认证及 sudo 使用的密码
	PrivateKeyPath       string `yaml:"privateKeyPath"`       // PrivateKeyPath 是 deploy 客户端本地私钥绝对路径
	PrivateKeyPassphrase string `yaml:"privateKeyPassphrase"` // PrivateKeyPassphrase 是加密私钥的可选口令
}

SSHConfig 保存仅供 deploy 客户端本地使用的 SSH 认证配置。

type SafeLineConfig added in v0.6.5

type SafeLineConfig struct {
	URL                string `yaml:"url"`                // URL 是雷池管理端地址
	APIToken           string `yaml:"apiToken"`           // APIToken 是通用设置中生成的 API Token
	InsecureSkipVerify bool   `yaml:"insecureSkipVerify"` // InsecureSkipVerify 仅用于显式信任自签名 HTTPS 证书
}

SafeLineConfig 雷池 WAF OpenAPI 配置。

type ServerConfig

type ServerConfig struct {
	AccessKey string `yaml:"accessKey"` // AccessKey 后端鉴权令牌
	Env       string `yaml:"env"`       // Env 服务环境,空值为生产环境,local 为本地开发环境
	Port      int    `yaml:"port"`      // Port HTTP-01 challenge 服务端口,默认 19000
}

ServerConfig 服务端连接和本地 HTTP-01 challenge 配置

type UpdateConfig

type UpdateConfig struct {
	// 镜像源类型: github, ghproxy, custom
	Mirror string `yaml:"mirror"`
	// 自定义镜像地址(当 mirror=custom 时使用)
	CustomURL string `yaml:"customUrl"`
	// HTTP 代理地址
	Proxy string `yaml:"proxy"`
}

UpdateConfig 自更新下载源和代理配置

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL