feat(backend): add environment variable configuration support

Add AETHERA_ prefixed env vars for server configuration:
- AETHERA_DATA_DIR: data directory path
- AETHERA_LISTEN: listen address
- AETHERA_PORT: listen port

Env vars take precedence over defaults but CLI flags override both.
This commit is contained in:
2026-02-20 22:35:13 -05:00
parent a5cb82d3fa
commit 0dc3add8ff
2 changed files with 27 additions and 6 deletions

View File

@@ -4,8 +4,11 @@ import (
"fmt"
"os"
"path"
"strconv"
)
const envPrefix = "AETHERA_"
type cliParams struct {
ListenAddr string
ListenPort int
@@ -13,6 +16,24 @@ type cliParams struct {
SettingsFile string
}
// getEnvOrDefault returns the value of an environment variable or a default value
func getEnvOrDefault(key, defaultValue string) string {
if value := os.Getenv(envPrefix + key); value != "" {
return value
}
return defaultValue
}
// getEnvIntOrDefault returns the integer value of an environment variable or a default value
func getEnvIntOrDefault(key string, defaultValue int) int {
if value := os.Getenv(envPrefix + key); value != "" {
if intVal, err := strconv.Atoi(value); err == nil {
return intVal
}
}
return defaultValue
}
func (p *cliParams) Validate() error {
// Ensure Generated Directories
imgDir := path.Join(p.DataDir, "generated/images")