deploys

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: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CertsDir        = shared.CertsDir  // CertsDir 是证书临时存储目录。
	FeiNiuFixedPath = feiniu.FixedPath // FeiNiuFixedPath 是飞牛固定部署路径。
)

Variables

This section is empty.

Functions

func CopyDirectory

func CopyDirectory(sourceDir, targetDir string) error

CopyDirectory 复制目录树并拒绝符号链接。

func CopyFileWithMode

func CopyFileWithMode(sourceFile, targetFile string, mode fs.FileMode) error

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

func ExtractTar(archiveFile, extractDir string) error

ExtractTar 安全解压 tar、tar.gz 或 zip 证书归档。

func GenerateApacheSSLConfig

func GenerateApacheSSLConfig(apachePath, folderName, safeDomain string) error

GenerateApacheSSLConfig 生成 Apache SSL 配置文件。

func GenerateNginxSSLConfig

func GenerateNginxSSLConfig(nginxPath, folderName, safeDomain string) error

GenerateNginxSSLConfig 生成 Nginx SSL 配置文件。

func GetApacheCommand

func GetApacheCommand() string

GetApacheCommand 返回本机可用的 Apache 控制命令。

func IsApacheAvailable

func IsApacheAvailable() bool

IsApacheAvailable 返回本机是否可以找到 Apache 控制命令。

func IsBTPanelConfigured added in v0.7.0

func IsBTPanelConfigured() bool

IsBTPanelConfigured 返回 operation context 是否包含可用宝塔配置。

func IsBTPanelConfiguredWithContext added in v0.7.0

func IsBTPanelConfiguredWithContext(ctx context.Context) bool

IsBTPanelConfiguredWithContext 返回 operation context 是否包含可用宝塔配置。

func IsBTPanelErrorRetryable added in v0.7.0

func IsBTPanelErrorRetryable(err error) bool

IsBTPanelErrorRetryable 判断宝塔错误是否适合稍后重试。

func IsCrossDeviceError

func IsCrossDeviceError(err error) bool

IsCrossDeviceError 判断错误是否表示跨文件系统重命名失败。

func IsNginxAvailable

func IsNginxAvailable() bool

IsNginxAvailable 返回本机是否可以找到 nginx 命令。

func IsOnePanelConfigured added in v0.7.0

func IsOnePanelConfigured() bool

IsOnePanelConfigured 返回 operation context 是否包含可用 1Panel 配置。

func IsOnePanelConfiguredWithContext added in v0.7.0

func IsOnePanelConfiguredWithContext(ctx context.Context) bool

IsOnePanelConfiguredWithContext 返回 operation context 是否包含可用 1Panel 配置。

func IsOnePanelErrorRetryable added in v0.7.0

func IsOnePanelErrorRetryable(err error) bool

IsOnePanelErrorRetryable 判断 1Panel 错误是否适合稍后重试。

func NormalizeDeploymentDomain added in v0.6.2

func NormalizeDeploymentDomain(domain string) (string, string, error)

NormalizeDeploymentDomain 校验部署域名并返回规范域名和安全目录名。

func PublishDirectoryWithRollback added in v0.6.0

func PublishDirectoryWithRollback(sourceDir, targetDir string) error

PublishDirectoryWithRollback 原子发布目录并在失败时恢复旧目录。

func ReloadApache

func ReloadApache() error

ReloadApache 使用兼容入口重新加载 Apache。

func ReloadApacheWithContext added in v0.7.0

func ReloadApacheWithContext(ctx context.Context) error

ReloadApacheWithContext 使用调用方 context 重新加载 Apache。

func ReloadNginx

func ReloadNginx() error

ReloadNginx 使用兼容入口重新加载 Nginx。

func ReloadNginxWithContext added in v0.7.0

func ReloadNginxWithContext(ctx context.Context) error

ReloadNginxWithContext 使用调用方 context 重新加载 Nginx。

func SafeJoinUnderBase added in v0.6.2

func SafeJoinUnderBase(baseDir string, pathElements ...string) (string, error)

