carcost/deploy-web.sh
yuany3721 71e11eaf30 feat: Add OIDC authentication with Authentik and refactor project structure
Backend:
- Add auth.py for JWT token verification
- Update main.py to protect all routes with auth middleware
- Remove dashboard router (frontend handles aggregation)
- Add Docker support with Dockerfile and docker-compose.yml

Frontend:
- Add OIDC authentication using oidc-client-ts with PKCE flow
- Create router.js with auth guards for automatic login/logout
- Add api.js for unified Axios instance with auth headers
- Add composables: useAuth.js, useVehicleData.js for caching
- Add views/Main.vue as main application page
- Simplify App.vue to router-view container
- Add deploy-web.sh deployment script

Documentation:
- Update AGENTS.md with new architecture and auth flow
2026-04-12 13:31:27 +08:00

87 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# CarCost Web 前端部署脚本
# 功能:构建 Vue 项目并部署到服务器指定目录
set -e # 遇到错误立即退出
# 配置
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
WEB_DIR="${SCRIPT_DIR}/web"
SOURCE_DIR="${WEB_DIR}/dist"
TARGET_DIR="/home/yuany3721/webpages/carcost"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${YELLOW}========================================${NC}"
echo -e "${YELLOW} 开始部署 CarCost Web 前端${NC}"
echo -e "${YELLOW}========================================${NC}"
echo ""
# 检查 web 目录是否存在
if [ ! -d "$WEB_DIR" ]; then
echo -e "${RED}错误:找不到 web 目录: $WEB_DIR${NC}"
exit 1
fi
# 切换到 web 目录
cd "$WEB_DIR"
# 检查 package.json
if [ ! -f "package.json" ]; then
echo -e "${RED}错误:无法找到 package.json${NC}"
exit 1
fi
# 步骤 1: 构建项目
echo -e "${YELLOW}[1/3] 正在构建项目...${NC}"
npm run build
if [ $? -ne 0 ]; then
echo -e "${RED}构建失败!${NC}"
exit 1
fi
echo -e "${GREEN}✓ 构建成功${NC}"
echo ""
# 步骤 2: 检查源目录是否存在
if [ ! -d "$SOURCE_DIR" ]; then
echo -e "${RED}错误:构建输出目录不存在: $SOURCE_DIR${NC}"
exit 1
fi
# 步骤 3: 清空目标目录
echo -e "${YELLOW}[2/3] 正在清空目标目录...${NC}"
if [ -d "$TARGET_DIR" ]; then
rm -rf "${TARGET_DIR:?}/"*
echo -e "${GREEN}✓ 已清空: $TARGET_DIR${NC}"
else
echo -e "${YELLOW}目标目录不存在,正在创建...${NC}"
mkdir -p "$TARGET_DIR"
echo -e "${GREEN}✓ 已创建: $TARGET_DIR${NC}"
fi
echo ""
# 步骤 4: 复制文件
echo -e "${YELLOW}[3/3] 正在复制文件到目标目录...${NC}"
cp -r "${SOURCE_DIR}/"* "$TARGET_DIR/"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 文件复制成功${NC}"
else
echo -e "${RED}文件复制失败!${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} 部署完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "目标目录: ${TARGET_DIR}"