Documentation
¶
Index ¶
- Constants
- Variables
- func DeploymentProviderFromName(name string) (deployPB.Provider, bool)
- func DeploymentProviderName(provider deployPB.Provider) (string, bool)
- func IsDeploymentResourceType(deploymentType deployPB.DeploymentType) bool
- func IsSSHConfigured(sshConfig *SSHConfig) bool
- func PrepareRuntimeDirsForRuntime(runtime *Runtime) error
- type BTPanelConfig
- type Configuration
- type DeployConfig
- type FeiNiuSSHConfig
- type LogConfig
- type OnePanelConfig
- type Provider
- func (p *Provider) GetAPIBaseURL() string
- func (p *Provider) GetAPIToken() string
- func (p *Provider) GetAccessKey() string
- func (p *Provider) GetAccessKeyId() string
- func (p *Provider) GetAccessKeySecret() string
- func (p *Provider) GetAccessSecret() string
- func (p *Provider) GetSecretId() string
- func (p *Provider) GetSecretKey() string
- type ProviderAuth
- type Runtime
- type RustFSConfig
- type SSHConfig
- type SafeLineConfig
- type ServerConfig
- type UpdateConfig
Constants ¶
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 ¶
var ( URLProd = "https://anssl.cn/deploy" URLLocal = "http://localhost:9000/deploy" )
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
DeploymentProviderFromName 将现有 config.yaml provider 键转换成 v2 provider。
func DeploymentProviderName ¶ added in v0.7.0
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
IsSSHConfigured 判断除默认端口外是否已经填写任一 SSH 字段。
func PrepareRuntimeDirsForRuntime ¶ added in v0.7.0
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
GetAPIBaseURL 获取 provider 自定义 API 基础地址。
func (*Provider) GetAPIToken ¶ added in v0.7.0
GetAPIToken 获取 provider API Token。
func (*Provider) GetAccessKey ¶ added in v0.5.0
GetAccessKey 获取七牛云 AccessKey
func (*Provider) GetAccessKeyId ¶ added in v0.5.0
GetAccessKeyId 获取阿里云 AccessKeyId
func (*Provider) GetAccessKeySecret ¶ added in v0.5.0
GetAccessKeySecret 获取阿里云 AccessKeySecret
func (*Provider) GetAccessSecret ¶ added in v0.5.0
GetAccessSecret 获取七牛云 AccessSecret
func (*Provider) GetSecretId ¶ added in v0.5.0
GetSecretId 获取腾讯云 SecretId
func (*Provider) GetSecretKey ¶ added in v0.5.0
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 是一次不可变配置加载的运行时快照。
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 自更新下载源和代理配置