| #!/bin/bash |
| |
|
|
| 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' |
|
|
| |
| if [ ! -f "pyproject.toml" ]; then |
| echo -e "${RED}错误: 请在 grok2api 项目根目录运行此脚本${NC}" |
| exit 1 |
| fi |
|
|
| |
| 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 |
| |
| |
| cp -r temp_grok2api/app ./ |
| |
| |
| rm -rf temp_grok2api |
| |
| echo -e "${GREEN}✓ 源代码获取完成${NC}" |
| else |
| echo -e "${GREEN}✓ app/ 目录已存在${NC}" |
| fi |
|
|
| |
| 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 |
|
|
| |
| echo -e "${YELLOW}[3/5] 设置脚本权限...${NC}" |
| chmod +x scripts/entrypoint.sh |
| chmod +x scripts/init_storage.sh |
| echo -e "${GREEN}✓ 权限设置完成${NC}" |
|
|
| |
| 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 |
|
|
| |
| 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}" |
|
|