models

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2025 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 {
	ID          int     `json:"-" table:"-"`
	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"`
	CreatedAt   string  `json:"-" table:"-"`
	UpdatedAt   string  `json:"-" table:"-"`
}

Application represents a Coolify application

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 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"`
	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 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 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"`
	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"`
}

EnvironmentVariableCreateRequest represents the request to create an environment variable

type EnvironmentVariableUpdateRequest

type EnvironmentVariableUpdateRequest struct {
	UUID        string  `json:"uuid"`
	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"`
}

EnvironmentVariableUpdateRequest represents the request to update an environment variable

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 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"`
	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 struct {
	Message string `json:"message,omitempty"`
}

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"`
	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"`
}

ServiceEnvironmentVariableCreateRequest represents the request to create a service environment variable

type ServiceEnvironmentVariableUpdateRequest added in v1.3.0

type ServiceEnvironmentVariableUpdateRequest struct {
	UUID        string  `json:"uuid"`
	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"`
}

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 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 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