# 🚀 快速部署指南 > **重要**: 提供的测试 token 格式不正确。请按照下面的说明获取正确的 API Token。 ## 📋 前置条件 ### 获取正确的 Cloudflare API Token 提供的 token `21f3fb278a15b732a4f52c95d5042d78d1a21` **不是正确的格式**。 正确的 Cloudflare API Token 格式类似: ``` v1.0-abc123def456...xyz (通常很长) ``` ### 如何获取: 1. **访问**: https://dash.cloudflare.com/profile/api-tokens 2. **点击**: "Create Token" 3. **选择**: "Create Custom Token" 4. **配置权限**: ``` Account Permissions: - Cloudflare Pages → Edit Zone Permissions: - DNS → Edit - Workers Routes → Edit - Zone → Edit ``` 5. **创建并复制** token(只显示一次!) ### 测试 Token ```bash # 使用 curl 测试 curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" # 或使用我们的测试脚本 python3 test_credentials.py ``` --- ## 🎯 三种部署方式 ### 方式 1: 使用一键启动脚本(最简单) ```bash ./start.sh ``` 选择: - `1` - Docker Compose(推荐) - `2` - Docker - `3` - Python 本地运行 ### 方式 2: Docker Compose ```bash # 1. 创建环境变量文件(可选) cp .env.example .env nano .env # 编辑填入你的凭据 # 2. 启动 docker-compose up -d # 3. 访问 # http://localhost:7860 # 4. 查看日志 docker-compose logs -f # 5. 停止 docker-compose down ``` ### 方式 3: 纯 Docker ```bash # 1. 构建镜像 docker build -t cloudflare-manager . # 2. 运行容器 docker run -d \ --name cloudflare-manager \ -p 7860:7860 \ cloudflare-manager # 3. 访问 # http://localhost:7860 # 4. 查看日志 docker logs -f cloudflare-manager # 5. 停止和删除 docker stop cloudflare-manager docker rm cloudflare-manager ``` ### 方式 4: Python 本地运行 ```bash # 1. 安装依赖 pip3 install -r requirements.txt # 2. 运行 Web 界面 python3 app.py # 3. 访问 # http://localhost:7860 ``` --- ## 🌐 Hugging Face Spaces 部署 ### 步骤 1: 创建 Space 1. 访问 https://huggingface.co/new-space 2. 填写: - **Space name**: cloudflare-manager - **License**: MIT - **SDK**: Gradio - **Python version**: 3.10 ### 步骤 2: 准备文件 确保根目录有这个文件(已创建): **README.md** (用于 Hugging Face): ```yaml --- title: Cloudflare Manager emoji: ☁️ colorFrom: orange colorTo: yellow sdk: gradio sdk_version: "4.0.0" app_file: app.py pinned: false license: mit --- ``` ### 步骤 3: 上传文件 **方式 A: Web 上传** 1. 在 Space 页面点击 "Files and versions" 2. 拖拽上传所有文件: - `app.py` ✅ **必需** - `cloudflare_manager.py` ✅ **必需** - `requirements.txt` ✅ **必需** - 其他文件(可选) **方式 B: Git 推送** ```bash # Clone your space git clone https://huggingface.co/spaces/YOUR_USERNAME/cloudflare-manager cd cloudflare-manager # Copy files cp /path/to/project/*.py . cp /path/to/project/requirements.txt . cp /path/to/project/README_HUGGINGFACE.md README.md # Commit and push git add . git commit -m "Initial deployment" git push ``` ### 步骤 4: 配置 Secrets(推荐) 在 Space Settings → Repository secrets: ``` CLOUDFLARE_EMAIL=your-email@example.com CLOUDFLARE_TOKEN=your-correct-api-token ``` 这样凭据会自动预填充。 ### 步骤 5: 访问 Space 会自动构建,几分钟后访问: ``` https://huggingface.co/spaces/YOUR_USERNAME/cloudflare-manager ``` --- ## 📝 使用 Web 界面 ### 1. 打开界面 访问 http://localhost:7860 (本地) 或你的 Space URL ### 2. 输入凭据 在顶部输入: - **Cloudflare Email**: 你的 Cloudflare 邮箱 - **API Token**: 你的 API Token ### 3. 测试连接 点击 "Connection Test" 标签,然后点击 "Test Connection" 应该看到: ``` ✓ Connected! Account: Your Account Name ID: abc123... ``` ### 4. 使用功能 #### 📦 管理 Pages 项目 **列出项目:** - 进入 "Pages Projects" 标签 - 点击 "List Projects" **创建项目:** - 输入项目名称 - 输入分支(默认 main) - 点击 "Create Project" #### 🌐 管理域名和 Zones **列出 Zones:** - 进入 "Domains & Zones" 标签 - 点击 "List Zones" **创建 Zone 并获取 Nameservers:** - 输入域名(如 example.com) - 点击 "Create Zone" - 复制显示的 Nameservers - 添加到你的域名注册商 **示例输出:** ``` ✓ Zone created for example.com Zone ID: abc123... 📋 Add these nameservers to your domain registrar: ns1.cloudflare.com ns2.cloudflare.com ``` #### 🔗 绑定域名到 Pages - 进入 "Bind Domain" 标签 - 输入项目名称 - 输入域名 - 点击 "Bind Domain" #### ⚡ 配置 Worker 路由 - 进入 "Worker Routes" 标签 - 输入 Zone ID - 输入路由模式(如 `example.com/api/*`) - 输入 Worker 脚本名称 - 点击 "Create Route" --- ## 🔧 CLI 工具 除了 Web 界面,还可以使用命令行: ### 快速启动向导 ```bash python3 quickstart.py ``` ### 交互式菜单 ```bash python3 cloudflare_manager.py ``` ### 运行示例 ```bash python3 example_usage.py ``` ### 运行测试 ```bash python3 test_manager.py ``` --- ## 💻 Python API ```python from cloudflare_manager import CloudflareManager, CloudflareAccount # 1. 初始化 account = CloudflareAccount( email="your-email@example.com", token="your-correct-token" # 正确的格式! ) cf = CloudflareManager(account) # 2. 创建 Pages 项目 project = cf.create_pages_project("my-site", "main") print(f"Created: {project['subdomain']}") # 3. 创建 Zone 获取 Nameservers zone = cf.create_zone("example.com") print("Nameservers:") for ns in zone["name_servers"]: print(f" {ns}") # 4. 绑定域名 cf.add_pages_domain("my-site", "example.com") print("Domain bound!") # 5. 列出所有项目 projects = cf.list_pages_projects() for p in projects: print(f"- {p['name']}") # 6. 列出所有 Zones zones = cf.list_zones() for z in zones: print(f"- {z['name']}") # 7. 创建 Worker 路由 zone_id = zones[0]['id'] cf.create_worker_route( zone_id=zone_id, pattern="example.com/api/*", script_name="my-worker" ) ``` --- ## ⚠️ 常见问题 ### Q1: Token 无效 **错误**: "Invalid request headers" 或 "Invalid format for Authorization header" **原因**: - 提供的 token `21f3fb278a15b732a4f52c95d5042d78d1a21` 不是正确格式 - 正确的 token 应该以 `v1.0-` 开头,且很长 **解决**: 按照上面的说明重新创建 token ### Q2: 没有权限 **错误**: "Permission denied" **解决**: 确保 token 有以下权限: - Account > Cloudflare Pages > Edit - Zone > DNS > Edit - Zone > Workers Routes > Edit ### Q3: Docker 端口被占用 **错误**: "Port 7860 is already in use" **解决**: ```bash # 使用不同端口 docker run -d -p 8080:7860 cloudflare-manager # 或停止占用进程 lsof -ti:7860 | xargs kill -9 ``` ### Q4: gradio 模块未找到 **错误**: "No module named 'gradio'" **解决**: ```bash pip3 install gradio # 或 pip3 install -r requirements.txt ``` --- ## 📚 完整文档 - **[快速开始](GET_STARTED.md)** - 5分钟入门 - **[使用指南](USAGE_GUIDE.md)** - 完整使用说明 - **[API 参考](API_REFERENCE.md)** - 所有 API 方法 - **[部署指南](DEPLOYMENT.md)** - 详细部署说明 - **[项目总结](PROJECT_SUMMARY.md)** - 技术概览 --- ## ✅ 检查清单 部署前检查: - [ ] 获取了正确格式的 API Token - [ ] Token 有足够的权限 - [ ] 已安装 Docker 或 Python 3.10+ - [ ] 端口 7860 可用 - [ ] 已阅读文档 --- ## 🎉 完成! 现在你可以: 1. ✅ 管理 Pages 项目 2. ✅ 部署静态网站 3. ✅ 绑定自定义域名 4. ✅ 获取 Nameservers 5. ✅ 配置 Worker 路由 **需要帮助?** 查看完整文档或运行测试: ```bash python3 test_manager.py ``` **享受使用!** 🚀