SafeJoinUnderBase 拼接路径并保证结果仍位于基础目录内。

func SanitizeDomain

func SanitizeDomain(domain string) string

SanitizeDomain returns the filesystem-safe representation of a valid deployment domain.

func TestApacheConfig

func TestApacheConfig() error

TestApacheConfig 使用兼容入口测试 Apache 配置。

func TestApacheConfigWithContext added in v0.7.0

func TestApacheConfigWithContext(ctx context.Context) error

TestApacheConfigWithContext 使用调用方 context 测试 Apache 配置。

func TestBTPanelCertificateConnection added in v0.7.0

func TestBTPanelCertificateConnection() error

TestBTPanelCertificateConnection 使用兼容入口测试宝塔证书库权限。

func TestBTPanelCertificateConnectionWithContext added in v0.7.0

func TestBTPanelCertificateConnectionWithContext(ctx context.Context) error

TestBTPanelCertificateConnectionWithContext 使用调用方 context 测试宝塔证书库权限。

func TestBTPanelWebsiteConnection added in v0.7.0

func TestBTPanelWebsiteConnection(ctx context.Context, targetRef string) error

TestBTPanelWebsiteConnection 测试精确宝塔网站资源。

func TestFeiNiuConnection added in v0.6.5

func TestFeiNiuConnection() error

TestFeiNiuConnection 使用兼容入口测试飞牛环境。

func TestFeiNiuConnectionWithContext added in v0.7.0

func TestFeiNiuConnectionWithContext(ctx context.Context) error

TestFeiNiuConnectionWithContext 使用调用方 context 测试飞牛环境。

func TestNginxConfig

func TestNginxConfig() error

TestNginxConfig 使用兼容入口测试 Nginx 配置。

func TestNginxConfigWithContext added in v0.7.0

func TestNginxConfigWithContext(ctx context.Context) error

TestNginxConfigWithContext 使用调用方 context 测试 Nginx 配置。

func TestOnePanelConnection added in v0.6.5

func TestOnePanelConnection() error

TestOnePanelConnection 使用兼容入口测试 1Panel 证书库权限。

func TestOnePanelConnectionWithContext added in v0.7.0

func TestOnePanelConnectionWithContext(ctx context.Context) error

TestOnePanelConnectionWithContext 使用调用方 context 测试 1Panel 证书库权限。

func TestOnePanelWebsiteConnection added in v0.7.0

func TestOnePanelWebsiteConnection(ctx context.Context, targetRef string) error

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

func TestRustFSConnectionWithContext(ctx context.Context) error

TestRustFSConnectionWithContext 使用调用方 context 测试 RustFS。

func TestSafeLineConnection added in v0.6.5

func TestSafeLineConnection() error

TestSafeLineConnection 使用兼容入口测试雷池连接。

func TestSafeLineConnectionWithContext added in v0.7.0

func TestSafeLineConnectionWithContext(ctx context.Context) error

TestSafeLineConnectionWithContext 使用调用方 context 测试雷池连接。

func UploadOnlyBaseDir added in v0.5.6

func UploadOnlyBaseDir() string

UploadOnlyBaseDir 返回 UploadOnly 本地保存目录。

func UploadOnlyTargetDir added in v0.5.6

func UploadOnlyTargetDir(domain string) string

UploadOnlyTargetDir 返回指定域名的 UploadOnly 保存目录。

func ValidateCertificateFiles added in v0.6.0

func ValidateCertificateFiles(sourceDir, domain string) error

ValidateCertificateFiles 校验证书、私钥、有效期和域名覆盖关系。

func ValidateSafeDomainName added in v0.6.2

func ValidateSafeDomainName(safeName string) error

ValidateSafeDomainName 校验已经规范化的安全目录名。

func WithRuntime added in v0.7.0

func WithRuntime(ctx context.Context, runtime *config.Runtime) context.Context

WithRuntime 将运行时配置附加到一次本地部署 operation context。

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 Deployer

type Deployer interface {
	Deploy(sourceDir, domain string) error
}

Deployer 证书部署器接口(为未来扩展预留)

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 依赖。

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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