Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoRepositories = errors.New("no repositories configured") ErrRepositoryNameEmpty = errors.New("repository name is required") ErrRepositoryNameReserved = errors.New("repository name is reserved") ErrRepositoryNameInvalid = errors.New("repository name is invalid") ErrNoFeeds = errors.New("at least one feed is required") ErrFeedTypeEmpty = errors.New("feed type not specified") ErrFeedTypeInvalid = errors.New("invalid feed type") ErrFeedLocationEmpty = errors.New("feed location not specified") ErrFeedLocationPort = errors.New("feed location cannot contain port") ErrFeedLocationInvalid = errors.New("feed location is not a valid path") ErrFeedLocationScheme = errors.New("feed location should not include URL scheme") ErrFeedLocationQuery = errors.New("feed location cannot contain query strings") ErrFeedLocationFragment = errors.New("feed location cannot contain fragments") ErrPoolModeInvalid = errors.New("pool mode must be either 'hierarchical' or 'redirect'") ErrNoChangesRequiresDist = errors.New("no_changes requires distribution mappings to be configured") )
Validation errors
Functions ¶
This section is empty.
Types ¶
type CleanupConfig ¶
type CleanupConfig struct {
OlderThanDays int `yaml:"older_than_days"`
KeepLast int `yaml:"keep_last"`
}
CleanupConfig contains deployment cleanup settings
type CloudflareConfig ¶
type CloudflareConfig struct {
APIToken string `yaml:"api_token,omitempty"`
AccountID string `yaml:"account_id,omitempty"`
ProjectName string `yaml:"project_name,omitempty"`
Cleanup CleanupConfig `yaml:"cleanup,omitempty"`
}
CloudflareConfig contains Cloudflare Pages deployment configuration
type Config ¶
type Config struct {
Directories DirectoriesConfig `yaml:"directories"`
HTTP HTTPConfig `yaml:"http,omitempty"`
Signing SigningConfig `yaml:"signing"`
GitHub GitHubConfig `yaml:"github,omitempty"`
Cloudflare CloudflareConfig `yaml:"cloudflare,omitempty"`
URL string `yaml:"url"`
Generate GenerateConfig `yaml:"generate,omitempty"`
Web WebConfig `yaml:"web,omitempty"`
Serve ServeConfig `yaml:"serve,omitempty"`
Workers WorkersConfig `yaml:"workers"`
Repositories []*RepositoryConfig `yaml:"repositories"` // Loaded from Directories.Repositories/*.yaml
ConfigDir string `yaml:"-"` // Directory containing config.yaml (set during Load)
}
Config represents the complete application configuration
type DirectoriesConfig ¶
type DirectoriesConfig struct {
Root string `yaml:"root"`
Repositories string `yaml:"repositories"` // Relative to config dir if not absolute
Downloads string `yaml:"downloads"` // Relative to Root if not absolute
Trusted string `yaml:"trusted"` // Relative to Root if not absolute
Staging string `yaml:"staging"` // Relative to Root if not absolute, contains timestamped build directories
Public string `yaml:"public"` // Relative to Root if not absolute
}
DirectoriesConfig defines directory paths
func (*DirectoriesConfig) GetDownloadsPath ¶
func (d *DirectoriesConfig) GetDownloadsPath() string
GetDownloadsPath returns the absolute path to the downloads directory
func (*DirectoriesConfig) GetPublicPath ¶
func (d *DirectoriesConfig) GetPublicPath() string
GetPublicPath returns the absolute path to the public directory
func (*DirectoriesConfig) GetStagingPath ¶
func (d *DirectoriesConfig) GetStagingPath() string
GetStagingPath returns the absolute path to the staging directory
func (*DirectoriesConfig) GetTrustedPath ¶
func (d *DirectoriesConfig) GetTrustedPath() string
GetTrustedPath returns the absolute path to the trusted directory
type GenerateConfig ¶
type GenerateConfig struct {
PoolMode string `yaml:"pool_mode,omitempty"` // "hierarchical" or "redirect"
Compose []string `yaml:"compose,omitempty"` // List of composers to run
KeepLast int `yaml:"keep_last"` // Number of staging builds to keep
}
GenerateConfig contains repository generation configuration
type GitHubConfig ¶
type GitHubConfig struct {
Token string `yaml:"token,omitempty"` // GitHub personal access token
}
GitHubConfig contains GitHub API configuration
type HTTPConfig ¶
type HTTPConfig struct {
UserAgent string `yaml:"user_agent,omitempty"` // Custom User-Agent header
Timeout int `yaml:"timeout"` // Request timeout in seconds
MaxIdleConns int `yaml:"max_idle_conns,omitempty"` // Maximum idle connections
MaxConnsPerHost int `yaml:"max_conns_per_host,omitempty"` // Maximum connections per host
}
HTTPConfig contains HTTP client configuration
type RepositoryConfig ¶
type RepositoryConfig struct {
Name string `yaml:"-"` // Derived from filename
// Description is a markdown-formatted description of the repository (GitHub-flavored markdown)
Description string `yaml:"description,omitempty"`
// Icon is the name of an icon from simpleicons.org (e.g., "immich") or empty to try repository name
// Can be overridden in global config.yaml web.icon_urls to use custom URL
Icon string `yaml:"icon,omitempty"`
common.RepositoryOptions `yaml:",inline"`
Verification VerificationConfig `yaml:"verification,omitempty"`
Feeds []*feed.FeedOptions `yaml:"feeds"`
}
RepositoryConfig represents a single repository configuration
type ServeConfig ¶
type ServeConfig struct {
Host string `yaml:"host,omitempty"` // Host to bind to (default: localhost)
Port int `yaml:"port,omitempty"` // Port to listen on (default: 8080)
}
ServeConfig contains HTTP server configuration
type SigningConfig ¶
type SigningConfig struct {
PrivateKey string `yaml:"private_key"`
PublicKey string `yaml:"public_key"`
Passphrase string `yaml:"passphrase,omitempty"` // Optional passphrase for the private key
}
SigningConfig contains GPG signing configuration
func (*SigningConfig) GetPrivateKeyPath ¶
func (s *SigningConfig) GetPrivateKeyPath(configDir string) string
GetPrivateKeyPath returns the absolute path to the private key
func (*SigningConfig) GetPublicKeyPath ¶
func (s *SigningConfig) GetPublicKeyPath(configDir string) string
GetPublicKeyPath returns the absolute path to the public key
type TailwindConfig ¶
type TailwindConfig struct {
Release string `yaml:"release,omitempty"` // Specific release version to use (e.g., "v4.1.0"), empty = latest
}
TailwindConfig contains Tailwind CSS configuration
type VerificationConfig ¶
type VerificationConfig struct {
Keyring string `yaml:"keyring,omitempty"`
Keys []string `yaml:"keys,omitempty"`
}
VerificationConfig contains package verification settings
func (*VerificationConfig) GetKeyPaths ¶
func (v *VerificationConfig) GetKeyPaths(configDir string) []string
GetKeyPaths returns absolute paths for all keys
func (*VerificationConfig) GetKeyringPath ¶
func (v *VerificationConfig) GetKeyringPath(configDir string) string
GetKeyringPath returns the absolute path to the keyring
type WebConfig ¶
type WebConfig struct {
Tailwind TailwindConfig `yaml:"tailwind,omitempty"`
IconURLs map[string]string `yaml:"icon_urls,omitempty"`
}
WebConfig contains web composer configuration
func (*WebConfig) GetIconURLs ¶
GetIconURLs returns the icon URLs with defaults applied
type WorkersConfig ¶
type WorkersConfig struct {
Main uint `yaml:"main"`
Download uint `yaml:"download"`
Compression uint `yaml:"compression"`
}
WorkersConfig defines worker pool sizes