package config import ( "log" "github.com/kelseyhightower/envconfig" ) type smtpConfig struct { Port int `envconfig:"SMTP_PORT"` Host string `envconfig:"SMTP_HOST"` Sender string `envconfig:"SMTP_SENDER"` Password string `envconfig:"SMTP_PASSWORD"` } type kafkaConfig struct { Port int `envconfig:"KAFKA_PORT"` Host string `envconfig:"KAFKA_HOST"` } // ... type Config struct { Smtp smtpConfig Kafka kafkaConfig } func NewConfig() *Config { c := Config{} err := envconfig.Process("", &c) if err != nil { log.Fatal(err.Error()) } return &c }