models

package
v1.6.2 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ResourceStatusRunning = "running"
	ResourceStatusStopped = "stopped"
	ResourceStatusError   = "error"
)

ResourceStatus constants

Variables

This section is empty.

Functions

func ParseAndFormatLogs

func ParseAndFormatLogs(logsJSON string, showHidden bool) (string, error)

ParseAndFormatLogs parses the JSON logs string and formats it as human-readable text

Types

type Application

type Application struct {
	// Table-visible fields
	UUID          string  `json:"uuid"`
	Name          string  `json:"name"`
	Description   *string `json:"description,omitempty"`
	Status        string  `json:"status"`
	FQDN          *string `json:"fqdn,omitempty"`
	GitRepository *string `json:"git_repository,omitempty"`
	GitBranch     *string `json:"git_branch,omitempty"`
	BuildPack     *string `json:"build_pack,omitempty"`
	PortsExposes  *string `json:"ports_exposes,omitempty"`

	// Git extended (JSON-only)
	GitCommitSHA *string `json:"git_commit_sha,omitempty" table:"-"`
	GitFullURL   *string `json:"git_full_url,omitempty" table:"-"`

	// Build configuration (JSON-only)
	InstallCommand   *string `json:"install_command,omitempty" table:"-"`
	BuildCommand     *string `json:"build_command,omitempty" table:"-"`
	StartCommand     *string `json:"start_command,omitempty" table:"-"`
	BaseDirectory    *string `json:"base_directory,omitempty" table:"-"`
	PublishDirectory *string `json:"publish_directory,omitempty" table:"-"`
	StaticImage      *string `json:"static_image,omitempty" table:"-"`

	// Docker configuration (JSON-only)
	Dockerfile               *string `json:"dockerfile,omitempty" table:"-"`
	DockerfileLocation       *string `json:"dockerfile_location,omitempty" table:"-"`
	DockerRegistryImageName  *string `json:"docker_registry_image_name,omitempty" table:"-"`
	DockerRegistryImageTag   *string `json:"docker_registry_image_tag,omitempty" table:"-"`
	DockerCompose            *string `json:"docker_compose,omitempty" table:"-"`
	DockerComposeRaw         *string `json:"docker_compose_raw,omitempty" table:"-"`
	DockerComposeLocation    *string `json:"docker_compose_location,omitempty" table:"-"`
	CustomDockerRunOptions   *string `json:"custom_docker_run_options,omitempty" table:"-"`
	CustomLabels             *string `json:"custom_labels,omitempty" table:"-"`
	CustomNginxConfiguration *string `json:"custom_nginx_configuration,omitempty" table:"-"`

	// Networking (JSON-only)
	PortsMappings      *string `json:"ports_mappings,omitempty" table:"-"`
	Domains            *string `json:"domains,omitempty" table:"-"`
	Redirect           *string `json:"redirect,omitempty" table:"-"`
	PreviewURLTemplate *string `json:"preview_url_template,omitempty" table:"-"`

	// Health checks (JSON-only)
	HealthCheckEnabled      *bool   `json:"health_check_enabled,omitempty" table:"-"`
	HealthCheckPath         *string `json:"health_check_path,omitempty" table:"-"`
	HealthCheckPort         *string `json:"health_check_port,omitempty" table:"-"`
	HealthCheckHost         *string `json:"health_check_host,omitempty" table:"-"`
	HealthCheckMethod       *string `json:"health_check_method,omitempty" table:"-"`
	HealthCheckScheme       *string `json:"health_check_scheme,omitempty" table:"-"`
	HealthCheckReturnCode   *int    `json:"health_check_return_code,omitempty" table:"-"`
	HealthCheckResponseText *string `json:"health_check_response_text,omitempty" table:"-"`
	HealthCheckInterval     *int    `json:"health_check_interval,omitempty" table:"-"`
	HealthCheckTimeout      *int    `json:"health_check_timeout,omitempty" table:"-"`
	HealthCheckRetries      *int    `json:"health_check_retries,omitempty" table:"-"`
	HealthCheckStartPeriod  *int    `json:"health_check_start_period,omitempty" table:"-"`

	// Resource limits (JSON-only)
	LimitsCPUs              *string `json:"limits_cpus,omitempty" table:"-"`
	LimitsCPUShares         *int    `json:"limits_cpu_shares,omitempty" table:"-"`
	LimitsCPUSet            *string `json:"limits_cpuset,omitempty" table:"-"`
	LimitsMemory            *string `json:"limits_memory,omitempty" table:"-"`
	LimitsMemoryReservation *string `json:"limits_memory_reservation,omitempty" table:"-"`
	LimitsMemorySwap        *string `json:"limits_memory_swap,omitempty" table:"-"`
	LimitsMemorySwappiness  *int    `json:"limits_memory_swappiness,omitempty" table:"-"`

	// Deployment hooks (JSON-only)
	PreDeploymentCommand           *string `json:"pre_deployment_command,omitempty" table:"-"`
	PreDeploymentCommandContainer  *string `json:"pre_deployment_command_container,omitempty" table:"-"`
	PostDeploymentCommand          *string `json:"post_deployment_command,omitempty" table:"-"`
	PostDeploymentCommandContainer *string `json:"post_deployment_command_container,omitempty" table:"-"`

	// Webhook secrets (JSON-only)
	ManualWebhookSecretGitHub    *string `json:"manual_webhook_secret_github,omitempty" table:"-" sensitive:"true"`
	ManualWebhookSecretGitLab    *string `json:"manual_webhook_secret_gitlab,omitempty" table:"-" sensitive:"true"`
	ManualWebhookSecretBitbucket *string `json:"manual_webhook_secret_bitbucket,omitempty" table:"-" sensitive:"true"`
	ManualWebhookSecretGitea     *string `json:"manual_webhook_secret_gitea,omitempty" table:"-" sensitive:"true"`

	// Misc (JSON-only)
	WatchPaths    *string `json:"watch_paths,omitempty" table:"-"`
	SwarmReplicas *int    `json:"swarm_replicas,omitempty" table:"-"`
	ConfigHash    *string `json:"config_hash,omitempty" table:"-"`

	// Nested settings (JSON-only)
	Settings *ApplicationSettings `json:"settings,omitempty" table:"-"`

	// Hidden fields (not in JSON or table output)
	ID            int    `json:"-" table:"-"`
	EnvironmentID *int   `json:"-" table:"-"`
	DestinationID *int   `json:"-" table:"-"`
	SourceID      *int   `json:"-" table:"-"`
	PrivateKeyID  *int   `json:"-" table:"-"`
	CreatedAt     string `json:"-" table:"-"`
	UpdatedAt     string `json:"-" table:"-"`
}

Application represents a Coolify application

type ApplicationCreateDeployKeyRequest added in v1.4.0

