Files
9router/src/lib/tunnel/index.js
T
decoluaandCursor 7648c3412b fix(auth): real client IP rate-limiting + remote default-password guard
- Add custom-server.js: inject unspoofable socket IP, strip client XFF
  (wired into Docker CMD + CLI spawn + build-cli copy)
- loginLimiter: key on trusted x-9r-real-ip, TRUST_PROXY opt-in, global fallback
- Force password change on first remote login while default is in use
- Add /api/auth/reset-password (local-only) so CLI reset writes live SQLite
- CLI settings: reset via API instead of stale db.json
- Fix OAuth modals opening duplicate browser tabs on add-connection
- Add cli:pack / cli:publish scripts

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 12:10:02 +07:00

54 lines
1.3 KiB
JavaScript

// Cloudflare service
export {
enableTunnel,
disableTunnel,
getTunnelStatus,
isTunnelManuallyDisabled,
isTunnelReconnecting,
getTunnelService,
setTunnelUnexpectedExitCallback,
} from "./cloudflare/manager.js";
export {
killCloudflared,
isCloudflaredRunning,
ensureCloudflared,
getDownloadStatus,
} from "./cloudflare/cloudflared.js";
export { probeUrlAlive as probeCloudflareAlive } from "./cloudflare/healthCheck.js";
// Tailscale service
export {
enableTailscale,
disableTailscale,
getTailscaleStatus,
isTailscaleReconnecting,
getTailscaleService,
} from "./tailscale/manager.js";
export {
isTailscaleInstalled,
isTailscaleRunning,
isTailscaleRunningStrict,
isTailscaleLoggedIn,
isTailscaleLoggedInStrict,
isSystemDaemonRunning,
isDaemonAlive,
startFunnel,
getTailscaleBin,
installTailscale,
startLogin,
startDaemonWithPassword,
TAILSCALE_SOCKET,
} from "./tailscale/tailscale.js";
export { probeUrlAlive as probeTailscaleAlive } from "./tailscale/healthCheck.js";
// Shared
export { loadState, generateShortId } from "./shared/state.js";
export { checkInternet } from "./shared/internetCheck.js";
export {
RESTART_COOLDOWN_MS,
NETWORK_SETTLE_MS,
WATCHDOG_INTERVAL_MS,
NETWORK_CHECK_INTERVAL_MS,
VIRTUAL_IFACE_REGEX,
} from "./shared/watchdogConfig.js";