mirror of
https://github.com/tgdrive/teldrive.git
synced 2024-11-14 11:45:29 +08:00
52 lines
2 KiB
Go
52 lines
2 KiB
Go
package utils
|
|
|
|
import (
|
|
"path/filepath"
|
|
|
|
"github.com/joho/godotenv"
|
|
"github.com/kelseyhightower/envconfig"
|
|
)
|
|
|
|
type MultiToken string
|
|
|
|
type Config struct {
|
|
AppId int `envconfig:"APP_ID" required:"true"`
|
|
AppHash string `envconfig:"APP_HASH" required:"true"`
|
|
JwtSecret string `envconfig:"JWT_SECRET" required:"true"`
|
|
Https bool `envconfig:"HTTPS" default:"false"`
|
|
CookieSameSite bool `envconfig:"COOKIE_SAME_SITE" default:"true"`
|
|
AllowedUsers []string `envconfig:"ALLOWED_USERS"`
|
|
DatabaseUrl string `envconfig:"DATABASE_URL" required:"true"`
|
|
RateLimit bool `envconfig:"RATE_LIMIT" default:"true"`
|
|
RateBurst int `envconfig:"RATE_BURST" default:"5"`
|
|
Rate int `envconfig:"RATE" default:"100"`
|
|
TgClientDeviceModel string `envconfig:"TG_CLIENT_DEVICE_MODEL" default:"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0"`
|
|
TgClientSystemVersion string `envconfig:"TG_CLIENT_SYSTEM_VERSION" default:"Win32"`
|
|
TgClientAppVersion string `envconfig:"TG_CLIENT_APP_VERSION" default:"2.1.9 K"`
|
|
TgClientLangCode string `envconfig:"TG_CLIENT_LANG_CODE" default:"en"`
|
|
TgClientSystemLangCode string `envconfig:"TG_CLIENT_SYSTEM_LANG_CODE" default:"en"`
|
|
TgClientLangPack string `envconfig:"TG_CLIENT_LANG_PACK" default:"webk"`
|
|
RunMigrations bool `envconfig:"RUN_MIGRATIONS" default:"true"`
|
|
Port int `envconfig:"PORT" default:"8080"`
|
|
LazyStreamBots bool `envconfig:"LAZY_STREAM_BOTS" default:"true"`
|
|
BgBotsLimit int `envconfig:"BG_BOTS_LIMIT" default:"10"`
|
|
ExecDir string
|
|
}
|
|
|
|
var config Config
|
|
|
|
func InitConfig() {
|
|
|
|
execDir := getExecutableDir()
|
|
|
|
godotenv.Load(filepath.Join(execDir, "teldrive.env"))
|
|
err := envconfig.Process("", &config)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
config.ExecDir = execDir
|
|
}
|
|
|
|
func GetConfig() *Config {
|
|
return &config
|
|
}
|