type ApplicationCreateDeployKeyRequest struct {
	// Required fields
	ProjectUUID    string `json:"project_uuid"`
	ServerUUID     string `json:"server_uuid"`
	PrivateKeyUUID string `json:"private_key_uuid"`
	GitRepository  string `json:"git_repository"`
	GitBranch      string `json:"git_branch"`
	BuildPack      string `json:"build_pack"`
	PortsExposes   string `json:"ports_exposes"`

	// Environment (one of these is required)
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`

	// Optional fields (same as public)
	Name                   *string `json:"name,omitempty"`
	Description            *string `json:"description,omitempty"`
	Domains                *string `json:"domains,omitempty"`
	InstantDeploy          *bool   `json:"instant_deploy,omitempty"`
	GitCommitSHA           *string `json:"git_commit_sha,omitempty"`
	DestinationUUID        *string `json:"destination_uuid,omitempty"`
	BuildCommand           *string `json:"build_command,omitempty"`
	StartCommand           *string `json:"start_command,omitempty"`
	InstallCommand         *string `json:"install_command,omitempty"`
	BaseDirectory          *string `json:"base_directory,omitempty"`
	PublishDirectory       *string `json:"publish_directory,omitempty"`
	PortsMappings          *string `json:"ports_mappings,omitempty"`
	CustomDockerRunOptions *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels           *string `json:"custom_labels,omitempty"`
	DockerfileTargetBuild  *string `json:"dockerfile_target_build,omitempty"`
	HealthCheckEnabled     *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath        *string `json:"health_check_path,omitempty"`
	HealthCheckPort        *string `json:"health_check_port,omitempty"`
	HealthCheckMethod      *string `json:"health_check_method,omitempty"`
	LimitsCPUs             *string `json:"limits_cpus,omitempty"`
	LimitsMemory           *string `json:"limits_memory,omitempty"`
}

ApplicationCreateDeployKeyRequest for POST /applications/private-deploy-key Creates an application from a private repository using SSH deploy key

type ApplicationCreateDockerImageRequest added in v1.4.0

type ApplicationCreateDockerImageRequest struct {
	// Required fields
	ProjectUUID             string `json:"project_uuid"`
	ServerUUID              string `json:"server_uuid"`
	DockerRegistryImageName string `json:"docker_registry_image_name"`
	PortsExposes            string `json:"ports_exposes"`

	// Environment (one of these is required)
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`

	// Optional fields
	Name                   *string `json:"name,omitempty"`
	Description            *string `json:"description,omitempty"`
	Domains                *string `json:"domains,omitempty"`
	InstantDeploy          *bool   `json:"instant_deploy,omitempty"`
	DestinationUUID        *string `json:"destination_uuid,omitempty"`
	DockerRegistryImageTag *string `json:"docker_registry_image_tag,omitempty"`
	PortsMappings          *string `json:"ports_mappings,omitempty"`
	CustomDockerRunOptions *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels           *string `json:"custom_labels,omitempty"`
	DockerfileTargetBuild  *string `json:"dockerfile_target_build,omitempty"`
	HealthCheckEnabled     *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath        *string `json:"health_check_path,omitempty"`
	HealthCheckPort        *string `json:"health_check_port,omitempty"`
	HealthCheckMethod      *string `json:"health_check_method,omitempty"`
	LimitsCPUs             *string `json:"limits_cpus,omitempty"`
	LimitsMemory           *string `json:"limits_memory,omitempty"`
}

ApplicationCreateDockerImageRequest for POST /applications/dockerimage Creates an application from a pre-built Docker image

type ApplicationCreateDockerfileRequest added in v1.4.0

type ApplicationCreateDockerfileRequest struct {
	// Required fields
	ProjectUUID string `json:"project_uuid"`
	ServerUUID  string `json:"server_uuid"`
	Dockerfile  string `json:"dockerfile"`

	// Environment (one of these is required)
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`

	// Optional fields
	Name                   *string `json:"name,omitempty"`
	Description            *string `json:"description,omitempty"`
	Domains                *string `json:"domains,omitempty"`
	InstantDeploy          *bool   `json:"instant_deploy,omitempty"`
	DestinationUUID        *string `json:"destination_uuid,omitempty"`
	PortsExposes           *string `json:"ports_exposes,omitempty"`
	PortsMappings          *string `json:"ports_mappings,omitempty"`
	CustomDockerRunOptions *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels           *string `json:"custom_labels,omitempty"`
	DockerfileTargetBuild  *string `json:"dockerfile_target_build,omitempty"`
	HealthCheckEnabled     *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath        *string `json:"health_check_path,omitempty"`
	HealthCheckPort        *string `json:"health_check_port,omitempty"`
	HealthCheckMethod      *string `json:"health_check_method,omitempty"`
	LimitsCPUs             *string `json:"limits_cpus,omitempty"`
	LimitsMemory           *string `json:"limits_memory,omitempty"`
}

ApplicationCreateDockerfileRequest for POST /applications/dockerfile Creates an application from a custom Dockerfile

type ApplicationCreateGitHubAppRequest added in v1.4.0

type ApplicationCreateGitHubAppRequest struct {
	// Required fields
	ProjectUUID   string `json:"project_uuid"`
	ServerUUID    string `json:"server_uuid"`
	GitHubAppUUID string `json:"github_app_uuid"`
	GitRepository string `json:"git_repository"`
	GitBranch     string `json:"git_branch"`
	BuildPack     string `json:"build_pack"`
	PortsExposes  string `json:"ports_exposes"`

	// Environment (one of these is required)
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`

	// Optional fields (same as public)
	Name                   *string `json:"name,omitempty"`
	Description            *string `json:"description,omitempty"`
	Domains                *string `json:"domains,omitempty"`
	InstantDeploy          *bool   `json:"instant_deploy,omitempty"`
	GitCommitSHA           *string `json:"git_commit_sha,omitempty"`
	DestinationUUID        *string `json:"destination_uuid,omitempty"`
	BuildCommand           *string `json:"build_command,omitempty"`
	StartCommand           *string `json:"start_command,omitempty"`
	InstallCommand         *string `json:"install_command,omitempty"`
	BaseDirectory          *string `json:"base_directory,omitempty"`
	PublishDirectory       *string `json:"publish_directory,omitempty"`
	PortsMappings          *string `json:"ports_mappings,omitempty"`
	CustomDockerRunOptions *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels           *string `json:"custom_labels,omitempty"`
	DockerfileTargetBuild  *string `json:"dockerfile_target_build,omitempty"`
	HealthCheckEnabled     *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath        *string `json:"health_check_path,omitempty"`
	HealthCheckPort        *string `json:"health_check_port,omitempty"`
	HealthCheckMethod      *string `json:"health_check_method,omitempty"`
	LimitsCPUs             *string `json:"limits_cpus,omitempty"`
	LimitsMemory           *string `json:"limits_memory,omitempty"`
}

ApplicationCreateGitHubAppRequest for POST /applications/private-github-app Creates an application from a private repository using GitHub App authentication

type ApplicationCreatePublicRequest added in v1.4.0

