Documentation
¶
Index ¶
- func BackupDatabase(client *goss.Client, dbType DBType, dbName, containerName string, ...) (string, error)
- func BackupServices(client *goss.Client, destDir string) (string, error)
- func BuildAndPushImage(dir, name string, reg RegistryConfig) (string, error)
- func BuildImage(dir, name string, reg RegistryConfig, builder BuilderType) (string, error)
- func DeployBare(client *goss.Client, name, versionDir string) error
- func DeployBlueGreen(client *goss.Client, name, serviceDir, version string) error
- func DeployK3s(client *goss.Client, name, imageRef, domain string, port int) error
- func DeployK3sFromCompose(client *goss.Client, name, versionDir, imageRef string) error
- func DeploySwarm(client *goss.Client, name, versionDir, imageRef string) error
- func DiffVersions(client *goss.Client, serviceName, verA, verB string) (string, error)
- func GenerateCompose(imageRef, serviceName string, port int, hasDB bool) []byte
- func GetCertInfo(client *goss.Client, domain string) (string, error)
- func HealthCheck(client *goss.Client, name string, timeout int, healthURL string) error
- func InstallAlertRule(client *goss.Client, ruleFilePath string) error
- func InstallAlertmanager(client *goss.Client, cfg AlertmanagerConfig) error
- func InstallCert(client *goss.Client, cfg CertConfig) error
- func InstallPromtail(client *goss.Client, cfg PromtailConfig) error
- func ListBackupSchedules(client *goss.Client) ([]string, error)
- func ListDatabases(client *goss.Client) ([]string, error)
- func ListServices(client *goss.Client) ([]string, error)
- func ListVersions(client *goss.Client, serviceName string) ([]string, error)
- func RemoveDatabase(client *goss.Client, name string) error
- func RemoveSwarmStack(client *goss.Client, name string) error
- func RestoreServices(client *goss.Client, backupPath string) error
- func Rollback(client *goss.Client, serviceName, targetVersion string) error
- func RotateDBPassword(client *goss.Client, dbType DBType, containerName, newPass string) (string, error)
- func RotateServiceEnv(client *goss.Client, serviceName, key, newValue string) error
- func RunService(client *goss.Client, cfg ServiceConfig) error
- func ScheduleBackup(client *goss.Client, backupType BackupType, ...) error
- func ServiceLogs(client *goss.Client, name string, tail int, follow bool) error
- func ServiceStatus(client *goss.Client, name string) (string, error)
- func UninstallAlertmanager(client *goss.Client) error
- func UninstallCaddy(client *goss.Client) error
- func UninstallPromtail(client *goss.Client) error
- func UnscheduleBackup(client *goss.Client, backupType BackupType) error
- func UploadImage(client *goss.Client, serviceName, version string, imageTar []byte) (string, error)
- func UploadToS3(localPath string, cfg S3Config) error
- type AlertmanagerConfig
- type BackupType
- type Builder
- type BuilderType
- type CaddyProxy
- func (p *CaddyProxy) Install(client *goss.Client, cfg ProxyConfig) error
- func (p *CaddyProxy) Remove(client *goss.Client) error
- func (p *CaddyProxy) Status(client *goss.Client) (string, error)
- func (p *CaddyProxy) Type() ProxyType
- func (p *CaddyProxy) UpdateTargetPort(client *goss.Client, domain string, port int) error
- type CertConfig
- type CertProvider
- type DBConfig
- type DBResult
- type DBType
- type DeployResult
- type DockerfileBuilder
- type NginxProxy
- func (p *NginxProxy) Install(client *goss.Client, cfg ProxyConfig) error
- func (p *NginxProxy) Remove(client *goss.Client) error
- func (p *NginxProxy) Status(client *goss.Client) (string, error)
- func (p *NginxProxy) Type() ProxyType
- func (p *NginxProxy) UpdateTargetPort(client *goss.Client, domain string, port int) error
- type NixpacksBuilder
- type PackBuilder
- type PromtailConfig
- type Proxy
- type ProxyConfig
- type ProxyType
- type RegistryConfig
- type S3Config
- type ServiceConfig
- type TraefikProxy
- func (p *TraefikProxy) Install(client *goss.Client, cfg ProxyConfig) error
- func (p *TraefikProxy) Remove(client *goss.Client) error
- func (p *TraefikProxy) Status(client *goss.Client) (string, error)
- func (p *TraefikProxy) Type() ProxyType
- func (p *TraefikProxy) UpdateTargetPort(client *goss.Client, domain string, port int) error
- type UploadConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BackupDatabase ¶ added in v0.2.0
func BackupDatabase(client *goss.Client, dbType DBType, dbName, containerName string, destDir string) (string, error)
BackupDatabase dumps a database via pg_dump/mysqldump/mongodump inside its container. Returns the local path to the dump file.
func BackupServices ¶
BackupServices creates a tarball of all services on a node and downloads it.
func BuildAndPushImage ¶
func BuildAndPushImage(dir, name string, reg RegistryConfig) (string, error)
BuildAndPushImage builds a Go binary locally, wraps in minimal Docker image, pushes to registry
func BuildImage ¶ added in v0.1.0
func BuildImage(dir, name string, reg RegistryConfig, builder BuilderType) (string, error)
func DeployBare ¶ added in v0.2.0
func DeployBlueGreen ¶ added in v0.1.0
func DeployK3sFromCompose ¶ added in v0.1.0
func DeploySwarm ¶ added in v0.2.0
func DiffVersions ¶ added in v0.4.0
func GenerateCompose ¶
GenerateCompose generates a docker-compose.yml with optional postgres sidecar
func HealthCheck ¶
func InstallAlertmanager ¶
func InstallAlertmanager(client *goss.Client, cfg AlertmanagerConfig) error
func InstallCert ¶ added in v0.1.0
func InstallCert(client *goss.Client, cfg CertConfig) error
func InstallPromtail ¶
func InstallPromtail(client *goss.Client, cfg PromtailConfig) error
func ListBackupSchedules ¶ added in v0.2.0
ListBackupSchedules lists active systemd backup timers.
func RemoveSwarmStack ¶ added in v0.2.0
func RotateDBPassword ¶ added in v0.3.0
func RotateServiceEnv ¶ added in v0.3.0
func RunService ¶
func RunService(client *goss.Client, cfg ServiceConfig) error
func ScheduleBackup ¶ added in v0.2.0
func ScheduleBackup(client *goss.Client, backupType BackupType, dbName, containerName, cronExpr string, s3Cfg *S3Config) error
ScheduleBackup installs a systemd timer on the remote node that runs a backup script on a cron schedule.
func UninstallAlertmanager ¶
func UninstallCaddy ¶
func UninstallPromtail ¶
func UnscheduleBackup ¶ added in v0.2.0
func UnscheduleBackup(client *goss.Client, backupType BackupType) error
UnscheduleBackup removes a systemd timer and service.
func UploadImage ¶
UploadImage uploads a Docker image tar.gz to the VPS and loads it
func UploadToS3 ¶ added in v0.2.0
UploadToS3 uploads a local file to S3-compatible storage.
Types ¶
type AlertmanagerConfig ¶
type AlertmanagerConfig struct {
SlackWebhookURL string
Email string
TelegramToken string
TelegramChatID string
}
func (AlertmanagerConfig) HasReceiver ¶
func (c AlertmanagerConfig) HasReceiver() bool
type BackupType ¶ added in v0.2.0
type BackupType string
BackupType represents what to backup.
const ( BackupTypeServices BackupType = "services" BackupTypePostgres BackupType = "postgres" BackupTypeMySQL BackupType = "mysql" BackupTypeMongoDB BackupType = "mongodb" BackupTypeRedis BackupType = "redis" // RDB dump via SAVE )
type Builder ¶ added in v0.1.0
type Builder interface {
Type() BuilderType
Detect(dir string) bool
Build(dir, name string, reg RegistryConfig) (string, error)
}
func NewBuilder ¶ added in v0.1.0
func NewBuilder(b BuilderType) Builder
type BuilderType ¶ added in v0.1.0
type BuilderType string
const ( BuilderDockerfile BuilderType = "dockerfile" BuilderNixpacks BuilderType = "nixpacks" BuilderPack BuilderType = "pack" )
func DetectBuilder ¶ added in v0.1.0
func DetectBuilder(dir string) BuilderType
type CaddyProxy ¶ added in v0.1.0
type CaddyProxy struct{}
func (*CaddyProxy) Install ¶ added in v0.1.0
func (p *CaddyProxy) Install(client *goss.Client, cfg ProxyConfig) error
func (*CaddyProxy) Status ¶ added in v0.1.0
func (p *CaddyProxy) Status(client *goss.Client) (string, error)
func (*CaddyProxy) Type ¶ added in v0.1.0
func (p *CaddyProxy) Type() ProxyType
func (*CaddyProxy) UpdateTargetPort ¶ added in v0.1.0
type CertConfig ¶ added in v0.1.0
type CertProvider ¶ added in v0.1.0
type CertProvider string
const ( CertLetsEncrypt CertProvider = "letsencrypt" CertCloudflare CertProvider = "cloudflare" CertManual CertProvider = "manual" )
type DBResult ¶ added in v0.2.0
type DeployResult ¶
func UploadAndDeploy ¶
func UploadAndDeploy(client *goss.Client, cfg UploadConfig) (*DeployResult, error)
type DockerfileBuilder ¶ added in v0.1.0
type DockerfileBuilder struct{}
func (*DockerfileBuilder) Build ¶ added in v0.1.0
func (b *DockerfileBuilder) Build(dir, name string, reg RegistryConfig) (string, error)
func (*DockerfileBuilder) Detect ¶ added in v0.1.0
func (b *DockerfileBuilder) Detect(dir string) bool
func (*DockerfileBuilder) Type ¶ added in v0.1.0
func (b *DockerfileBuilder) Type() BuilderType
type NginxProxy ¶ added in v0.1.0
type NginxProxy struct{}
func (*NginxProxy) Install ¶ added in v0.1.0
func (p *NginxProxy) Install(client *goss.Client, cfg ProxyConfig) error
func (*NginxProxy) Status ¶ added in v0.1.0
func (p *NginxProxy) Status(client *goss.Client) (string, error)
func (*NginxProxy) Type ¶ added in v0.1.0
func (p *NginxProxy) Type() ProxyType
func (*NginxProxy) UpdateTargetPort ¶ added in v0.1.0
type NixpacksBuilder ¶ added in v0.1.0
type NixpacksBuilder struct{}
func (*NixpacksBuilder) Build ¶ added in v0.1.0
func (b *NixpacksBuilder) Build(dir, name string, reg RegistryConfig) (string, error)
func (*NixpacksBuilder) Detect ¶ added in v0.1.0
func (b *NixpacksBuilder) Detect(dir string) bool
func (*NixpacksBuilder) Type ¶ added in v0.1.0
func (b *NixpacksBuilder) Type() BuilderType
type PackBuilder ¶ added in v0.1.0
type PackBuilder struct{}
func (*PackBuilder) Build ¶ added in v0.1.0
func (b *PackBuilder) Build(dir, name string, reg RegistryConfig) (string, error)
func (*PackBuilder) Detect ¶ added in v0.1.0
func (b *PackBuilder) Detect(dir string) bool
func (*PackBuilder) Type ¶ added in v0.1.0
func (b *PackBuilder) Type() BuilderType
type PromtailConfig ¶
type Proxy ¶ added in v0.1.0
type ProxyConfig ¶ added in v0.1.0
type RegistryConfig ¶
func DefaultRegistry ¶
func DefaultRegistry() RegistryConfig
func (RegistryConfig) Valid ¶ added in v0.4.2
func (r RegistryConfig) Valid() bool
type S3Config ¶ added in v0.2.0
type S3Config struct {
Endpoint string // e.g., https://s3.amazonaws.com
Region string
Bucket string
AccessKey string
SecretKey string
Path string // optional prefix path
}
S3Config holds S3-compatible storage settings.
func S3ConfigFromEnv ¶ added in v0.2.0
func S3ConfigFromEnv() S3Config
S3ConfigFromEnv populates S3Config from environment variables.
type ServiceConfig ¶
type TraefikProxy ¶ added in v0.1.0
type TraefikProxy struct{}
func (*TraefikProxy) Install ¶ added in v0.1.0
func (p *TraefikProxy) Install(client *goss.Client, cfg ProxyConfig) error
func (*TraefikProxy) Remove ¶ added in v0.1.0
func (p *TraefikProxy) Remove(client *goss.Client) error
func (*TraefikProxy) Status ¶ added in v0.1.0
func (p *TraefikProxy) Status(client *goss.Client) (string, error)
func (*TraefikProxy) Type ¶ added in v0.1.0
func (p *TraefikProxy) Type() ProxyType