star-cloud/mqtt-gateway/config/config.go
sky121113 bf43a33df3 [FEAT] 整合 MQTT 資料流自動化與環境埠號修復
1. 整合 MQTT Gateway 並支援動態 Redis Key 前綴隔離,解決多環境衝突。
2. 修正本地開發環境與 Demo 環境的埠號映射 (80/8080) 與 Vite HMR (5175) 設定。
3. 更新 CI/CD 部署流程,新增自動同步程式碼至 MQTT Worker 與 Queue 容器。
4. 擴充 .env.example 以提供完整的 MQTT/EMQX 相關變數範本。
5. 更新模擬腳本以符合現有測試資料。
2026-04-17 13:22:46 +08:00

35 lines
897 B
Go

package config
import (
"os"
)
type Config struct {
MQTTAddr string
MQTTClientID string
RedisAddr string
RedisPassword string
IncomingQueueKey string
OutgoingQueueKey string
RedisPrefix string
}
func LoadConfig() *Config {
return &Config{
MQTTAddr: getEnv("MQTT_BROKER_ADDR", "tcp://emqx:1883"),
MQTTClientID: getEnv("MQTT_GATEWAY_CLIENT_ID", "star-cloud-gateway"),
RedisAddr: getEnv("MQTT_REDIS_ADDR", "star-cloud-redis:6379"),
RedisPassword: getEnv("MQTT_REDIS_PASSWORD", ""),
IncomingQueueKey: getEnv("MQTT_INCOMING_QUEUE", "mqtt_incoming_jobs"),
OutgoingQueueKey: getEnv("MQTT_OUTGOING_QUEUE", "mqtt_outgoing_commands"),
RedisPrefix: getEnv("MQTT_REDIS_PREFIX", "starcloud_database_"),
}
}
func getEnv(key, fallback string) string {
if value, ok := os.LookupEnv(key); ok {
return value
}
return fallback
}