config

package
v0.5.11 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddSite

func AddSite(site Site) error

AddSite appends or updates a site in the registry.

func BinDir

func BinDir() string

BinDir returns the lerd bin directory.

func CertsDir

func CertsDir() string

CertsDir returns the certs directory.

func ConfigDir

func ConfigDir() string

ConfigDir returns ~/.config/lerd/ (or $XDG_CONFIG_HOME/lerd/).

func CustomServicesDir added in v0.5.4

func CustomServicesDir() string

CustomServicesDir returns the directory for custom service YAML files.

func DataDir

func DataDir() string

DataDir returns ~/.local/share/lerd/ (or $XDG_DATA_HOME/lerd/).

func DataSubDir

func DataSubDir(name string) string

DataSubDir returns a named subdirectory under data.

func DnsmasqDir

func DnsmasqDir() string

DnsmasqDir returns the dnsmasq config directory.

func GlobalConfigFile

func GlobalConfigFile() string

GlobalConfigFile returns the path to config.yaml.

func IgnoreSite added in v0.3.0

func IgnoreSite(name string) error

IgnoreSite marks a site as ignored (used for parked sites that have been unlinked).

func NginxConfD

func NginxConfD() string

NginxConfD returns the nginx conf.d directory.

func NginxDir

func NginxDir() string

NginxDir returns the nginx data directory.

func PHPConfFile added in v0.4.0

func PHPConfFile(version string) string

PHPConfFile returns the host path for the per-version xdebug ini file.

func PHPImageHashFile added in v0.1.25

func PHPImageHashFile() string

PHPImageHashFile returns the path to the stored PHP-FPM Containerfile hash.

func PHPUserIniFile added in v0.5.5

func PHPUserIniFile(version string) string

PHPUserIniFile returns the host path for the per-version user php.ini file.

func QuadletDir

func QuadletDir() string

QuadletDir returns the Podman quadlet directory.

func RemoveCustomService added in v0.5.4

func RemoveCustomService(name string) error

RemoveCustomService deletes a custom service config file.

func RemoveSite

func RemoveSite(name string) error

RemoveSite removes a site by name from the registry.

func SaveCustomService added in v0.5.4

func SaveCustomService(svc *CustomService) error

SaveCustomService validates and writes a custom service config to disk.

func SaveGlobal

func SaveGlobal(cfg *GlobalConfig) error

SaveGlobal writes the configuration to config.yaml.

func SaveSites

func SaveSites(reg *SiteRegistry) error

SaveSites writes the registry to sites.yaml.

func SitesFile

func SitesFile() string

SitesFile returns the path to sites.yaml.

func SystemdUserDir

func SystemdUserDir() string

SystemdUserDir returns the systemd user unit directory.

Types

type CustomService added in v0.5.4

type CustomService struct {
	Name        string            `yaml:"name"`
	Image       string            `yaml:"image"`
	Ports       []string          `yaml:"ports,omitempty"`
	Environment map[string]string `yaml:"environment,omitempty"`
	DataDir     string            `yaml:"data_dir,omitempty"`
	Exec        string            `yaml:"exec,omitempty"`
	EnvVars     []string          `yaml:"env_vars,omitempty"`
	EnvDetect   *EnvDetect        `yaml:"env_detect,omitempty"`
	SiteInit    *SiteInit         `yaml:"site_init,omitempty"`
	Dashboard   string            `yaml:"dashboard,omitempty"`
	Description string            `yaml:"description,omitempty"`
}

CustomService represents a user-defined OCI-based service.

func ListCustomServices added in v0.5.4

func ListCustomServices() ([]*CustomService, error)

ListCustomServices returns all custom services defined in the services directory.

func LoadCustomService added in v0.5.4

func LoadCustomService(name string) (*CustomService, error)

LoadCustomService loads a custom service by name from the services directory.

func LoadCustomServiceFromFile added in v0.5.4

func LoadCustomServiceFromFile(path string) (*CustomService, error)

LoadCustomServiceFromFile parses a CustomService from any YAML file path.

type EnvDetect added in v0.5.4

type EnvDetect struct {
	Key         string `yaml:"key"`
	ValuePrefix string `yaml:"value_prefix,omitempty"`
}

EnvDetect defines auto-detection rules for `lerd env`.

type GlobalConfig

