diff options
Diffstat (limited to 'internal/config/config.go')
| -rw-r--r-- | internal/config/config.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go index 250827b..3ac03ea 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -74,10 +74,19 @@ type ServerConfig struct { // StorageConfig contains database settings type StorageConfig struct { Path string `yaml:"path"` + URL string `yaml:"url,omitempty"` // libsql:// or file:// URL (overrides path, supports $ENV_VAR) HistoryDays int `yaml:"history_days"` Maintenance MaintenanceConfig `yaml:"maintenance,omitempty"` } +func (s *StorageConfig) GetDatabaseURL() string { + url := s.URL + if url == "" { + url = s.Path + } + return os.ExpandEnv(url) +} + // MaintenanceConfig controls database maintenance/pruning behavior type MaintenanceConfig struct { // Mode: "never" (default), "backup" (rename with epoch suffix), "reset" (delete in place) |