feat: SSH 改纯密码认证(paramiko,禁用密钥/agent 不弹授权框,密码放 .env)+ 部署配置全迁 .env(config.py 不再内置 STF/SSH/Tailscale 值,.env.example 补全 11 项)

This commit is contained in:
2026-08-11 14:12:52 +08:00
parent 136613bc12
commit 2e491b19e2
7 changed files with 176 additions and 51 deletions
+20 -16
View File
@@ -30,7 +30,8 @@ def _env(key, default):
# ================== STF 配置 ==================
STF_URL = _env("STF_URL", "http://192.168.20.220:7100")
# 部署相关配置统一从 .env 读取(模板见 .env.example),config.py 不再内置具体值
STF_URL = _env("STF_URL", "")
STF_TOKEN = _env("STF_TOKEN", "") # 写入 .env,不要提交到 git
# ================== adb 路径 ==================
@@ -65,21 +66,24 @@ APK_DIR = os.path.join(DATA_DIR, "apks")
# 仅单实例部署时设为 True:多实例共用同一 STF 账户时不要开,会误释放另一实例的运行中任务。
AUTO_RELEASE_STALE_OCCUPY = _env("AUTO_RELEASE_STALE_OCCUPY", "false").lower() in ("1", "true", "yes")
# ================== 维护(STF 容器一键重启 + STF 设备管理) ==================
# 通过 SSH 到部署机执行 docker 命令/改脚本。
# 前置条件:本机可免密 SSH 到目标机(stf@220 需已授权本机公钥)。
STF_SSH_TARGET = _env("STF_SSH_TARGET", "[email protected]")
STF_DOCKER_CONTAINER = _env("STF_DOCKER_CONTAINER", "stf")
# STF 设备管理:"工具 → STF 设备管理"维护设备池。
# 220 上 adb 跑在独立容器(connect_devices.sh 里是 docker exec adb adb ...);
# 设备列表由脚本的 DEVICES 数组维护(cron 每 5 分钟补连)。
STF_ADB_CONTAINER = _env("STF_ADB_CONTAINER", "adb")
STF_SCRIPT_PATH = _env("STF_SCRIPT_PATH", "/mnt/data/openstf/connect_devices.sh")
# ================== SSH 到部署机(维护页重启 STF + 工具页 STF 设备管理) ==================
# 通过 SSH 到部署机执行 docker 命令/改脚本。配置从 .env 读取:
# STF_SSH_TARGET SSH 目标(user@host)
# STF_SSH_PASSWORD SSH 密码(配置后 paramiko 纯密码登录,跨平台;
# 留空则退回系统 ssh 免密密钥 BatchMode=yes)
# STF_DOCKER_CONTAINER STF Docker 容器名
# STF_ADB_CONTAINER 220 上 adb Docker 容器名(STF 设备管理执行 adb 用)
# STF_SCRIPT_PATH STF 设备池脚本路径(增删设备读写其 DEVICES 列表)
STF_SSH_TARGET = _env("STF_SSH_TARGET", "")
STF_SSH_PASSWORD = _env("STF_SSH_PASSWORD", "")
STF_DOCKER_CONTAINER = _env("STF_DOCKER_CONTAINER", "")
STF_ADB_CONTAINER = _env("STF_ADB_CONTAINER", "")
STF_SCRIPT_PATH = _env("STF_SCRIPT_PATH", "")
# ================== 维护(Tailscale 管理) ==================
# 维护页"Tailscale 管理"调用官方 API v2 管理 tailnet 设备。
# TAILSCALE_API_KEY:Tailscale 后台 → Settings → API Access Tokens 生成(或 OAuth client_id:secret)
# TAILSCALE_TAILNET:tailnet 名称/ID,个人账号一般是登录邮箱前缀
# ================== Tailscale 管理(工具页) ==================
# 调用官方 API v2 管理 tailnet 设备。配置从 .env 读取:
# TAILSCALE_API_KEY:后台 → Settings → API Access Tokens 生成(或 OAuth client_id:secret)
# TAILSCALE_TAILNET:tailnet 名称/ID,个人账号一般是登录邮箱前缀
# 安全:密钥用环境变量/.env 注入,不要写死在代码或提交到 git。
TAILSCALE_API_KEY = _env("TAILSCALE_API_KEY", "") # 写入 .env,不要提交到 git
TAILSCALE_TAILNET = _env("TAILSCALE_TAILNET", "[email protected]")
TAILSCALE_TAILNET = _env("TAILSCALE_TAILNET", "")