Add PostgreSQL, user/squad management, remove private domains from docs

This commit is contained in:
tgvpn
2026-05-21 01:13:23 +03:00
parent d0dc8d5822
commit 5e3229e998
17 changed files with 1171 additions and 58 deletions
+39 -9
View File
@@ -18,7 +18,11 @@ type Config struct {
RemnawavePanelURL string
RemnawaveAPIToken string
CaddyAuthAPIToken string
RemnawaveSubscription string
RemnawaveSubscription string
DatabaseURL string
DefaultUserDays int
DefaultExternalSquadUUID string
DefaultInternalSquadUUIDs []string
}
func Load() (*Config, error) {
@@ -60,14 +64,40 @@ func Load() (*Config, error) {
return nil, fmt.Errorf("REMNAWAVE_SUBSCRIPTION_URL должен начинаться с http:// или https://")
}
dbURL := strings.TrimSpace(os.Getenv("DATABASE_URL"))
if dbURL == "" {
return nil, fmt.Errorf("DATABASE_URL не задан")
}
days := 30
if v := strings.TrimSpace(os.Getenv("DEFAULT_USER_DAYS")); v != "" {
if d, err := strconv.Atoi(v); err == nil && d > 0 {
days = d
}
}
var internalSquads []string
if v := strings.TrimSpace(os.Getenv("DEFAULT_INTERNAL_SQUAD_UUIDS")); v != "" {
for _, part := range strings.Split(v, ",") {
part = strings.TrimSpace(part)
if part != "" {
internalSquads = append(internalSquads, part)
}
}
}
return &Config{
BotToken: token,
BotDebug: strings.EqualFold(strings.TrimSpace(os.Getenv("BOT_DEBUG")), "true"),
TelegramAdminID: adminID,
RemnawaveName: name,
RemnawavePanelURL: panelURL,
RemnawaveAPIToken: apiToken,
CaddyAuthAPIToken: caddy,
RemnawaveSubscription: subURL,
BotToken: token,
BotDebug: strings.EqualFold(strings.TrimSpace(os.Getenv("BOT_DEBUG")), "true"),
TelegramAdminID: adminID,
RemnawaveName: name,
RemnawavePanelURL: panelURL,
RemnawaveAPIToken: apiToken,
CaddyAuthAPIToken: caddy,
RemnawaveSubscription: subURL,
DatabaseURL: dbURL,
DefaultUserDays: days,
DefaultExternalSquadUUID: strings.TrimSpace(os.Getenv("DEFAULT_EXTERNAL_SQUAD_UUID")),
DefaultInternalSquadUUIDs: internalSquads,
}, nil
}