# ============================================================================== # VLESS Panel 环境配置示例 # 复制方式: cp .env.example .env # 生成随机密钥: openssl rand -hex 32 # ============================================================================== # ============================================================================== # 基础服务 # ============================================================================== # 面板域名。设置后会自动派生 AGENT_WS_URL PANEL_DOMAIN=panel.example.com # HTTP 监听端口 PORT=3000 # 运行环境 NODE_ENV=production # 日志等级 LOG_LEVEL=info # 进程时区 TZ=Asia/Shanghai # [必填] Session / 加密主密钥 SESSION_SECRET=change-me-to-a-random-64-char-string # 可选:加密 KDF 盐。未设置时会基于 SESSION_SECRET 派生 # CRYPTO_KDF_SALT= # ============================================================================== # 反向代理 # ============================================================================== # 直接暴露端口时设为 0;Nginx/Caddy 反代通常设为 1 TRUST_PROXY=1 # 更安全的代理白名单。设置后优先于 TRUST_PROXY # TRUST_PROXY_CIDRS=127.0.0.1/32,::1/128 # 可手动覆盖 Agent WS 地址;通常无需设置 # AGENT_WS_URL=wss://panel.example.com/ws/agent # ============================================================================== # OPS API # ============================================================================== # OpenClaw / 运维脚本访问 /ops/api/* 使用 OPS_API_KEY= # ============================================================================== # Telegram Bot # ============================================================================== # 不配置则 TG 功能关闭 # TG_BOT_TOKEN= # ============================================================================== # 订阅签名 # ============================================================================== # off | observe | enforce SUB_LINK_SIGN_MODE=off # 不填则回退到 SESSION_SECRET # SUB_LINK_SIGN_SECRET= # 签名参数名 SUB_LINK_SIGN_PARAM=sig # ============================================================================== # 订阅风控 # ============================================================================== # off | observe | enforce SUB_CLIENT_FILTER_MODE=observe # 客户端 UA 白名单(逗号分隔) SUB_UA_ALLOWLIST=clash,clash-meta,mihomo,clash-verge,clash-verge-rev,clashforwindows,flclash,stash,sing-box,singbox,sfa,sfi,v2rayn,v2rayng,v2rayu,v2raya,v2box,qv2ray,shadowrocket,quantumult,quantumultx,surfboard,surge,loon,egern,exclave,nekoray,nekobox,nekoboxforandroid,hiddify,karing,passwall,throne # IP 级限流 SUB_IP_WINDOW_MS=60000 SUB_IP_MAX_REQ=5 # Token 级限流 SUB_TOKEN_WINDOW_MS=60000 SUB_TOKEN_MAX_REQ=20 SUB_TOKEN_BAN_MS=900000 # 行为异常检测 SUB_BEHAVIOR_WINDOW_MS=300000 SUB_BEHAVIOR_MAX_IPS=20 SUB_BEHAVIOR_MAX_UAS=12 # ============================================================================== # Agent 下载限流 # ============================================================================== AGENT_DOWNLOAD_WINDOW_MS=900000 AGENT_DOWNLOAD_MAX_REQ=10 # ============================================================================== # 在线状态 / 健康巡检 # ============================================================================== # 在线缓存 TTL,最小 15000 ONLINE_CACHE_TTL_MS=120000 # 用户在线滑动窗口,最小 30000 ONLINE_USER_WINDOW_MS=300000 # Agent 判定失联阈值,最小 60000 STALE_AGENT_THRESHOLD_MS=180000 # 突然零流量被墙检测 SUDDEN_ZERO_SILENCE_HOURS=3 SUDDEN_ZERO_ACTIVE_HOURS=12 # ============================================================================== # 并发多节点观察 # ============================================================================== USER_MULTI_NODE_WINDOW_MS=90000 USER_MULTI_NODE_MIN_NODES=2 USER_MULTI_NODE_ALERT_COOLDOWN_MS=600000 USER_MULTI_NODE_TRAFFIC_THRESHOLD_BYTES=524288000 # USER_MULTI_NODE_MAX_USERS=50000 # ============================================================================== # 数据保留 # ============================================================================== TRAFFIC_RAW_RETENTION_DAYS=30 TRAFFIC_DAILY_RETENTION_DAYS=120 # ============================================================================== # 临时登录(高风险,应急功能) # ============================================================================== # TEMP_LOGIN_ENABLED=false # TEMP_LOGIN_TOKEN= # TEMP_LOGIN_ALLOW_PROD=false # TEMP_LOGIN_ONE_TIME=false # TEMP_LOGIN_EXPIRES_AT= # TEMP_LOGIN_IP_ALLOWLIST= # TEMP_LOGIN_USED_TOKEN_MAX_ENTRIES=1000 # TEMP_LOGIN_USED_TOKEN_TTL_MS=86400000