Application configuration from YAML, env vars, and flags.
cfg, err := config.Load("config.yaml", "MYAPP_", os.Args)
if err != nil {
log.Fatal(err)
}
if err := cfg.Validate(); err != nil {
log.Fatal(err)
}
// Access config
fmt.Println(cfg.Server.Port)
fmt.Println(cfg.Database.ConnectionString())Precedence (highest to lowest):
- Flags (
--database.host=x) - Env vars (
MYAPP_DATABASE_HOST=x) - YAML file
- Defaults
Static configuration at startup. For dynamic runtime configuration, see settings/.