config

package
v0.7.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	// ProviderANSSLCLI 是客户端本地和面板部署配置名称。
	ProviderANSSLCLI = "ansslCli"
	// ProviderAliyun 是阿里云 provider 的配置名称。
	ProviderAliyun = "aliyun"
	// ProviderTencentCloud 是腾讯云 provider 的配置名称。
	ProviderTencentCloud = "cloudTencent"
	// ProviderQiniu 是七牛云 provider 的配置名称。
	ProviderQiniu = "qiniu"
	// ProviderHuaweiCloud 是华为云 provider 的配置名称。
	ProviderHuaweiCloud = "huawei"
	// ProviderVolcengine 是火山引擎 provider 的配置名称。
	ProviderVolcengine = "volcengine"
	// ProviderJDCloud 是京东云 provider 的配置名称。
	ProviderJDCloud = "jdcloud"
	// ProviderBaiduCloud 是百度云 provider 的配置名称。
	ProviderBaiduCloud = "baidu"
	// ProviderDogeCloud 是多吉云 provider 的配置名称。
	ProviderDogeCloud = "dogecloud"
	// ProviderLeCDN 是 LeCDN provider 的配置名称。
	ProviderLeCDN = "lecdn"
)

Variables

View Source
var (
	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 DeploymentProviderFromName added in v0.7.0

func DeploymentProviderFromName(name string) (deployPB.Provider, bool)

DeploymentProviderFromName 将现有 config.yaml provider 键转换成 v2 provider。

func DeploymentProviderName added in v0.7.0

func DeploymentProviderName(provider deployPB.Provider) (string, bool)

DeploymentProviderName 返回 v2 provider 对应的兼容配置键。

func IsDeploymentResourceType added in v0.7.0

func IsDeploymentResourceType(deploymentType deployPB.DeploymentType) bool

IsDeploymentResourceType 判断 v2 部署类型是否需要实时解析一个精确部署资源。

func IsSSHConfigured added in v0.6.5

func IsSSHConfigured(sshConfig *SSHConfig) bool

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

func PrepareRuntimeDirsForRuntime added in v0.7.0

func PrepareRuntimeDirsForRuntime(runtime *Runtime) error

PrepareRuntimeDirsForRuntime 创建指定运行时需要的本地目录。

Types

type BTPanelConfig added in v0.7.0

type BTPanelConfig struct {
	URL                string `yaml:"url"`                // URL 是宝塔面板地址
	APIKey             string `yaml:"apiKey"`             // APIKey 是宝塔面板接口密钥
	InsecureSkipVerify bool   `yaml:"insecureSkipVerify"` // InsecureSkipVerify 仅用于显式信任自签名 HTTPS 证书
}

BTPanelConfig 宝塔面板 API 配置。

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 应用配置结构

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 配置
	BTPanel    *BTPanelConfig  `yaml:"btPanel"`    // BTPanel 是宝塔面板 API 配置
	SafeLine   *SafeLineConfig `yaml:"safeLine"`   // SafeLine 是雷池 WAF OpenAPI 配置
}

DeployConfig 本地证书部署目标配置

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 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 提供商展示备注
	Region            string        `yaml:"region,omitempty"`            // Region 默认资源地域
	CertificateRegion string        `yaml:"certificateRegion,omitempty"` // CertificateRegion 证书中心地域
	Regions           []string      `yaml:"regions,omitempty"`           // Regions 多地域资源发现列表
	Auth              *ProviderAuth `yaml:"auth"`                        // Auth 提供商认证配置
}

Provider 云服务提供商配置

func (*Provider) GetAPIBaseURL added in v0.7.0

func (p *Provider) GetAPIBaseURL() string

GetAPIBaseURL 获取 provider 自定义 API 基础地址。

func (*Provider) GetAPIToken added in v0.7.0

func (p *Provider) GetAPIToken() string

GetAPIToken 获取 provider API Token。

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"`
	// LeCDN API 地址和访问令牌
	APIBaseURL string `yaml:"apiBaseUrl,omitempty"`
	APIToken   string `yaml:"apiToken,omitempty"`
	// 腾讯云认证字段
	SecretId  string `yaml:"secretId,omitempty"`
	SecretKey string `yaml:"secretKey,omitempty"`
	// 七牛云认证字段
	AccessKey    string `yaml:"accessKey,omitempty"`
	AccessSecret string `yaml:"accessSecret,omitempty"`
}

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

type Runtime added in v0.7.0

type Runtime struct {
	// Config 是经过默认值归一化和校验的配置快照。
	Config *Configuration
	// ServerURL 是当前环境对应的 deploy WebSocket 服务地址。
	ServerURL string
	// ConfigFile 是配置文件的绝对路径。
	ConfigFile string
	// KnownHostsFile 是与配置文件同目录的 SSH known_hosts 路径。
	KnownHostsFile string
}

Runtime 是一次不可变配置加载的运行时快照。

func Load added in v0.7.0

func Load(configFile string) (*Runtime, error)

Load 使用独立的 viper 实例读取并校验配置,返回可传递的运行时快照。

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