初始化文档

This commit is contained in:
2025-11-09 14:21:55 +08:00
commit e97717dfe7
26 changed files with 8747 additions and 0 deletions

334
docs/guide/configuration.md Normal file
View File

@@ -0,0 +1,334 @@
---
title: 配置指南
createTime: 2025/11/09 00:26:55
permalink: /guide/configuration
---
# 配置说明
本文档详细说明了 Cloud Index 的各种配置选项。
## 配置方式
Cloud Index 通过环境变量进行配置,有两种主要方式:
### 1. 环境变量文件 (.env)
在项目根目录创建 `.env` 文件:
```bash
cp .env.example .env
```
编辑 `.env` 文件,添加需要的配置。
### 2. 系统环境变量
直接在系统中设置环境变量(适用于 Docker、Serverless 等环境)。
## 存储后端配置
### STORAGE_TYPE必需
选择要使用的存储后端:
```env
# Cloudflare R2
STORAGE_TYPE=r2
# Amazon S3
STORAGE_TYPE=s3
# GitHub 仓库
STORAGE_TYPE=github
# GitHub Release
STORAGE_TYPE=github-release
```
## Cloudflare R2 配置
`STORAGE_TYPE=r2` 时,需要配置以下环境变量:
```env
# ===== R2 基础配置 =====
STORAGE_TYPE=r2
# R2 API 访问凭证
ACCESS_KEY_ID=your_access_key_id
SECRET_ACCESS_KEY=your_secret_access_key
# R2 存储桶信息
R2_ENDPOINT_URL=https://your-account-id.r2.cloudflarestorage.com
R2_BUCKET_NAME=your-bucket-name
R2_REGION=auto
# ===== 可选配置 =====
# 公开访问 URL用于生成可分享的文件链接
R2_PUBLIC_URL=https://pub-your-bucket.r2.dev
# 预签名 URL 过期时间(秒),默认 3600
R2_PRESIGN_EXPIRES=3600
```
**配置说明:**
| 配置项 | 说明 | 获取方式 |
|-------|------|---------|
| `ACCESS_KEY_ID` | R2 API Token ID | Cloudflare 控制面板 |
| `SECRET_ACCESS_KEY` | R2 API Token Secret | Cloudflare 控制面板 |
| `R2_ENDPOINT_URL` | R2 端点 URL | Cloudflare 控制面板Account ID |
| `R2_BUCKET_NAME` | 存储桶名称 | Cloudflare 控制面板 |
| `R2_PUBLIC_URL` | 公开 URL可选 | Cloudflare 控制面板 → Custom Domain |
**获取凭证步骤:**
1. 登录 [Cloudflare 控制面板](https://dash.cloudflare.com)
2. 进入 R2 → API Tokens
3. 创建新 Token复制 ID 和 Secret
4. 记录你的 Account ID在 R2 仓库页面显示)
## Amazon S3 配置
`STORAGE_TYPE=s3` 时,需要配置以下环境变量:
```env
# ===== S3 基础配置 =====
STORAGE_TYPE=s3
# AWS 访问凭证
ACCESS_KEY_ID=your_aws_access_key
SECRET_ACCESS_KEY=your_aws_secret_key
# S3 存储桶信息
S3_BUCKET_NAME=your-bucket-name
S3_REGION=us-east-1
# ===== 可选配置 =====
# 自定义 S3 端点(用于兼容的 S3 服务)
S3_ENDPOINT_URL=https://s3.amazonaws.com
# 公开访问 URL
S3_PUBLIC_URL=https://your-bucket-name.s3.amazonaws.com
# 预签名 URL 过期时间(秒)
S3_PRESIGN_EXPIRES=3600
```
**配置说明:**
| 配置项 | 说明 | 获取方式 |
|-------|------|---------|
| `ACCESS_KEY_ID` | AWS Access Key ID | AWS IAM 控制台 |
| `SECRET_ACCESS_KEY` | AWS Secret Access Key | AWS IAM 控制台 |
| `S3_BUCKET_NAME` | 存储桶名称 | AWS S3 控制台 |
| `S3_REGION` | 存储桶区域 | AWS S3 控制台 |
**常用区域代码:**
```
us-east-1 - 美国东部N. Virginia
us-west-2 - 美国西部Oregon
eu-west-1 - 欧洲Ireland
ap-northeast-1 - 亚太Tokyo
cn-north-1 - 中国(北京)
```
## GitHub 存储配置
`STORAGE_TYPE=github` 时,需要配置以下环境变量:
```env
# ===== GitHub 基础配置 =====
STORAGE_TYPE=github
# GitHub 账户信息
GITHUB_REPO_OWNER=your-username
GITHUB_REPO_NAME=your-repo-name
GITHUB_ACCESS_TOKEN=your_github_personal_token
# ===== 可选配置 =====
# 使用的分支,默认 main
GITHUB_BRANCH=main
# GitHub Raw 内容代理 URL用于加速访问
GITHUB_RAW_PROXY_URL=https://raw.ghproxy.com
# 预签名 URL 过期时间(秒)
GITHUB_PRESIGN_EXPIRES=3600
```
**配置说明:**
| 配置项 | 说明 | 获取方式 |
|-------|------|---------|
| `GITHUB_REPO_OWNER` | GitHub 用户名或组织名 | GitHub Profile |
| `GITHUB_REPO_NAME` | 仓库名称 | GitHub 仓库页面 |
| `GITHUB_ACCESS_TOKEN` | Personal Access Token | GitHub Settings → Developer settings |
| `GITHUB_RAW_PROXY_URL` | Raw 内容代理(可选) | 第三方代理服务 |
**获取 Token 步骤:**
1. 登录 GitHub
2. 进入 Settings → Developer settings → Personal access tokens
3. 创建新 TokenNew fine-grained personal access token
4. 勾选 `contents` 权限(读写仓库内容)
5. 复制 Token保存到 `.env` 文件
**推荐代理服务:**
```
https://raw.ghproxy.com - 国内加速
https://ghproxy.com - 国内加速
https://raw.githubusercontent.com - 官方(无加速)
```
## 应用配置
### 缓存配置
```env
# 缩略图缓存过期时间(秒),默认 36001小时
THUMB_TTL_SECONDS=3600
```
### 应用服务器配置
```env
# Flask 调试模式(开发环境推荐启用)
FLASK_ENV=development
FLASK_DEBUG=1
# 应用监听地址
FLASK_RUN_HOST=0.0.0.0
# 应用监听端口
FLASK_RUN_PORT=5000
```
### 日志配置
```env
# 日志级别
LOG_LEVEL=INFO
# 日志文件路径
LOG_FILE=/var/log/Cloud Index/app.log
```
## 完整配置示例
### R2 + 国内代理
```env
# 存储配置
STORAGE_TYPE=r2
ACCESS_KEY_ID=abc123xyz
SECRET_ACCESS_KEY=def456uvw
R2_ENDPOINT_URL=https://account123.r2.cloudflarestorage.com
R2_BUCKET_NAME=my-bucket
R2_REGION=auto
R2_PUBLIC_URL=https://pub-my-bucket.r2.dev
R2_PRESIGN_EXPIRES=7200
# 应用配置
FLASK_ENV=production
FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=8080
THUMB_TTL_SECONDS=7200
```
### GitHub + 加速代理
```env
# 存储配置
STORAGE_TYPE=github
GITHUB_REPO_OWNER=myusername
GITHUB_REPO_NAME=my-storage
GITHUB_ACCESS_TOKEN=ghp_xxxxxxxxxxxxxxxxxx
GITHUB_BRANCH=main
GITHUB_RAW_PROXY_URL=https://raw.ghproxy.com
# 应用配置
FLASK_ENV=production
THUMB_TTL_SECONDS=3600
```
### Amazon S3 + CDN
```env
# 存储配置
STORAGE_TYPE=s3
ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
S3_BUCKET_NAME=my-bucket
S3_REGION=us-west-2
S3_PUBLIC_URL=https://d123.cloudfront.net
# 应用配置
FLASK_ENV=production
FLASK_RUN_PORT=5000
```
## 环境变量优先级
1. 系统环境变量(最高)
2. `.env` 文件变量
3. 代码中的默认值(最低)
## 配置验证
启动应用后,检查日志输出确保配置正确:
```bash
python app.py
```
如果看到以下输出,说明配置成功:
```
* Serving Flask app 'app'
* Running on http://127.0.0.1:5000
[INFO] Storage backend initialized: R2
```
如果看到错误信息,检查:
1. 必需的环境变量是否都已设置
2. 凭证是否正确
3. 网络连接是否正常
## 故障排除
### 环境变量未被读取
确保:
1. `.env` 文件在项目根目录
2. 变量名称正确(区分大小写)
3. 没有多余的空格或引号
### 连接存储后端失败
检查:
1. 网络连接是否正常
2. 凭证是否有效
3. 防火墙是否阻止出站连接
4. 存储桶是否存在
### 公开 URL 不可用
确保:
1. 已配置公开 URL可选
2. 存储桶允许公开访问
3. CDN如有已配置
## 下一步
- [环境变量详解](./environment.md) - 每个环境变量的详细说明
- [部署指南](./deployment.md) - 生产环境部署
- [存储后端指南](../storage/) - 详细的后端配置指南