#!/usr/bin/env bash # vps-manager 启动脚本(部署于 Tailscale cc1 节点 100.89.0.11) # 用法:./run.sh # 前台启动 # ./run.sh --reload # 开发模式(热重载) cd "$(dirname "$0")" || exit 1 if [ ! -d ".venv" ]; then echo "[init] 创建虚拟环境并安装依赖(含测试依赖)..." python3 -m venv .venv .venv/bin/pip install -r requirements.txt # 测试依赖(pytest)随本地 venv 一并装好,保证 .qoder/rules 里的 # `.venv/bin/python -m pytest` 开箱即用、测试环境可复现。 # 生产不走本脚本(systemd 直接拉起 uvicorn),setup.sh/update.sh 也只装 # requirements.txt,故 dev 依赖不会带上线。 .venv/bin/pip install -r requirements-dev.txt fi # 监听地址/端口可用环境变量覆盖(HOST=127.0.0.1 ./run.sh)。 # 默认 0.0.0.0 是为了让其他 VPS 上的 Agent 能直连 100.89.0.11:8000 上报; # 若所有 Agent 都改走 tailscale serve 的 HTTPS 地址,HOST=127.0.0.1 更安全: # GET 接口对 tailnet/本机零鉴权,绑公网 IP 时资产清单会被任意读取。 # 注:生产由 systemd 拉起,绑定地址在 deploy/vps-manager.service 的 ExecStart 里。 HOST="${HOST:-0.0.0.0}" PORT="${PORT:-8000}" exec .venv/bin/uvicorn app.main:app --host "$HOST" --port "$PORT" "$@"