Files
PlantAI-rag-new/deploy/toggle_bioflow_176.sh
adminandClaude Fable 5 16bde32020 feat(ui): 右上角生信跳转按钮+四按钮文字标签
- TopBar 新增「生信」按钮(仅生信模块不可用时显示):点击开新窗访问
  PlantAI-dev(当前主机名:9017,公网/内网自适应)
- 扩展/生信/设置/主题四按钮配文字标签(图标+文字并排,宽度自适应)
- 新增 deploy/toggle_bioflow_176.sh <off|on>:一键开关 176 生信模块
  (改 BIOFLOW_ENABLED + 重启 BFF;off 时 /api/bioflow/health 404,
  前端生信 TAB 自动隐藏)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-16 20:44:23 +08:00

52 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# deploy/toggle_bioflow_176.sh —— 176 生信模块快速开关(off/on)
# 用法(在 176 上执行,或从 175 ssh 过去执行):
# bash /srv/plantai/toggle_bioflow_176.sh off # 关生信:env=false + 重启 BFF → 生信 TAB/入口消失
# bash /srv/plantai/toggle_bioflow_176.sh on # 开生信:env=true + 重启 BFF → 生信 TAB 恢复
# 原理:BFF main.py 按 BIOFLOW_ENABLED 决定是否注册 bioflow 反代路由;
# 不注册时 /api/bioflow/health 返回 404,前端 probe 落 offline,生信 TAB 自动隐藏。
set -uo pipefail
ACTION="${1:-}"
ENV_FILE="/srv/plantai/install/sdk/.env"
PY="/srv/plantai/install/venv/bin/python"
if [ "$ACTION" != "off" ] && [ "$ACTION" != "on" ]; then
echo "用法: $0 <off|on>" >&2
exit 2
fi
VAL="true"
[ "$ACTION" = "off" ] && VAL="false"
# 1. 改 env
if grep -q "^BIOFLOW_ENABLED=" "$ENV_FILE"; then
sed -i "s/^BIOFLOW_ENABLED=.*/BIOFLOW_ENABLED=$VAL/" "$ENV_FILE"
else
echo "BIOFLOW_ENABLED=$VAL" >> "$ENV_FILE"
fi
echo "BIOFLOW_ENABLED -> $VAL"
# 2. 重启 BFF 8090(仅取 LISTEN 者;venv 必须绝对路径,cd sdk 后才能 import app.main)
kill $(lsof -ti tcp:8090 -sTCP:LISTEN) 2>/dev/null
sleep 2
cd /srv/plantai/install && set -a && . sdk/.env && set +a
( cd sdk && setsid "$PY" -m uvicorn app.main:app --host 127.0.0.1 --port 8090 \
> /tmp/plantai-sdk.log 2>&1 < /dev/null & ) && disown -a
# 3. 自检
for i in $(seq 1 20); do
sleep 2
curl -s -m 3 http://127.0.0.1:8090/api/health >/dev/null 2>&1 && break
done
curl -s -m 10 http://127.0.0.1:8090/api/health | head -c 150
echo
if [ "$ACTION" = "off" ]; then
CODE=$(curl -s -o /dev/null -w "%{http_code}" -m 8 http://127.0.0.1:8090/api/bioflow/health)
echo "bioflow/health HTTP $CODE (off 期望 404)"
[ "$CODE" = "404" ] && echo "OFF_OK" || echo "OFF_CHECK_FAIL"
else
curl -s -m 8 http://127.0.0.1:8090/api/bioflow/health | head -c 150
echo
fi