type GlobalConfig struct {
	PHP struct {
		DefaultVersion string              `yaml:"default_version" mapstructure:"default_version"`
		XdebugEnabled  map[string]bool     `yaml:"xdebug_enabled"  mapstructure:"xdebug_enabled"`
		Extensions     map[string][]string `yaml:"extensions"      mapstructure:"extensions"`
	} `yaml:"php" mapstructure:"php"`
	Node struct {
		DefaultVersion string `yaml:"default_version" mapstructure:"default_version"`
	} `yaml:"node" mapstructure:"node"`
	Nginx struct {
		HTTPPort  int `yaml:"http_port"  mapstructure:"http_port"`
		HTTPSPort int `yaml:"https_port" mapstructure:"https_port"`
	} `yaml:"nginx" mapstructure:"nginx"`
	DNS struct {
		TLD string `yaml:"tld" mapstructure:"tld"`
	} `yaml:"dns" mapstructure:"dns"`
	ParkedDirectories []string                 `yaml:"parked_directories" mapstructure:"parked_directories"`
	Services          map[string]ServiceConfig `yaml:"services"           mapstructure:"services"`
}

GlobalConfig is the top-level lerd configuration.

func LoadGlobal

func LoadGlobal() (*GlobalConfig, error)

LoadGlobal reads config.yaml via viper, returning defaults if the file is absent.

func (*GlobalConfig) AddExtension added in v0.5.5

func (c *GlobalConfig) AddExtension(version, ext string)

AddExtension adds ext to the custom extension list for version (no-op if already present).

func (*GlobalConfig) GetExtensions added in v0.5.5

func (c *GlobalConfig) GetExtensions(version string) []string

GetExtensions returns the custom extensions configured for the given PHP version.

func (*GlobalConfig) IsXdebugEnabled added in v0.4.0

func (c *GlobalConfig) IsXdebugEnabled(version string) bool

IsXdebugEnabled returns true if Xdebug is enabled for the given PHP version.

func (*GlobalConfig) RemoveExtension added in v0.5.5

func (c *GlobalConfig) RemoveExtension(version, ext string)

RemoveExtension removes ext from the custom extension list for version.

func (*GlobalConfig) SetXdebug added in v0.4.0

func (c *GlobalConfig) SetXdebug(version string, enabled bool)

SetXdebug enables or disables Xdebug for the given PHP version.

type ServiceConfig

type ServiceConfig struct {
	Enabled bool   `yaml:"enabled" mapstructure:"enabled"`
	Image   string `yaml:"image"   mapstructure:"image"`
	Port    int    `yaml:"port"    mapstructure:"port"`
}

ServiceConfig holds configuration for an optional service.

type Site

type Site struct {
	Name        string `yaml:"name"`
	Domain      string `yaml:"domain"`
	Path        string `yaml:"path"`
	PHPVersion  string `yaml:"php_version"`
	NodeVersion string `yaml:"node_version"`
	Secured     bool   `yaml:"secured"`
	Ignored     bool   `yaml:"ignored,omitempty"`
}

Site represents a single registered Lerd site.

func FindSite

func FindSite(name string) (*Site, error)

FindSite returns the site with the given name, or an error if not found.

func FindSiteByDomain added in v0.1.37

func FindSiteByDomain(domain string) (*Site, error)

FindSiteByDomain returns the site with the given domain, or an error if not found.

func FindSiteByPath added in v0.3.0

func FindSiteByPath(path string) (*Site, error)

FindSiteByPath returns the site whose path matches, or an error if not found.

type SiteInit added in v0.5.4

type SiteInit struct {
	// Container to exec into. Defaults to lerd-<service name>.
	Container string `yaml:"container,omitempty"`
	// Exec is passed to sh -c inside the container.
	Exec string `yaml:"exec"`
}

SiteInit defines an optional command to run inside the service container once per project when `lerd env` detects this service. Use it for any per-site setup: creating a database, a user, indexes, etc. The exec string may contain {{site}} and {{site_testing}} placeholders, which are replaced with the project site handle at runtime.

type SiteRegistry

type SiteRegistry struct {
	Sites []Site `yaml:"sites"`
}

SiteRegistry holds all registered sites.

func LoadSites

func LoadSites() (*SiteRegistry, error)

LoadSites reads sites.yaml, returning an empty registry if the file does not exist.

Jump to

Keyboard shortcuts

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