43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
// Config 保存服务运行所需的通用配置。
|
|
// MVP 阶段从环境变量加载,缺省值适配本地开发。
|
|
type Config struct {
|
|
APIAddr string
|
|
ChainAddr string
|
|
HashAddr string
|
|
CatalogAddr string
|
|
PostgresDSN string
|
|
RedisAddr string
|
|
// ChainBackend 选择链实现:memory(纯内存)| pg(内存+PG镜像)| chainmaker(真实链,需 -tags chainmaker 构建)
|
|
ChainBackend string
|
|
// ChainMakerSDKConf ChainMaker Go SDK 配置文件路径(节点地址/TLS/组织证书),仅 chainmaker 后端使用
|
|
ChainMakerSDKConf string
|
|
}
|
|
|
|
func getEnv(key, def string) string {
|
|
if v := os.Getenv(key); v != "" {
|
|
return v
|
|
}
|
|
return def
|
|
}
|
|
|
|
// Load 从环境变量加载配置。
|
|
func Load() Config {
|
|
return Config{
|
|
APIAddr: getEnv("TCS_API_ADDR", ":8080"),
|
|
ChainAddr: getEnv("TCS_CHAIN_ADDR", ":8081"),
|
|
HashAddr: getEnv("TCS_HASH_ADDR", ":8082"),
|
|
CatalogAddr: getEnv("TCS_CATALOG_ADDR", ":8083"),
|
|
PostgresDSN: getEnv("TCS_POSTGRES_DSN", "postgres://postgres@localhost:5432/tcs_iptv?sslmode=disable"),
|
|
RedisAddr: getEnv("TCS_REDIS_ADDR", "localhost:6379"),
|
|
// 默认 pg:PG 可用则内存+镜像持久化,不可用自动回退内存(见 api-svc 装配)
|
|
ChainBackend: getEnv("TCS_CHAIN_BACKEND", "pg"),
|
|
ChainMakerSDKConf: getEnv("TCS_CHAINMAKER_SDK_CONF", "deploy/chainmaker/sdk_config.yml"),
|
|
}
|
|
}
|