grok2api / deploy.sh
FUCAT's picture
Deploy grok2api to HF Spaces (Docker)
7e55e53
Raw
History Blame Contribute Delete
3.2 kB
#!/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}"