101 lines
2.9 KiB
Bash
101 lines
2.9 KiB
Bash
#!/bin/bash
|
|
# 菲西尔咨询表单服务 - 快速部署脚本
|
|
|
|
set -e
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN}菲西尔咨询表单服务 - 快速部署${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
|
|
# 检查 Python 版本
|
|
echo -e "\n${YELLOW}[1/5] 检查 Python 环境...${NC}"
|
|
python3 --version || {
|
|
echo -e "${RED}错误: 未找到 Python3${NC}"
|
|
exit 1
|
|
}
|
|
echo -e "${GREEN}✓ Python 检查通过${NC}"
|
|
|
|
# 检查环境变量
|
|
echo -e "\n${YELLOW}[2/5] 检查环境变量...${NC}"
|
|
|
|
if [ ! -f .env ]; then
|
|
echo -e "${YELLOW}未找到 .env 文件,创建示例...${NC}"
|
|
cp .env.example .env
|
|
echo -e "${YELLOW}请编辑 .env 文件填写配置${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
source .env
|
|
|
|
if [ -z "$FEISHU_APP_ID" ] || [ "$FEISHU_APP_ID" == "cli_xxx" ]; then
|
|
echo -e "${RED}错误: 请在 .env 中配置 FEISHU_APP_ID${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$FEISHU_BITABLE_APP_TOKEN" ] || [ "$FEISHU_BITABLE_APP_TOKEN" == "basxxx" ]; then
|
|
echo -e "${RED}错误: 请在 .env 中配置 FEISHU_BITABLE_APP_TOKEN${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ 环境变量检查通过${NC}"
|
|
|
|
# 创建数据目录
|
|
echo -e "\n${YELLOW}[3/5] 创建数据目录...${NC}"
|
|
DATA_DIR="${DATA_DIR:-/opt/ai-landing/data}"
|
|
sudo mkdir -p "$DATA_DIR"
|
|
sudo chown $(whoami):$(whoami) "$DATA_DIR"
|
|
echo -e "${GREEN}✓ 数据目录创建成功: $DATA_DIR${NC}"
|
|
|
|
# 测试飞书连接
|
|
echo -e "\n${YELLOW}[4/5] 测试飞书连接...${NC}"
|
|
python3 -c "
|
|
from consult_service import ConsultService
|
|
service = ConsultService()
|
|
try:
|
|
token = service.bitable_client.get_access_token()
|
|
print('✓ 飞书连接测试成功')
|
|
except Exception as e:
|
|
print(f'✗ 飞书连接失败: {e}')
|
|
exit(1)
|
|
"
|
|
|
|
# 启动服务
|
|
echo -e "\n${YELLOW}[5/5] 启动服务...${NC}"
|
|
PORT="${PORT:-4001}"
|
|
echo -e "${GREEN}服务将在端口 $PORT 启动${NC}"
|
|
echo -e "${GREEN}API 端点: http://localhost:$PORT/api/consult${NC}"
|
|
echo -e "${GREEN}健康检查: http://localhost:$PORT/api/consult/health${NC}"
|
|
|
|
# 使用 nohup 后台运行
|
|
nohup python3 consult-service.py > service.log 2>&1 &
|
|
SERVICE_PID=$!
|
|
|
|
echo $SERVICE_PID > .service.pid
|
|
|
|
sleep 2
|
|
|
|
# 检查服务是否启动
|
|
if ps -p $SERVICE_PID > /dev/null; then
|
|
echo -e "\n${GREEN}========================================${NC}"
|
|
echo -e "${GREEN}✓ 服务启动成功!${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "进程 ID: $SERVICE_PID"
|
|
echo -e "日志文件: service.log"
|
|
echo -e "\n停止服务: kill \$(cat .service.pid)"
|
|
else
|
|
echo -e "\n${RED}错误: 服务启动失败${NC}"
|
|
echo -e "请查看日志: tail -f service.log"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "\n${YELLOW}下一步操作:${NC}"
|
|
echo "1. 配置 Nginx 反向代理(可选)"
|
|
echo "2. 设置系统服务自动启动"
|
|
echo "3. 查看飞书多维表格配置指南: FEISHU_BITABLE_SETUP.md"
|