1. 整合 MQTT Gateway 並支援動態 Redis Key 前綴隔離,解決多環境衝突。 2. 修正本地開發環境與 Demo 環境的埠號映射 (80/8080) 與 Vite HMR (5175) 設定。 3. 更新 CI/CD 部署流程,新增自動同步程式碼至 MQTT Worker 與 Queue 容器。 4. 擴充 .env.example 以提供完整的 MQTT/EMQX 相關變數範本。 5. 更新模擬腳本以符合現有測試資料。
35 lines
897 B
Go
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
|
|
}
|