You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 line
967 B

  1. package config
  2. import "os"
  3. type Config struct {
  4. HTTPAddr string
  5. WSAddr string
  6. MQTTHost string
  7. MQTTUser string
  8. MQTTPass string
  9. MQTTClientID string
  10. DBPath string
  11. KafkaURL string
  12. RedisURL string
  13. }
  14. // getEnv returns env var value or a default if not set.
  15. func getEnv(key, def string) string {
  16. if v := os.Getenv(key); v != "" {
  17. return v
  18. }
  19. return def
  20. }
  21. func Load() *Config {
  22. return &Config{
  23. HTTPAddr: getEnv("HTTP_HOST_PATH", "0.0.0.0:8080"),
  24. WSAddr: getEnv("HTTPWS_HOST_PATH", "0.0.0.0:8088"),
  25. MQTTHost: getEnv("MQTT_HOST", "127.0.0.1:11883"),
  26. MQTTUser: getEnv("MQTT_USERNAME", "user"),
  27. MQTTPass: getEnv("MQTT_PASSWORD", "sandbox2024"),
  28. MQTTClientID: getEnv("MQTT_CLIENT_ID", "presence-detector"),
  29. DBPath: getEnv("DB_PATH", "/data/conf/presence/presence.db"),
  30. KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"),
  31. RedisURL: getEnv("REDIS_URL", "127.0.0.1:6379"),
  32. }
  33. }