type ApplicationCreatePublicRequest struct {
	// Required fields
	ProjectUUID   string `json:"project_uuid"`
	ServerUUID    string `json:"server_uuid"`
	GitRepository string `json:"git_repository"`
	GitBranch     string `json:"git_branch"`
	BuildPack     string `json:"build_pack"` // nixpacks, static, dockerfile, dockercompose
	PortsExposes  string `json:"ports_exposes"`

	// Environment (one of these is required)
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`

	// Optional fields
	Name                   *string `json:"name,omitempty"`
	Description            *string `json:"description,omitempty"`
	Domains                *string `json:"domains,omitempty"`
	InstantDeploy          *bool   `json:"instant_deploy,omitempty"`
	GitCommitSHA           *string `json:"git_commit_sha,omitempty"`
	DestinationUUID        *string `json:"destination_uuid,omitempty"`
	BuildCommand           *string `json:"build_command,omitempty"`
	StartCommand           *string `json:"start_command,omitempty"`
	InstallCommand         *string `json:"install_command,omitempty"`
	BaseDirectory          *string `json:"base_directory,omitempty"`
	PublishDirectory       *string `json:"publish_directory,omitempty"`
	PortsMappings          *string `json:"ports_mappings,omitempty"`
	CustomDockerRunOptions *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels           *string `json:"custom_labels,omitempty"`
	DockerfileTargetBuild  *string `json:"dockerfile_target_build,omitempty"`

	// Health checks
	HealthCheckEnabled *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath    *string `json:"health_check_path,omitempty"`
	HealthCheckPort    *string `json:"health_check_port,omitempty"`
	HealthCheckMethod  *string `json:"health_check_method,omitempty"`

	// Resource limits
	LimitsCPUs   *string `json:"limits_cpus,omitempty"`
	LimitsMemory *string `json:"limits_memory,omitempty"`
}

ApplicationCreatePublicRequest for POST /applications/public Creates an application from a public git repository

type ApplicationInProject

type ApplicationInProject struct {
	ID          int     `json:"-" table:"-"`
	UUID        string  `json:"uuid"`
	Name        string  `json:"name"`
	Description *string `json:"description,omitempty"`
	Status      string  `json:"status"`
}

ApplicationInProject represents a simplified application within an environment

type ApplicationLifecycleResponse

type ApplicationLifecycleResponse struct {
	Message        string  `json:"message"`
	DeploymentUUID *string `json:"deployment_uuid,omitempty"`
}

ApplicationLifecycleResponse represents the response from lifecycle operations

type ApplicationListItem

type ApplicationListItem struct {
	UUID        string  `json:"uuid"`
	Name        string  `json:"name"`
	Description *string `json:"description,omitempty"`
	Status      string  `json:"status"`
	GitBranch   *string `json:"git_branch,omitempty"`
	FQDN        *string `json:"fqdn,omitempty"`
}

ApplicationListItem represents a simplified application for list view

type ApplicationLogsResponse

type ApplicationLogsResponse struct {
	Logs string `json:"logs"`
}

ApplicationLogsResponse represents the response from logs endpoint

type ApplicationSettings added in v1.5.0

type ApplicationSettings struct {
	ID                          int    `json:"-" table:"-"`
	ApplicationID               int    `json:"-" table:"-"`
	IsStatic                    *bool  `json:"is_static,omitempty"`
	IsBuildServerEnabled        *bool  `json:"is_build_server_enabled,omitempty"`
	IsPreserveRepositoryEnabled *bool  `json:"is_preserve_repository_enabled,omitempty"`
	IsAutoDeployEnabled         *bool  `json:"is_auto_deploy_enabled,omitempty"`
	IsForceHTTPSEnabled         *bool  `json:"is_force_https_enabled,omitempty"`
	IsDebugEnabled              *bool  `json:"is_debug_enabled,omitempty"`
	IsPreviewDeploymentsEnabled *bool  `json:"is_preview_deployments_enabled,omitempty"`
	IsGitSubmodulesEnabled      *bool  `json:"is_git_submodules_enabled,omitempty"`
	IsGitLFSEnabled             *bool  `json:"is_git_lfs_enabled,omitempty"`
	CreatedAt                   string `json:"-" table:"-"`
	UpdatedAt                   string `json:"-" table:"-"`
}

ApplicationSettings represents the settings for a Coolify application

type ApplicationUpdateRequest

type ApplicationUpdateRequest struct {
	Name             *string `json:"name,omitempty"`
	Description      *string `json:"description,omitempty"`
	GitBranch        *string `json:"git_branch,omitempty"`
	GitRepository    *string `json:"git_repository,omitempty"`
	GitCommitSHA     *string `json:"git_commit_sha,omitempty"`
	Domains          *string `json:"domains,omitempty"`
	BuildCommand     *string `json:"build_command,omitempty"`
	StartCommand     *string `json:"start_command,omitempty"`
	InstallCommand   *string `json:"install_command,omitempty"`
	BaseDirectory    *string `json:"base_directory,omitempty"`
	PublishDirectory *string `json:"publish_directory,omitempty"`
	BuildPack        *string `json:"build_pack,omitempty"`
	PortsExposes     *string `json:"ports_exposes,omitempty"`
	PortsMappings    *string `json:"ports_mappings,omitempty"`

	// Docker configuration
	Dockerfile              *string `json:"dockerfile,omitempty"`
	DockerfileTargetBuild   *string `json:"dockerfile_target_build,omitempty"`
	DockerRegistryImageName *string `json:"docker_registry_image_name,omitempty"`
	DockerRegistryImageTag  *string `json:"docker_registry_image_tag,omitempty"`
	CustomDockerRunOptions  *string `json:"custom_docker_run_options,omitempty"`
	CustomLabels            *string `json:"custom_labels,omitempty"`

	// Health checks
	HealthCheckEnabled      *bool   `json:"health_check_enabled,omitempty"`
	HealthCheckPath         *string `json:"health_check_path,omitempty"`
	HealthCheckPort         *string `json:"health_check_port,omitempty"`
	HealthCheckHost         *string `json:"health_check_host,omitempty"`
	HealthCheckMethod       *string `json:"health_check_method,omitempty"`
	HealthCheckScheme       *string `json:"health_check_scheme,omitempty"`
	HealthCheckReturnCode   *int    `json:"health_check_return_code,omitempty"`
	HealthCheckResponseText *string `json:"health_check_response_text,omitempty"`
	HealthCheckInterval     *int    `json:"health_check_interval,omitempty"`
	HealthCheckTimeout      *int    `json:"health_check_timeout,omitempty"`
	HealthCheckRetries      *int    `json:"health_check_retries,omitempty"`
	HealthCheckStartPeriod  *int    `json:"health_check_start_period,omitempty"`

	// Resource limits
	LimitsCPUs              *string `json:"limits_cpus,omitempty"`
	LimitsCPUShares         *int    `json:"limits_cpu_shares,omitempty"`
	LimitsCPUSet            *string `json:"limits_cpuset,omitempty"`
	LimitsMemory            *string `json:"limits_memory,omitempty"`
	LimitsMemoryReservation *string `json:"limits_memory_reservation,omitempty"`
	LimitsMemorySwap        *string `json:"limits_memory_swap,omitempty"`
	LimitsMemorySwappiness  *int    `json:"limits_memory_swappiness,omitempty"`

	// Deployment hooks
	PreDeploymentCommand           *string `json:"pre_deployment_command,omitempty"`
	PreDeploymentCommandContainer  *string `json:"pre_deployment_command_container,omitempty"`
	PostDeploymentCommand          *string `json:"post_deployment_command,omitempty"`
	PostDeploymentCommandContainer *string `json:"post_deployment_command_container,omitempty"`

	// Misc
	Redirect   *string `json:"redirect,omitempty"`
	WatchPaths *string `json:"watch_paths,omitempty"`
	IsStatic   *bool   `json:"is_static,omitempty"`
}

ApplicationUpdateRequest represents the request to update an application All fields are optional - only provided fields will be updated

type Database

type Database struct {
	ID          int     `json:"-" table:"-"`
	UUID        string  `json:"uuid"`
	Name        string  `json:"name"`
	Description *string `json:"description,omitempty"`
	Image       *string `json:"image,omitempty"`
	Status      string  `json:"status"`
	Type        string  `json:"type"` // postgresql, mysql, mongodb, redis, etc.

	// Network configuration
	IsPublic   *bool `json:"is_public,omitempty"`
	PublicPort *int  `json:"public_port,omitempty"`

	// Resource limits (hidden from CLI output)
	LimitsMemory            *string `json:"limits_memory,omitempty" table:"-"`
	LimitsMemorySwap        *string `json:"limits_memory_swap,omitempty" table:"-"`
	LimitsMemorySwappiness  *int    `json:"limits_memory_swappiness,omitempty" table:"-"`
	LimitsMemoryReservation *string `json:"limits_memory_reservation,omitempty" table:"-"`
	LimitsCpus              *string `json:"limits_cpus,omitempty" table:"-"`
	LimitsCpuset            *string `json:"limits_cpuset,omitempty" table:"-"`
	LimitsCPUShares         *int    `json:"limits_cpu_shares,omitempty" table:"-"`

	// PostgreSQL specific
	PostgresUser           *string `json:"postgres_user,omitempty" table:"-"`
	PostgresPassword       *string `json:"postgres_password,omitempty" table:"-"`
	PostgresDB             *string `json:"postgres_db,omitempty" table:"-"`
	PostgresInitdbArgs     *string `json:"postgres_initdb_args,omitempty" table:"-"`
	PostgresHostAuthMethod *string `json:"postgres_host_auth_method,omitempty" table:"-"`
	PostgresConf           *string `json:"postgres_conf,omitempty" table:"-"`

	// MySQL specific
	MysqlRootPassword *string `json:"mysql_root_password,omitempty" table:"-"`
	MysqlPassword     *string `json:"mysql_password,omitempty" table:"-"`
	MysqlUser         *string `json:"mysql_user,omitempty" table:"-"`
	MysqlDatabase     *string `json:"mysql_database,omitempty" table:"-"`
	MysqlConf         *string `json:"mysql_conf,omitempty" table:"-"`

	// MariaDB specific
	MariadbRootPassword *string `json:"mariadb_root_password,omitempty" table:"-"`
	MariadbPassword     *string `json:"mariadb_password,omitempty" table:"-"`
	MariadbUser         *string `json:"mariadb_user,omitempty" table:"-"`
	MariadbDatabase     *string `json:"mariadb_database,omitempty" table:"-"`
	MariadbConf         *string `json:"mariadb_conf,omitempty" table:"-"`

	// MongoDB specific
	MongoInitdbRootUsername *string `json:"mongo_initdb_root_username,omitempty" table:"-"`
	MongoInitdbRootPassword *string `json:"mongo_initdb_root_password,omitempty" table:"-"`
	MongoInitdbDatabase     *string `json:"mongo_initdb_database,omitempty" table:"-"`
	MongoConf               *string `json:"mongo_conf,omitempty" table:"-"`

	// Redis specific
	RedisPassword *string `json:"redis_password,omitempty" table:"-"`
	RedisConf     *string `json:"redis_conf,omitempty" table:"-"`

	// KeyDB specific
	KeydbPassword *string `json:"keydb_password,omitempty" table:"-"`
	KeydbConf     *string `json:"keydb_conf,omitempty" table:"-"`

	// Clickhouse specific
	ClickhouseAdminUser     *string `json:"clickhouse_admin_user,omitempty" table:"-"`
	ClickhouseAdminPassword *string `json:"clickhouse_admin_password,omitempty" table:"-"`

	// Dragonfly specific
	DragonflyPassword *string `json:"dragonfly_password,omitempty" table:"-"`

	// Relationship IDs - internal database IDs (hidden from output)
	ServerID      *int `json:"-" table:"-"`
	EnvironmentID *int `json:"-" table:"-"`
	ProjectID     *int `json:"-" table:"-"`

	// Metadata
	CreatedAt string `json:"-" table:"-"`
	UpdatedAt string `json:"-" table:"-"`
}

Database represents a standalone Coolify database

type DatabaseBackup

type DatabaseBackup struct {
	ID                                       int     `json:"-" table:"-"`
	UUID                                     string  `json:"uuid"`
	Description                              *string `json:"description,omitempty"`
	Enabled                                  *bool   `json:"enabled,omitempty"`
	Frequency                                *string `json:"frequency,omitempty"`
	SaveS3                                   *bool   `json:"save_s3,omitempty"`
	S3StorageID                              *int    `json:"-" table:"-"`
	DatabasesToBackup                        *string `json:"databases_to_backup,omitempty"`
	DumpAll                                  *bool   `json:"dump_all,omitempty"`
	DatabaseBackupRetentionAmountLocally     *int    `json:"database_backup_retention_amount_locally,omitempty"`
	DatabaseBackupRetentionDaysLocally       *int    `json:"database_backup_retention_days_locally,omitempty"`
	DatabaseBackupRetentionMaxStorageLocally *string `json:"database_backup_retention_max_storage_locally,omitempty"`
	DatabaseBackupRetentionAmountS3          *int    `json:"database_backup_retention_amount_s3,omitempty"`
	DatabaseBackupRetentionDaysS3            *int    `json:"database_backup_retention_days_s3,omitempty"`
	DatabaseBackupRetentionMaxStorageS3      *string `json:"database_backup_retention_max_storage_s3,omitempty"`
	DatabaseType                             *string `json:"database_type,omitempty" table:"-"`
	DatabaseID                               *int    `json:"-" table:"-"`
	TeamID                                   *int    `json:"-" table:"-"`
	Timeout                                  *int    `json:"timeout,omitempty"`
	DisableLocalBackup                       *bool   `json:"disable_local_backup,omitempty"`
	CreatedAt                                string  `json:"-" table:"-"`
	UpdatedAt                                string  `json:"-" table:"-"`
}

DatabaseBackup represents a scheduled database backup configuration

type DatabaseBackupCreateRequest

type DatabaseBackupCreateRequest struct {
	Frequency                                *string `json:"frequency,omitempty"`
	Enabled                                  *bool   `json:"enabled,omitempty"`
	SaveS3                                   *bool   `json:"save_s3,omitempty"`
	S3StorageUUID                            *string `json:"s3_storage_uuid,omitempty"`
	DatabasesToBackup                        *string `json:"databases_to_backup,omitempty"`
	DumpAll                                  *bool   `json:"dump_all,omitempty"`
	DatabaseBackupRetentionAmountLocally     *int    `json:"database_backup_retention_amount_locally,omitempty"`
	DatabaseBackupRetentionDaysLocally       *int    `json:"database_backup_retention_days_locally,omitempty"`
	DatabaseBackupRetentionMaxStorageLocally *string `json:"database_backup_retention_max_storage_locally,omitempty"`
	DatabaseBackupRetentionAmountS3          *int    `json:"database_backup_retention_amount_s3,omitempty"`
	DatabaseBackupRetentionDaysS3            *int    `json:"database_backup_retention_days_s3,omitempty"`
	DatabaseBackupRetentionMaxStorageS3      *string `json:"database_backup_retention_max_storage_s3,omitempty"`
	Timeout                                  *int    `json:"timeout,omitempty"`
	DisableLocalBackup                       *bool   `json:"disable_local_backup,omitempty"`
}

DatabaseBackupCreateRequest represents the request to create a backup configuration

type DatabaseBackupExecution

type DatabaseBackupExecution struct {
	UUID      string  `json:"uuid"`
	Filename  *string `json:"filename,omitempty"`
	Size      *int    `json:"size,omitempty"`
	Status    *string `json:"status,omitempty"`
	Message   *string `json:"message,omitempty"`
	CreatedAt string  `json:"-" table:"-"`
}

DatabaseBackupExecution represents a single backup execution

type DatabaseBackupExecutionsResponse

type DatabaseBackupExecutionsResponse struct {
	Executions []DatabaseBackupExecution `json:"executions"`
}

DatabaseBackupExecutionsResponse represents the response containing backup executions

type DatabaseBackupResponse

type DatabaseBackupResponse struct {
	Message string `json:"message"`
}

DatabaseBackupResponse represents a generic backup operation response

type DatabaseBackupUpdateRequest

type DatabaseBackupUpdateRequest struct {
	SaveS3                                   *bool   `json:"save_s3,omitempty"`
	S3StorageUUID                            *string `json:"s3_storage_uuid,omitempty"`
	BackupNow                                *bool   `json:"backup_now,omitempty"`
	Enabled                                  *bool   `json:"enabled,omitempty"`
	DatabasesToBackup                        *string `json:"databases_to_backup,omitempty"`
	DumpAll                                  *bool   `json:"dump_all,omitempty"`
	Frequency                                *string `json:"frequency,omitempty"`
	DatabaseBackupRetentionAmountLocally     *int    `json:"database_backup_retention_amount_locally,omitempty"`
	DatabaseBackupRetentionDaysLocally       *int    `json:"database_backup_retention_days_locally,omitempty"`
	DatabaseBackupRetentionMaxStorageLocally *int    `json:"database_backup_retention_max_storage_locally,omitempty"`
	DatabaseBackupRetentionAmountS3          *int    `json:"database_backup_retention_amount_s3,omitempty"`
	DatabaseBackupRetentionDaysS3            *int    `json:"database_backup_retention_days_s3,omitempty"`
	DatabaseBackupRetentionMaxStorageS3      *int    `json:"database_backup_retention_max_storage_s3,omitempty"`
}

DatabaseBackupUpdateRequest represents the request to update a backup configuration

type DatabaseCreateRequest

type DatabaseCreateRequest struct {
	ServerUUID      string  `json:"server_uuid"`
	ProjectUUID     string  `json:"project_uuid"`
	EnvironmentName *string `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment_uuid,omitempty"`
	DestinationUUID *string `json:"destination_uuid,omitempty"`
	InstantDeploy   *bool   `json:"instant_deploy,omitempty"`

	// Common fields
	Name        *string `json:"name,omitempty"`
	Description *string `json:"description,omitempty"`
	Image       *string `json:"image,omitempty"`
	IsPublic    *bool   `json:"is_public,omitempty"`
	PublicPort  *int    `json:"public_port,omitempty"`

	// Resource limits (hidden from CLI output)
	LimitsMemory            *string `json:"limits_memory,omitempty" table:"-"`
	LimitsMemorySwap        *string `json:"limits_memory_swap,omitempty" table:"-"`
	LimitsMemorySwappiness  *int    `json:"limits_memory_swappiness,omitempty" table:"-"`
	LimitsMemoryReservation *string `json:"limits_memory_reservation,omitempty" table:"-"`
	LimitsCpus              *string `json:"limits_cpus,omitempty" table:"-"`
	LimitsCpuset            *string `json:"limits_cpuset,omitempty" table:"-"`
	LimitsCPUShares         *int    `json:"limits_cpu_shares,omitempty" table:"-"`

	// PostgreSQL specific
	PostgresUser           *string `json:"postgres_user,omitempty"`
	PostgresPassword       *string `json:"postgres_password,omitempty"`
	PostgresDB             *string `json:"postgres_db,omitempty" table:"-"`
	PostgresInitdbArgs     *string `json:"postgres_initdb_args,omitempty"`
	PostgresHostAuthMethod *string `json:"postgres_host_auth_method,omitempty"`
	PostgresConf           *string `json:"postgres_conf,omitempty"`

	// MySQL specific
	MysqlRootPassword *string `json:"mysql_root_password,omitempty"`
	MysqlPassword     *string `json:"mysql_password,omitempty"`
	MysqlUser         *string `json:"mysql_user,omitempty"`
	MysqlDatabase     *string `json:"mysql_database,omitempty" table:"-"`
	MysqlConf         *string `json:"mysql_conf,omitempty"`

	// MariaDB specific
	MariadbRootPassword *string `json:"mariadb_root_password,omitempty"`
	MariadbPassword     *string `json:"mariadb_password,omitempty"`
	MariadbUser         *string `json:"mariadb_user,omitempty"`
	MariadbDatabase     *string `json:"mariadb_database,omitempty" table:"-"`
	MariadbConf         *string `json:"mariadb_conf,omitempty"`

	// MongoDB specific
	MongoInitdbRootUsername *string `json:"mongo_initdb_root_username,omitempty"`
	MongoInitdbRootPassword *string `json:"mongo_initdb_root_password,omitempty"`
	MongoInitdbDatabase     *string `json:"mongo_initdb_database,omitempty" table:"-"`
	MongoConf               *string `json:"mongo_conf,omitempty"`

	// Redis specific
	RedisPassword *string `json:"redis_password,omitempty"`
	RedisConf     *string `json:"redis_conf,omitempty"`

	// KeyDB specific
	KeydbPassword *string `json:"keydb_password,omitempty"`
	KeydbConf     *string `json:"keydb_conf,omitempty"`

	// Clickhouse specific
	ClickhouseAdminUser     *string `json:"clickhouse_admin_user,omitempty"`
	ClickhouseAdminPassword *string `json:"clickhouse_admin_password,omitempty"`

	// Dragonfly specific
	DragonflyPassword *string `json:"dragonfly_password,omitempty"`
}

