#!/bin/bash # 自动化部署脚本 for Hugging Face Spaces set -e echo "==========================================" echo "Grok2API Hugging Face Spaces 部署助手" echo "==========================================" echo "" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 检查是否在正确的目录 if [ ! -f "pyproject.toml" ]; then echo -e "${RED}错误: 请在 grok2api 项目根目录运行此脚本${NC}" exit 1 fi # 步骤 1: 检查 app 目录 echo -e "${YELLOW}[1/5] 检查源代码...${NC}" if [ ! -d "app" ]; then echo -e "${YELLOW}app/ 目录不存在,正在从 GitHub 克隆...${NC}" # 克隆原项目 git clone https://github.com/chenyme/grok2api.git temp_grok2api # 复制 app 目录 cp -r temp_grok2api/app ./ # 清理 rm -rf temp_grok2api echo -e "${GREEN}✓ 源代码获取完成${NC}" else echo -e "${GREEN}✓ app/ 目录已存在${NC}" fi # 步骤 2: 检查必要文件 echo -e "${YELLOW}[2/5] 检查配置文件...${NC}" required_files=( "Dockerfile" "pyproject.toml" "requirements.txt" "config.defaults.toml" ".dockerignore" "scripts/entrypoint.sh" "scripts/init_storage.sh" ) all_files_exist=true for file in "${required_files[@]}"; do if [ ! -f "$file" ]; then echo -e "${RED}✗ 缺少文件: $file${NC}" all_files_exist=false else echo -e "${GREEN}✓ $file${NC}" fi done if [ "$all_files_exist" = false ]; then echo -e "${RED}错误: 缺少必要文件${NC}" exit 1 fi # 步骤 3: 设置脚本权限 echo -e "${YELLOW}[3/5] 设置脚本权限...${NC}" chmod +x scripts/entrypoint.sh chmod +x scripts/init_storage.sh echo -e "${GREEN}✓ 权限设置完成${NC}" # 步骤 4: Git 配置检查 echo -e "${YELLOW}[4/5] Git 配置检查...${NC}" if [ ! -d ".git" ]; then echo -e "${YELLOW}初始化 git 仓库...${NC}" git init echo -e "${GREEN}✓ Git 初始化完成${NC}" else echo -e "${GREEN}✓ Git 仓库已存在${NC}" fi # 添加所有文件 git add . # 显示状态 echo "" echo "Git 状态:" git status --short # 步骤 5: 提示下一步 echo "" echo -e "${YELLOW}[5/5] 准备就绪!${NC}" echo "" echo "==========================================" echo "下一步操作:" echo "==========================================" echo "" echo "1. 创建 Hugging Face Space:" echo " https://huggingface.co/new-space" echo " - SDK: Docker" echo " - Hardware: CPU basic" echo "" echo "2. 提交并推送代码:" echo " git commit -m 'Initial deployment'" echo " git remote add hf https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE" echo " git push hf main" echo "" echo "3. 配置环境变量(在 Space Settings):" echo " APP_KEY=your_password" echo " API_KEY=sk-your-api-key" echo " APP_URL=https://YOUR_USERNAME-YOUR_SPACE.hf.space" echo " DATA_DIR=/data" echo " ACCOUNT_STORAGE=local" echo "" echo "4. 启用 Persistent Storage" echo "" echo "5. 配置保活项目(参考 keepalive/README.md)" echo "" echo "详细说明请查看: DEPLOY_GUIDE.md" echo "" echo -e "${GREEN}准备完成!祝部署顺利!${NC}"