import path from "node:path"; const dataDir = process.env.DATA_DIR || path.resolve(".vpn-proxy"); const rawAppMode = String(process.env.APP_MODE || "gateway").toLowerCase(); const appMode = ["gateway", "client", "windows"].includes(rawAppMode) ? rawAppMode : "gateway"; export const settings = { appMode, port: Number(process.env.PORT || 3456), proxyPort: Number(process.env.PROXY_PORT || 8080), clientProxyPortStart: Number(process.env.CLIENT_PROXY_PORT_START || 8080), clientProxyPortEnd: Number(process.env.CLIENT_PROXY_PORT_END || 8090), tproxyPort: Number(process.env.TPROXY_PORT || 7895), bindIp: process.env.PROXY_BIND_IP || "0.0.0.0", dataDir, distDir: process.env.DIST_DIR || "/app/dist", configPath: process.env.SING_BOX_CONFIG || path.join(dataDir, "sing-box-config.json"), cachePath: process.env.SING_BOX_CACHE || "/var/lib/sing-box/cache.db", statePath: path.join(dataDir, "state.json"), customRulesPath: path.join(dataDir, "custom-rules.json"), customRuleSetsPath: path.join(dataDir, "custom-rule-sets.json"), clientSettingsPath: path.join(dataDir, "client-settings.json"), devicesPath: path.join(dataDir, "devices.json"), deviceRulesPath: path.join(dataDir, "device-rules.json"), subscriptionCachePath: path.join(dataDir, "subscription-cache.json"), windowsProfilesPath: path.join(dataDir, "windows-profiles.json"), windowsTargetsPath: path.join(dataDir, "proxy-targets.json"), windowsStatePath: path.join(dataDir, "windows-state.json"), windowsActivityPath: path.join(dataDir, "windows-activity.json"), windowsHelperPath: process.env.WINDOWS_HELPER || path.resolve("scripts/windows/helper.ps1"), proxifyreConfigPath: process.env.PROXIFYRE_CONFIG || "C:\\Tools\\ProxiFyre\\app-config.json", sharedProxyHost: process.env.SHARED_PROXY_HOST || "", hwidPath: path.join(dataDir, "hwid"), routingRuDirect: String(process.env.ROUTING_RU_DIRECT || "true") !== "false", ruleSetDownloadDetour: process.env.RULE_SET_DOWNLOAD_DETOUR || "vpn", logLevel: process.env.LOG_LEVEL || "info", appName: appMode === "windows" ? "VPN Proxy Windows" : appMode === "client" ? "VPN Proxy Client" : "VPN Proxy Gateway", };