DatabaseCreateRequest represents the base request to create a database

type DatabaseEnvBulkUpdateRequest added in v1.5.0

type DatabaseEnvBulkUpdateRequest struct {
	Data []DatabaseEnvironmentVariableCreateRequest `json:"data"`
}

DatabaseEnvBulkUpdateRequest represents the request to bulk update database environment variables

type DatabaseEnvBulkUpdateResponse added in v1.5.0

type DatabaseEnvBulkUpdateResponse []DatabaseEnvironmentVariable

DatabaseEnvBulkUpdateResponse represents the response from database bulk update

type DatabaseEnvironmentVariable added in v1.5.0

type DatabaseEnvironmentVariable struct {
	ID             int     `json:"-" table:"-"`
	UUID           string  `json:"uuid"`
	Key            string  `json:"key"`
	Value          string  `json:"value" sensitive:"true"`
	IsBuildTime    bool    `json:"is_buildtime"`
	IsLiteralValue bool    `json:"is_literal"`
	IsShownOnce    bool    `json:"is_shown_once"`
	IsRuntime      bool    `json:"is_runtime"`
	IsShared       bool    `json:"is_shared"`
	Comment        *string `json:"comment,omitempty"`
	RealValue      *string `json:"real_value,omitempty" sensitive:"true"`
	DatabaseID     *int    `json:"-" table:"-"`
	CreatedAt      string  `json:"-" table:"-"`
	UpdatedAt      string  `json:"-" table:"-"`
}

