File size: 7,983 Bytes
32e4bbf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 |
# 🚀 快速部署指南
> **重要**: 提供的测试 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
```
**享受使用!** 🚀
|