🚀 快速部署指南
重要: 提供的测试 token 格式不正确。请按照下面的说明获取正确的 API Token。
📋 前置条件
获取正确的 Cloudflare API Token
提供的 token 21f3fb278a15b732a4f52c95d5042d78d1a21 不是正确的格式。
正确的 Cloudflare API Token 格式类似:
v1.0-abc123def456...xyz (通常很长)
如何获取:
- 访问: https://dash.cloudflare.com/profile/api-tokens
- 点击: "Create Token"
- 选择: "Create Custom Token"
- 配置权限:
Account Permissions: - Cloudflare Pages → Edit Zone Permissions: - DNS → Edit - Workers Routes → Edit - Zone → Edit - 创建并复制 token(只显示一次!)
测试 Token
# 使用 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: 使用一键启动脚本(最简单)
./start.sh
选择:
1- Docker Compose(推荐)2- Docker3- Python 本地运行
方式 2: Docker Compose
# 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
# 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 本地运行
# 1. 安装依赖
pip3 install -r requirements.txt
# 2. 运行 Web 界面
python3 app.py
# 3. 访问
# http://localhost:7860
🌐 Hugging Face Spaces 部署
步骤 1: 创建 Space
- 访问 https://huggingface.co/new-space
- 填写:
- 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 界面,还可以使用命令行:
快速启动向导
python3 quickstart.py
交互式菜单
python3 cloudflare_manager.py
运行示例
python3 example_usage.py
运行测试
python3 test_manager.py
💻 Python API
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"
解决:
# 使用不同端口
docker run -d -p 8080:7860 cloudflare-manager
# 或停止占用进程
lsof -ti:7860 | xargs kill -9
Q4: gradio 模块未找到
错误: "No module named 'gradio'"
解决:
pip3 install gradio
# 或
pip3 install -r requirements.txt
📚 完整文档
✅ 检查清单
部署前检查:
- 获取了正确格式的 API Token
- Token 有足够的权限
- 已安装 Docker 或 Python 3.10+
- 端口 7860 可用
- 已阅读文档
🎉 完成!
现在你可以:
- ✅ 管理 Pages 项目
- ✅ 部署静态网站
- ✅ 绑定自定义域名
- ✅ 获取 Nameservers
- ✅ 配置 Worker 路由
需要帮助? 查看完整文档或运行测试:
python3 test_manager.py
享受使用! 🚀