DatabaseEnvironmentVariable represents an environment variable for a database

type DatabaseEnvironmentVariableCreateRequest added in v1.5.0

type DatabaseEnvironmentVariableCreateRequest struct {
	Key         string  `json:"key"`
	Value       string  `json:"value"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsShownOnce *bool   `json:"is_shown_once,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

DatabaseEnvironmentVariableCreateRequest represents the request to create a database environment variable

type DatabaseEnvironmentVariableUpdateRequest added in v1.5.0

type DatabaseEnvironmentVariableUpdateRequest struct {
	Key         *string `json:"key,omitempty"`
	Value       *string `json:"value,omitempty"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsShownOnce *bool   `json:"is_shown_once,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

DatabaseEnvironmentVariableUpdateRequest represents the request to update a database environment variable

type DatabaseLifecycleResponse

type DatabaseLifecycleResponse struct {
	Message string `json:"message"`
}

DatabaseLifecycleResponse represents the response from lifecycle operations

type DatabaseUpdateRequest

type DatabaseUpdateRequest struct {
	Name        *string `json:"name,omitempty"`
	Image       *string `json:"image,omitempty"`
	Description *string `json:"description,omitempty"`
	IsPublic    *bool   `json:"is_public,omitempty"`
	PublicPort  *int    `json:"public_port,omitempty"`

	// Resource limits
	LimitsMemory *string `json:"limits_memory,omitempty"`
	LimitsCpus   *string `json:"limits_cpus,omitempty"`
}

DatabaseUpdateRequest represents the request to update a database Only common configuration fields that make sense to update after creation

type DeployRequest added in v1.6.0

type DeployRequest struct {
	UUID          string  `json:"uuid"`
	Force         *bool   `json:"force,omitempty"`
	PullRequestID *int    `json:"pull_request_id,omitempty"`
	DockerTag     *string `json:"docker_tag,omitempty"`
}

DeployRequest represents the request to trigger a deployment.

type DeployResponse

type DeployResponse struct {
	Message        string `json:"message"`
	DeploymentUUID string `json:"deployment_uuid,omitempty"`
}

DeployResponse wraps deployment trigger responses

type Deployment

type Deployment struct {
	ID              int     `json:"id" table:"-"`
	UUID            string  `json:"deployment_uuid"`
	ApplicationID   *string `json:"application_id,omitempty" table:"-"`
	ApplicationName *string `json:"application_name,omitempty"`
	ServerName      *string `json:"server_name,omitempty"`
	Status          string  `json:"status"`
	Commit          *string `json:"commit,omitempty"`
	CommitMessage   *string `json:"commit_message,omitempty" table:"-"`
	// Additional fields from API that we want to ignore
	DeploymentURL *string `json:"deployment_url,omitempty" table:"-"`
	FinishedAt    *string `json:"finished_at,omitempty" table:"-"`
	Logs          *string `json:"logs,omitempty" table:"-"`
	CreatedAt     *string `json:"created_at,omitempty" table:"-"`
	UpdatedAt     *string `json:"updated_at,omitempty" table:"-"`
}

Deployment represents a deployment operation

type Domain

type Domain struct {
	IP      string   `json:"ip"`
	Domains []string `json:"domains"`
}

Domain represents a domain configuration

type Environment

type Environment struct {
	ID           int                    `json:"-" table:"-"`
	UUID         string                 `json:"uuid"`
	Name         string                 `json:"name"`
	Description  *string                `json:"description,omitempty"`
	Applications []ApplicationInProject `json:"applications,omitempty"`
	CreatedAt    string                 `json:"-" table:"-"`
	UpdatedAt    string                 `json:"-" table:"-"`
}

Environment within a project

type EnvironmentVariable

type EnvironmentVariable struct {
	ID             int     `json:"-" table:"-"`
	UUID           string  `json:"uuid"`
	Key            string  `json:"key"`
	Value          string  `json:"value" sensitive:"true"`
	IsBuildTime    bool    `json:"is_buildtime"`
	IsPreview      bool    `json:"is_preview"`
	IsLiteralValue bool    `json:"is_literal"`
	IsShownOnce    bool    `json:"is_shown_once"`
	IsRuntime      bool    `json:"is_runtime"`
	IsShared       bool    `json:"is_shared"`
	Comment        *string `json:"comment,omitempty"`
	RealValue      *string `json:"real_value,omitempty" sensitive:"true"`
	ApplicationID  *int    `json:"-" table:"-"`
	CreatedAt      string  `json:"-" table:"-"`
	UpdatedAt      string  `json:"-" table:"-"`
}

EnvironmentVariable represents an environment variable for an application

type EnvironmentVariableCreateRequest

type EnvironmentVariableCreateRequest struct {
	Key         string  `json:"key"`
	Value       string  `json:"value"`
	IsBuildTime *bool   `json:"is_build_time,omitempty"`
	IsPreview   *bool   `json:"is_preview,omitempty"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsRuntime   *bool   `json:"is_runtime,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

EnvironmentVariableCreateRequest represents the request to create an environment variable

type EnvironmentVariableUpdateRequest

type EnvironmentVariableUpdateRequest struct {
	Key         *string `json:"key,omitempty"`
	Value       *string `json:"value,omitempty"`
	IsBuildTime *bool   `json:"is_build_time,omitempty"`
	IsPreview   *bool   `json:"is_preview,omitempty"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsRuntime   *bool   `json:"is_runtime,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

EnvironmentVariableUpdateRequest represents the request to update an environment variable

type FileStorage added in v1.5.0

type FileStorage struct {
	ID                     int     `json:"id"`
	UUID                   string  `json:"uuid"`
	FsPath                 string  `json:"fs_path"`
	MountPath              string  `json:"mount_path"`
	Content                *string `json:"content,omitempty"`
	IsDirectory            bool    `json:"is_directory"`
	IsBasedOnGit           bool    `json:"is_based_on_git"`
	IsPreviewSuffixEnabled bool    `json:"is_preview_suffix_enabled"`
	Chown                  *string `json:"chown,omitempty"`
	Chmod                  *string `json:"chmod,omitempty"`
	ResourceType           string  `json:"resource_type" table:"-"`
	ResourceID             int     `json:"resource_id" table:"-"`
}

FileStorage represents a file storage for an application

type GitHubApp

type GitHubApp struct {
	ID             int     `json:"id" table:"-"`
	UUID           string  `json:"uuid"`
	Name           string  `json:"name"`
	Organization   *string `json:"organization,omitempty"`
	APIURL         string  `json:"api_url"`
	HTMLURL        string  `json:"html_url"`
	CustomUser     string  `json:"custom_user"`
	CustomPort     int     `json:"custom_port"`
	AppID          int     `json:"app_id" table:"-"`
	InstallationID int     `json:"installation_id" table:"-"`
	ClientID       string  `json:"client_id" table:"-"`
	PrivateKeyID   int     `json:"private_key_id" table:"-"`
	IsSystemWide   bool    `json:"is_system_wide" table:"-"`
	TeamID         int     `json:"team_id" table:"-"`
}

GitHubApp represents a GitHub App integration

type GitHubAppCreateRequest

type GitHubAppCreateRequest struct {
	Name           string  `json:"name"`
	Organization   *string `json:"organization,omitempty"`
	APIURL         string  `json:"api_url"`
	HTMLURL        string  `json:"html_url"`
	CustomUser     *string `json:"custom_user,omitempty"`
	CustomPort     *int    `json:"custom_port,omitempty"`
	AppID          int     `json:"app_id"`
	InstallationID int     `json:"installation_id"`
	ClientID       string  `json:"client_id"`
	ClientSecret   string  `json:"client_secret" sensitive:"true"`
	WebhookSecret  *string `json:"webhook_secret,omitempty" sensitive:"true"`
	PrivateKeyUUID string  `json:"private_key_uuid"`
	IsSystemWide   *bool   `json:"is_system_wide,omitempty"`
}

GitHubAppCreateRequest represents a request to create a GitHub App

type GitHubAppUpdateRequest

type GitHubAppUpdateRequest struct {
	Name           *string `json:"name,omitempty"`
	Organization   *string `json:"organization,omitempty"`
	APIURL         *string `json:"api_url,omitempty"`
	HTMLURL        *string `json:"html_url,omitempty"`
	CustomUser     *string `json:"custom_user,omitempty"`
	CustomPort     *int    `json:"custom_port,omitempty"`
	AppID          *int    `json:"app_id,omitempty"`
	InstallationID *int    `json:"installation_id,omitempty"`
	ClientID       *string `json:"client_id,omitempty"`
	ClientSecret   *string `json:"client_secret,omitempty" sensitive:"true"`
	WebhookSecret  *string `json:"webhook_secret,omitempty" sensitive:"true"`
	PrivateKeyUUID *string `json:"private_key_uuid,omitempty"`
	IsSystemWide   *bool   `json:"is_system_wide,omitempty"`
}

GitHubAppUpdateRequest represents a request to update a GitHub App

type GitHubBranch

type GitHubBranch struct {
	Name      string `json:"name"`
	Protected bool   `json:"protected"`
}

GitHubBranch represents a branch from GitHub

type GitHubRepository

type GitHubRepository struct {
	ID       int    `json:"id"`
	Name     string `json:"name"`
	FullName string `json:"full_name"`
	Private  bool   `json:"private"`
	HTMLURL  string `json:"html_url"`
	CloneURL string `json:"clone_url"`
}

GitHubRepository represents a repository from GitHub

type LogEntry

type LogEntry struct {
	Command   *string `json:"command"`
	Output    string  `json:"output"`
	Type      string  `json:"type"`
	Timestamp string  `json:"timestamp"`
	Hidden    bool    `json:"hidden"`
	Batch     int     `json:"batch"`
	Order     int     `json:"order,omitempty"`
}

LogEntry represents a single log entry from a deployment

type PersistentStorage added in v1.5.0

type PersistentStorage struct {
	ID                     int     `json:"id" table:"-"`
	UUID                   string  `json:"uuid"`
	Name                   string  `json:"name"`
	MountPath              string  `json:"mount_path"`
	HostPath               *string `json:"host_path,omitempty"`
	IsPreviewSuffixEnabled bool    `json:"is_preview_suffix_enabled"`
	IsReadOnly             bool    `json:"is_readonly"`
	ResourceType           string  `json:"resource_type" table:"-"`
	ResourceID             int     `json:"resource_id" table:"-"`
}

PersistentStorage represents a persistent volume for an application

type PrivateKey

type PrivateKey struct {
	ID         int    `json:"-" table:"-"`
	UUID       string `json:"uuid"`
	Name       string `json:"name"`
	PublicKey  string `json:"public_key" sensitive:"true"`
	PrivateKey string `json:"private_key" sensitive:"true"`
}

PrivateKey represents an SSH private key

type PrivateKeyCreateRequest

type PrivateKeyCreateRequest struct {
	Name       string `json:"name"`
	PrivateKey string `json:"private_key"`
}

PrivateKeyCreateRequest for creating keys

type Project

type Project struct {
	UUID         string        `json:"uuid"`
	Name         string        `json:"name"`
	Description  *string       `json:"description,omitempty"`
	Environments []Environment `json:"environments,omitempty"`
}

Project represents a Coolify project

type ProjectCreateRequest

type ProjectCreateRequest struct {
	Name        string  `json:"name"`
	Description *string `json:"description,omitempty"`
}

ProjectCreateRequest for creating projects

type Resource

type Resource struct {
	ID     int    `json:"-" table:"-"`
	UUID   string `json:"uuid"`
	Name   string `json:"name"`
	Type   string `json:"type"`
	Status string `json:"status"`
}

Resource represents any deployable resource

type Resources

type Resources struct {
	Resources []Resource `json:"resources"`
}

Resources wraps a list of resources

type Response

type Response struct {
	Message string `json:"message,omitempty"`
	Error   string `json:"error,omitempty"`
	UUID    string `json:"uuid,omitempty"`
}

Response wraps common API response fields

type Server

type Server struct {
	ID       int      `json:"-" table:"-"`
	UUID     string   `json:"uuid"`
	Name     string   `json:"name"`
	IP       string   `json:"ip" sensitive:"true"`
	User     string   `json:"user" sensitive:"true"`
	Port     int      `json:"port" sensitive:"true"`
	Settings Settings `json:"settings" table:"-"`
}

Server represents a Coolify server

type ServerCreateRequest

type ServerCreateRequest struct {
	Name            string `json:"name"`
	IP              string `json:"ip"`
	Port            int    `json:"port"`
	User            string `json:"user"`
	PrivateKeyUUID  string `json:"private_key_uuid"`
	InstantValidate bool   `json:"instant_validate"`
}

ServerCreateRequest for creating servers

type Service

type Service struct {
	ID          int     `json:"-" table:"-"`
	UUID        string  `json:"uuid"`
	Name        string  `json:"name"`
	Description *string `json:"description,omitempty"`
	Status      string  `json:"status"`

	// Relationship IDs - internal database IDs (hidden from output)
	ServerID      *int `json:"-" table:"-"`
	EnvironmentID *int `json:"-" table:"-"`
	ProjectID     *int `json:"-" table:"-"`

	// Docker configuration (hidden from table output)
	DockerCompose    *string `json:"docker_compose,omitempty" table:"-"`
	DockerComposeRaw *string `json:"docker_compose_raw,omitempty" table:"-"`

	// Additional metadata
	CreatedAt string `json:"-" table:"-"`
	UpdatedAt string `json:"-" table:"-"`

	// Nested resources
	Applications []ServiceApplication `json:"applications,omitempty"`
	Databases    []ServiceDatabase    `json:"databases,omitempty"`
}

Service represents a Coolify one-click service

type ServiceApplication

type ServiceApplication struct {
	ID     int     `json:"-" table:"-"`
	UUID   string  `json:"uuid"`
	Name   string  `json:"name"`
	Status *string `json:"status,omitempty"`
	Fqdn   *string `json:"fqdn,omitempty"`
}

ServiceApplication represents an application within a service

type ServiceCreateRequest

type ServiceCreateRequest struct {
	Type            string  `json:"type"`
	Name            *string `json:"name,omitempty"`
	Description     *string `json:"description,omitempty"`
	ServerUUID      string  `json:"server_uuid"`
	ProjectUUID     string  `json:"project_uuid"`
	EnvironmentName string  `json:"environment_name,omitempty"`
	EnvironmentUUID *string `json:"environment,omitempty"`
	InstantDeploy   *bool   `json:"instant_deploy,omitempty"`
	DockerCompose   *string `json:"docker_compose,omitempty"`
	Destination     *string `json:"destination,omitempty"`
}

ServiceCreateRequest represents the request to create a service

type ServiceDatabase

type ServiceDatabase struct {
	ID     int     `json:"-" table:"-"`
	UUID   string  `json:"uuid"`
	Name   string  `json:"name"`
	Type   *string `json:"type,omitempty"`
	Status *string `json:"status,omitempty"`
}

ServiceDatabase represents a database within a service

type ServiceEnvBulkUpdateRequest added in v1.3.0

type ServiceEnvBulkUpdateRequest struct {
	Data []ServiceEnvironmentVariableCreateRequest `json:"data"`
}

ServiceEnvBulkUpdateRequest represents the request to bulk update service environment variables

type ServiceEnvBulkUpdateResponse added in v1.3.0

type ServiceEnvBulkUpdateResponse []ServiceEnvironmentVariable

ServiceEnvBulkUpdateResponse represents the response from service bulk update

type ServiceEnvironmentVariable added in v1.3.0

type ServiceEnvironmentVariable struct {
	ID             int     `json:"-" table:"-"`
	UUID           string  `json:"uuid"`
	Key            string  `json:"key"`
	Value          string  `json:"value" sensitive:"true"`
	IsBuildTime    bool    `json:"is_buildtime"`
	IsLiteralValue bool    `json:"is_literal"`
	IsShownOnce    bool    `json:"is_shown_once"`
	IsRuntime      bool    `json:"is_runtime"`
	IsShared       bool    `json:"is_shared"`
	Comment        *string `json:"comment,omitempty"`
	RealValue      *string `json:"real_value,omitempty" sensitive:"true"`
	ServiceID      *int    `json:"-" table:"-"`
	CreatedAt      string  `json:"-" table:"-"`
	UpdatedAt      string  `json:"-" table:"-"`
}

ServiceEnvironmentVariable represents an environment variable for a service Services don't have preview deployments, so IsPreview is excluded from output

type ServiceEnvironmentVariableCreateRequest added in v1.3.0

type ServiceEnvironmentVariableCreateRequest struct {
	Key         string  `json:"key"`
	Value       string  `json:"value"`
	IsBuildTime *bool   `json:"is_build_time,omitempty"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsRuntime   *bool   `json:"is_runtime,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

ServiceEnvironmentVariableCreateRequest represents the request to create a service environment variable

type ServiceEnvironmentVariableUpdateRequest added in v1.3.0

type ServiceEnvironmentVariableUpdateRequest struct {
	Key         *string `json:"key,omitempty"`
	Value       *string `json:"value,omitempty"`
	IsBuildTime *bool   `json:"is_build_time,omitempty"`
	IsLiteral   *bool   `json:"is_literal,omitempty"`
	IsMultiline *bool   `json:"is_multiline,omitempty"`
	IsRuntime   *bool   `json:"is_runtime,omitempty"`
	Comment     *string `json:"comment,omitempty"`
}

ServiceEnvironmentVariableUpdateRequest represents the request to update a service environment variable

type ServiceLifecycleResponse

type ServiceLifecycleResponse struct {
	Message string `json:"message"`
}

ServiceLifecycleResponse represents the response from lifecycle operations

type ServiceStorageCreateRequest added in v1.5.0

type ServiceStorageCreateRequest struct {
	Type         string  `json:"type"`          // "persistent" or "file"
	MountPath    string  `json:"mount_path"`    // required
	ResourceUUID string  `json:"resource_uuid"` // required for services
	Name         *string `json:"name,omitempty"`
	HostPath     *string `json:"host_path,omitempty"`
	Content      *string `json:"content,omitempty"`
	IsDirectory  *bool   `json:"is_directory,omitempty"`
	FsPath       *string `json:"fs_path,omitempty"`
}

ServiceStorageCreateRequest represents the request to create a storage for services Services require resource_uuid to identify which sub-resource the storage belongs to

type ServiceUpdateRequest

type ServiceUpdateRequest struct {
	Name          *string `json:"name,omitempty"`
	Description   *string `json:"description,omitempty"`
	DockerCompose *string `json:"docker_compose,omitempty"`
}

ServiceUpdateRequest represents the request to update a service

type Settings

type Settings struct {
	IsReachable bool `json:"is_reachable"`
	IsUsable    bool `json:"is_usable"`
}

Settings for server

type StorageCreateRequest added in v1.5.0

type StorageCreateRequest struct {
	Type        string  `json:"type"`       // "persistent" or "file"
	MountPath   string  `json:"mount_path"` // required
	Name        *string `json:"name,omitempty"`
	HostPath    *string `json:"host_path,omitempty"`
	Content     *string `json:"content,omitempty"`
	IsDirectory *bool   `json:"is_directory,omitempty"`
	FsPath      *string `json:"fs_path,omitempty"`
}

StorageCreateRequest represents the request to create a storage for applications and databases

type StorageListItem added in v1.5.0

type StorageListItem struct {
	ID                     int    `json:"id" table:"-"`
	UUID                   string `json:"uuid"`
	Type                   string `json:"type"`
	Name                   string `json:"name"`
	MountPath              string `json:"mount_path"`
	HostPath               string `json:"host_path,omitempty"`
	IsPreviewSuffixEnabled bool   `json:"is_preview_suffix_enabled"`
	Content                string `json:"content,omitempty" table:"-"`
}

StorageListItem is a unified view of both storage types for table output

func MergeStorages added in v1.5.0

func MergeStorages(resp StoragesResponse) []StorageListItem

MergeStorages converts a StoragesResponse into a unified list of StorageListItem

type StorageUpdateRequest added in v1.5.0

type StorageUpdateRequest struct {
	// Required fields
	Type string `json:"type"` // "persistent" or "file"

	// Identifier (uuid preferred, id deprecated)
	UUID *string `json:"uuid,omitempty"`
	ID   *int    `json:"id,omitempty"`

	// Optional fields
	IsPreviewSuffixEnabled *bool   `json:"is_preview_suffix_enabled,omitempty"`
	Name                   *string `json:"name,omitempty"`
	MountPath              *string `json:"mount_path,omitempty"`
	HostPath               *string `json:"host_path,omitempty"`
	Content                *string `json:"content,omitempty"`
}

StorageUpdateRequest represents the request to update a storage

type StoragesResponse added in v1.5.0

type StoragesResponse struct {
	PersistentStorages []PersistentStorage `json:"persistent_storages"`
	FileStorages       []FileStorage       `json:"file_storages"`
}

StoragesResponse represents the API response for listing storages

type Team

type Team struct {
	ID                int     `json:"id"`
	Name              string  `json:"name"`
	Description       *string `json:"description,omitempty"`
	PersonalTeam      bool    `json:"personal_team"`
	CreatedAt         string  `json:"created_at" table:"-"`
	UpdatedAt         string  `json:"updated_at" table:"-"`
	ShowBoarding      bool    `json:"show_boarding" `
	CustomServerLimit *string `json:"custom_server_limit,omitempty" table:"-"`
}

Team represents a Coolify team

type TeamMember

type TeamMember struct {
	ID                   int     `json:"id"`
	Name                 string  `json:"name"`
	Email                string  `json:"email" sensitive:"true"`
	EmailVerifiedAt      *string `json:"email_verified_at,omitempty" table:"-"`
	Role                 *string `json:"role,omitempty"`
	CreatedAt            string  `json:"created_at" table:"-"`
	UpdatedAt            string  `json:"updated_at" table:"-"`
	TwoFactorConfirmedAt *string `json:"two_factor_confirmed_at,omitempty" table:"-"`
	ForcePasswordReset   bool    `json:"force_password_reset"`
	MarketingEmails      bool    `json:"marketing_emails"`
}

TeamMember represents a member of a team

type Timestamps

type Timestamps struct {
	CreatedAt string `json:"-" table:"-"`
	UpdatedAt string `json:"-" table:"-"`
}

Timestamps for created/updated times

type UUID

type UUID struct {
	UUID string `json:"uuid"`
}

UUID is a common UUID field

Jump to

Keyboard shortcuts

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