forked from admin/PlantAI-rag-new
- 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>
52 lines
1.9 KiB
Bash
Executable File
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
|