Documentation
¶
Index ¶
- Constants
- func CopyDirectory(sourceDir, targetDir string) error
- func CopyFileWithMode(sourceFile, targetFile string, mode fs.FileMode) error
- func DeployCertificateTo1PanelWebsite(ctx context.Context, targetRef, certificatePEM, privateKeyPEM string) error
- func DeployCertificateToBTPanelCertificateStore(ctx context.Context, certificatePEM, privateKeyPEM string) error
- func DeployCertificateToBTPanelWebsite(ctx context.Context, targetRef, certificatePEM, privateKeyPEM string) error
- func ExtractTar(archiveFile, extractDir string) error
- func GenerateApacheSSLConfig(apachePath, folderName, safeDomain string) error
- func GenerateNginxSSLConfig(nginxPath, folderName, safeDomain string) error
- func GetApacheCommand() string
- func IsApacheAvailable() bool
- func IsBTPanelConfigured() bool
- func IsBTPanelConfiguredWithContext(ctx context.Context) bool
- func IsBTPanelErrorRetryable(err error) bool
- func IsCrossDeviceError(err error) bool
- func IsNginxAvailable() bool
- func IsOnePanelConfigured() bool
- func IsOnePanelConfiguredWithContext(ctx context.Context) bool
- func IsOnePanelErrorRetryable(err error) bool
- func NormalizeDeploymentDomain(domain string) (string, string, error)
- func PublishDirectoryWithRollback(sourceDir, targetDir string) error
- func ReloadApache() error
- func ReloadApacheWithContext(ctx context.Context) error
- func ReloadNginx() error
- func ReloadNginxWithContext(ctx context.Context) error
- func SafeJoinUnderBase(baseDir string, pathElements ...string) (string, error)
- func SanitizeDomain(domain string) string
- func TestApacheConfig() error
- func TestApacheConfigWithContext(ctx context.Context) error
- func TestBTPanelCertificateConnection() error
- func TestBTPanelCertificateConnectionWithContext(ctx context.Context) error
- func TestBTPanelWebsiteConnection(ctx context.Context, targetRef string) error
- func TestFeiNiuConnection() error
- func TestFeiNiuConnectionWithContext(ctx context.Context) error
- func TestNginxConfig() error
- func TestNginxConfigWithContext(ctx context.Context) error
- func TestOnePanelConnection() error
- func TestOnePanelConnectionWithContext(ctx context.Context) error
- func TestOnePanelWebsiteConnection(ctx context.Context, targetRef string) error
- func TestRemoteFeiNiuConnection(sshConfig *config.FeiNiuSSHConfig) error
- func TestRustFSConnection() error
- func TestRustFSConnectionWithContext(ctx context.Context) error
- func TestSafeLineConnection() error
- func TestSafeLineConnectionWithContext(ctx context.Context) error
- func UploadOnlyBaseDir() string
- func UploadOnlyTargetDir(domain string) string
- func ValidateCertificateFiles(sourceDir, domain string) error
- func ValidateSafeDomainName(safeName string) error
- func WithRuntime(ctx context.Context, runtime *config.Runtime) context.Context
- type BTPanelWebsiteResource
- type CertDeployer
- func (cd *CertDeployer) DeployCertificate(ctx context.Context, domain, url string) error
- func (cd *CertDeployer) DeployCertificateTo1Panel(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToApache(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToBTPanelCertificateStoreFromURL(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToFeiNiu(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToNginx(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToOpenVPNAS(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToRustFS(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToSafeLine(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployCertificateToUploadOnly(ctx context.Context, domain, downloadURL string) error
- func (cd *CertDeployer) DeployTo1Panel(ctx context.Context, sourceDir, domain string) error
- func (cd *CertDeployer) DeployToApache(sourceDir, apachePath, folderName, safeDomain string) error
- func (cd *CertDeployer) DeployToFeiNiu(sourceDir, feiNiuPath, domain string) error
- func (cd *CertDeployer) DeployToFeiNiuWithContext(ctx context.Context, sourceDir, feiNiuPath, domain string) error
- func (cd *CertDeployer) DeployToNginx(sourceDir, nginxPath, folderName, safeDomain string) error
- func (cd *CertDeployer) DeployToOpenVPNAS(ctx context.Context, sourceDir string) error
- func (cd *CertDeployer) DeployToRemoteFeiNiu(sourceDir, domain string, sshConfig *config.FeiNiuSSHConfig) error
- func (cd *CertDeployer) DeployToRemoteRustFS(ctx context.Context, sourceDir, safeDomain string, ...) error
- func (cd *CertDeployer) DeployToRustFS(sourceDir, rustFSBasePath, safeDomain string) error
- func (cd *CertDeployer) DeployToSafeLine(ctx context.Context, sourceDir, domain string) error
- func (cd *CertDeployer) DeployToUploadOnly(sourceDir, domain string) error
- type Deployer
- type OnePanelAPIResponse
- type OnePanelWebsiteResource
- type Options
Constants ¶
const ( CertsDir = shared.CertsDir // CertsDir 是证书临时存储目录。 FeiNiuFixedPath = feiniu.FixedPath // FeiNiuFixedPath 是飞牛固定部署路径。 )
Variables ¶
This section is empty.
Functions ¶
func CopyDirectory ¶
CopyDirectory 复制目录树并拒绝符号链接。
func CopyFileWithMode ¶
CopyFileWithMode 复制普通文件并设置目标权限。
func DeployCertificateTo1PanelWebsite ¶ added in v0.7.0
func DeployCertificateTo1PanelWebsite(ctx context.Context, targetRef, certificatePEM, privateKeyPEM string) error
DeployCertificateTo1PanelWebsite 部署证书到精确 1Panel 网站资源。
func DeployCertificateToBTPanelCertificateStore ¶ added in v0.7.0
func DeployCertificateToBTPanelCertificateStore(ctx context.Context, certificatePEM, privateKeyPEM string) error
DeployCertificateToBTPanelCertificateStore 上传证书到宝塔证书库。
func DeployCertificateToBTPanelWebsite ¶ added in v0.7.0
func DeployCertificateToBTPanelWebsite(ctx context.Context, targetRef, certificatePEM, privateKeyPEM string) error
DeployCertificateToBTPanelWebsite 部署证书到精确宝塔网站资源。
func ExtractTar ¶ added in v0.5.7
ExtractTar 安全解压 tar、tar.gz 或 zip 证书归档。
func GenerateApacheSSLConfig ¶
GenerateApacheSSLConfig 生成 Apache SSL 配置文件。
func GenerateNginxSSLConfig ¶
GenerateNginxSSLConfig 生成 Nginx SSL 配置文件。
func IsBTPanelConfigured ¶ added in v0.7.0
func IsBTPanelConfigured() bool
IsBTPanelConfigured 返回 operation context 是否包含可用宝塔配置。
func IsBTPanelConfiguredWithContext ¶ added in v0.7.0
IsBTPanelConfiguredWithContext 返回 operation context 是否包含可用宝塔配置。
func IsBTPanelErrorRetryable ¶ added in v0.7.0
IsBTPanelErrorRetryable 判断宝塔错误是否适合稍后重试。
func IsCrossDeviceError ¶
IsCrossDeviceError 判断错误是否表示跨文件系统重命名失败。
func IsOnePanelConfigured ¶ added in v0.7.0
func IsOnePanelConfigured() bool
IsOnePanelConfigured 返回 operation context 是否包含可用 1Panel 配置。
func IsOnePanelConfiguredWithContext ¶ added in v0.7.0
IsOnePanelConfiguredWithContext 返回 operation context 是否包含可用 1Panel 配置。
func IsOnePanelErrorRetryable ¶ added in v0.7.0
IsOnePanelErrorRetryable 判断 1Panel 错误是否适合稍后重试。
func NormalizeDeploymentDomain ¶ added in v0.6.2
NormalizeDeploymentDomain 校验部署域名并返回规范域名和安全目录名。
func PublishDirectoryWithRollback ¶ added in v0.6.0
PublishDirectoryWithRollback 原子发布目录并在失败时恢复旧目录。
func ReloadApacheWithContext ¶ added in v0.7.0
ReloadApacheWithContext 使用调用方 context 重新加载 Apache。
func ReloadNginxWithContext ¶ added in v0.7.0
ReloadNginxWithContext 使用调用方 context 重新加载 Nginx。
func SafeJoinUnderBase ¶ added in v0.6.2
SafeJoinUnderBase 拼接路径并保证结果仍位于基础目录内。
func SanitizeDomain ¶
SanitizeDomain returns the filesystem-safe representation of a valid deployment domain.
func TestApacheConfigWithContext ¶ added in v0.7.0
TestApacheConfigWithContext 使用调用方 context 测试 Apache 配置。
func TestBTPanelCertificateConnection ¶ added in v0.7.0
func TestBTPanelCertificateConnection() error
TestBTPanelCertificateConnection 使用兼容入口测试宝塔证书库权限。
func TestBTPanelCertificateConnectionWithContext ¶ added in v0.7.0
TestBTPanelCertificateConnectionWithContext 使用调用方 context 测试宝塔证书库权限。
func TestBTPanelWebsiteConnection ¶ added in v0.7.0
TestBTPanelWebsiteConnection 测试精确宝塔网站资源。
func TestFeiNiuConnection ¶ added in v0.6.5
func TestFeiNiuConnection() error
TestFeiNiuConnection 使用兼容入口测试飞牛环境。
func TestFeiNiuConnectionWithContext ¶ added in v0.7.0
TestFeiNiuConnectionWithContext 使用调用方 context 测试飞牛环境。
func TestNginxConfigWithContext ¶ added in v0.7.0
TestNginxConfigWithContext 使用调用方 context 测试 Nginx 配置。
func TestOnePanelConnection ¶ added in v0.6.5
func TestOnePanelConnection() error
TestOnePanelConnection 使用兼容入口测试 1Panel 证书库权限。
func TestOnePanelConnectionWithContext ¶ added in v0.7.0
TestOnePanelConnectionWithContext 使用调用方 context 测试 1Panel 证书库权限。
func TestOnePanelWebsiteConnection ¶ added in v0.7.0
TestOnePanelWebsiteConnection 测试精确 1Panel 网站资源。
func TestRemoteFeiNiuConnection ¶ added in v0.6.5
func TestRemoteFeiNiuConnection(sshConfig *config.FeiNiuSSHConfig) error
TestRemoteFeiNiuConnection 测试飞牛 SSH 环境。
func TestRustFSConnection ¶ added in v0.6.5
func TestRustFSConnection() error
TestRustFSConnection 使用兼容入口测试 RustFS。
func TestRustFSConnectionWithContext ¶ added in v0.7.0
TestRustFSConnectionWithContext 使用调用方 context 测试 RustFS。
func TestSafeLineConnection ¶ added in v0.6.5
func TestSafeLineConnection() error
TestSafeLineConnection 使用兼容入口测试雷池连接。
func TestSafeLineConnectionWithContext ¶ added in v0.7.0
TestSafeLineConnectionWithContext 使用调用方 context 测试雷池连接。
func UploadOnlyBaseDir ¶ added in v0.5.6
func UploadOnlyBaseDir() string
UploadOnlyBaseDir 返回 UploadOnly 本地保存目录。
func UploadOnlyTargetDir ¶ added in v0.5.6
UploadOnlyTargetDir 返回指定域名的 UploadOnly 保存目录。
func ValidateCertificateFiles ¶ added in v0.6.0
ValidateCertificateFiles 校验证书、私钥、有效期和域名覆盖关系。
func ValidateSafeDomainName ¶ added in v0.6.2
ValidateSafeDomainName 校验已经规范化的安全目录名。
Types ¶
type BTPanelWebsiteResource ¶ added in v0.7.0
type BTPanelWebsiteResource = btpanel.BTPanelWebsiteResource
BTPanelWebsiteResource 是宝塔网站资源的兼容别名。
func DiscoverBTPanelWebsiteResources ¶ added in v0.7.0
func DiscoverBTPanelWebsiteResources(ctx context.Context) ([]BTPanelWebsiteResource, error)
DiscoverBTPanelWebsiteResources 发现当前宝塔网站资源。
type CertDeployer ¶
type CertDeployer struct {
// contains filtered or unexported fields
}
CertDeployer 证书部署器
func NewCertDeployer ¶
func NewCertDeployer(download any, options ...Options) *CertDeployer
NewCertDeployer 创建证书部署器
func (*CertDeployer) DeployCertificate ¶
func (cd *CertDeployer) DeployCertificate(ctx context.Context, domain, url string) error
DeployCertificate 部署证书(同时部署到所有配置的目标)
func (*CertDeployer) DeployCertificateTo1Panel ¶
func (cd *CertDeployer) DeployCertificateTo1Panel(ctx context.Context, domain, downloadURL string) error
DeployCertificateTo1Panel 下载证书并上传到 1Panel 证书库。
func (*CertDeployer) DeployCertificateToApache ¶
func (cd *CertDeployer) DeployCertificateToApache(ctx context.Context, domain, downloadURL string) error
DeployCertificateToApache 下载证书并仅部署到 Apache。
func (*CertDeployer) DeployCertificateToBTPanelCertificateStoreFromURL ¶ added in v0.7.0
func (cd *CertDeployer) DeployCertificateToBTPanelCertificateStoreFromURL(ctx context.Context, domain, downloadURL string) error
DeployCertificateToBTPanelCertificateStoreFromURL 下载证书并上传到宝塔证书库。
func (*CertDeployer) DeployCertificateToFeiNiu ¶
func (cd *CertDeployer) DeployCertificateToFeiNiu(ctx context.Context, domain, downloadURL string) error
DeployCertificateToFeiNiu 下载证书并仅部署到飞牛。
func (*CertDeployer) DeployCertificateToNginx ¶
func (cd *CertDeployer) DeployCertificateToNginx(ctx context.Context, domain, downloadURL string) error
DeployCertificateToNginx 下载证书并仅部署到 Nginx。
func (*CertDeployer) DeployCertificateToOpenVPNAS ¶ added in v0.5.6
func (cd *CertDeployer) DeployCertificateToOpenVPNAS(ctx context.Context, domain, downloadURL string) error
DeployCertificateToOpenVPNAS 下载证书并仅部署到 OpenVPN-AS。
func (*CertDeployer) DeployCertificateToRustFS ¶
func (cd *CertDeployer) DeployCertificateToRustFS(ctx context.Context, domain, downloadURL string) error
DeployCertificateToRustFS 下载证书并仅部署到 RustFS。
func (*CertDeployer) DeployCertificateToSafeLine ¶ added in v0.6.5
func (cd *CertDeployer) DeployCertificateToSafeLine(ctx context.Context, domain, downloadURL string) error
DeployCertificateToSafeLine 下载证书并仅部署到雷池。
func (*CertDeployer) DeployCertificateToUploadOnly ¶ added in v0.5.6
func (cd *CertDeployer) DeployCertificateToUploadOnly(ctx context.Context, domain, downloadURL string) error
DeployCertificateToUploadOnly 下载证书并保存到本地目录。
func (*CertDeployer) DeployTo1Panel ¶
func (cd *CertDeployer) DeployTo1Panel(ctx context.Context, sourceDir, domain string) error
DeployTo1Panel 上传证书到 1Panel 证书库。
func (*CertDeployer) DeployToApache ¶
func (cd *CertDeployer) DeployToApache(sourceDir, apachePath, folderName, safeDomain string) error
DeployToApache 部署证书到 Apache 目录并生成配置文件。
func (*CertDeployer) DeployToFeiNiu ¶
func (cd *CertDeployer) DeployToFeiNiu(sourceDir, feiNiuPath, domain string) error
DeployToFeiNiu 部署证书到本机飞牛目录。
func (*CertDeployer) DeployToFeiNiuWithContext ¶ added in v0.7.0
func (cd *CertDeployer) DeployToFeiNiuWithContext(ctx context.Context, sourceDir, feiNiuPath, domain string) error
DeployToFeiNiuWithContext 使用调用方 context 部署证书到本机飞牛目录。
func (*CertDeployer) DeployToNginx ¶
func (cd *CertDeployer) DeployToNginx(sourceDir, nginxPath, folderName, safeDomain string) error
DeployToNginx 部署证书到 Nginx 目录并生成配置文件。
func (*CertDeployer) DeployToOpenVPNAS ¶ added in v0.5.6
func (cd *CertDeployer) DeployToOpenVPNAS(ctx context.Context, sourceDir string) error
DeployToOpenVPNAS 将证书导入 OpenVPN-AS。
func (*CertDeployer) DeployToRemoteFeiNiu ¶ added in v0.6.5
func (cd *CertDeployer) DeployToRemoteFeiNiu(sourceDir, domain string, sshConfig *config.FeiNiuSSHConfig) error
DeployToRemoteFeiNiu 通过 SSH 部署证书到飞牛。
func (*CertDeployer) DeployToRemoteRustFS ¶ added in v0.6.5
func (cd *CertDeployer) DeployToRemoteRustFS(ctx context.Context, sourceDir, safeDomain string, rustFSConfig *config.RustFSConfig) error
DeployToRemoteRustFS 通过 SSH 部署证书到 RustFS。
func (*CertDeployer) DeployToRustFS ¶
func (cd *CertDeployer) DeployToRustFS(sourceDir, rustFSBasePath, safeDomain string) error
DeployToRustFS 部署证书到本机 RustFS 目录。
func (*CertDeployer) DeployToSafeLine ¶ added in v0.6.5
func (cd *CertDeployer) DeployToSafeLine(ctx context.Context, sourceDir, domain string) error
DeployToSafeLine 部署证书到雷池。
func (*CertDeployer) DeployToUploadOnly ¶ added in v0.5.6
func (cd *CertDeployer) DeployToUploadOnly(sourceDir, domain string) error
DeployToUploadOnly 仅将证书保存到本地目录。
type OnePanelAPIResponse ¶
type OnePanelAPIResponse = onepanel.OnePanelAPIResponse
OnePanelAPIResponse 是 1Panel API 通用响应的兼容别名。
type OnePanelWebsiteResource ¶ added in v0.7.0
type OnePanelWebsiteResource = onepanel.OnePanelWebsiteResource
OnePanelWebsiteResource 是 1Panel 网站资源的兼容别名。
func DiscoverOnePanelWebsiteResources ¶ added in v0.7.0
func DiscoverOnePanelWebsiteResources(ctx context.Context) ([]OnePanelWebsiteResource, error)
DiscoverOnePanelWebsiteResources 发现当前 1Panel 网站资源。
type Options ¶ added in v0.7.0
type Options struct {
// SSL 是一次运行时加载的本地部署配置快照。
SSL *config.DeployConfig
// KnownHostsFile 是 SSH 主机密钥记录文件路径。
KnownHostsFile string
// DownloadFunc 下载证书归档并遵守调用方 context。
DownloadFunc func(context.Context, string, string) error
}
Options 注入本地部署配置、下载器和 SSH known_hosts 依赖。