一个基于 Vue3 + Cloudflare 技术栈构建的图床服务🎉
CYI-Service/
├── front/ # Vue3 前端项目
└── service/ # Cloudflare Worker 后端项目
- Node.js 环境
- Cloudflare 账号
- 已创建的 Cloudflare D1 数据库
- 已创建的 Cloudflare KV 命名空间
npm install -g wrangler
npx wrangler login
项目提供两个部署脚本:
deploy-front.js
: 部署前端到 Cloudflare Pagesdeploy-service.js
: 部署后端到 Cloudflare Workers
npm run deploy:front
部署过程中需要输入:
- API 地址(你的 Worker 地址)
- Cloudflare Pages 项目名称
npm run deploy:service
部署过程中需要输入:
- D1 数据库名称
- D1 数据库 ID
- KV 命名空间 ID
- JWT Secret
npm run deploy
如果需要手动部署,可以按以下步骤操作:
- 复制
front/.env.example
为front/.env.production
- 修改
VITE_AXIOS_BASE_URL
为你的 API 地址 - 进入 front 目录:
cd front
- 安装依赖:
npm install
- 构建项目:
npm run build
- 部署到 Pages:
npx wrangler pages deploy dist
- 复制
service/wrangler.toml.example
为service/wrangler.toml
- 修改配置:
database_name
: D1 数据库名称database_id
: D1 数据库 IDid
: KV 命名空间 IDJWT_SECRET
: 自定义的 JWT 密钥
- 进入 service 目录:
cd service
- 安装依赖:
npm install
- 部署:
npx wrangler deploy
VITE_TITLE = '后台管理'
VITE_USE_HASH = 'false'
VITE_PUBLIC_PATH = '/'
VITE_AXIOS_BASE_URL = '你的 Worker 地址'
name = "your-worker-name"
main = "src/index.js"
compatibility_date = "2024-09-20"
[[d1_databases]]
binding = "CYI_IMGDB"
database_name = "your-database-name"
database_id = "your-database-id"
[[kv_namespaces]]
binding = "CYI_IMGKV"
id = "your-kv-namespace-id"
[vars]
JWT_SECRET = "your-jwt-secret"
-
D1 数据库 ID:
npx wrangler d1 list
-
KV 命名空间 ID:
npx wrangler kv:namespace list
- 确保已经通过
npx wrangler login
完成 Cloudflare 登录 - 部署前端前,确保 API 地址正确
- 部署后端前,确保已创建所需的 D1 数据库和 KV 命名空间
- 保管好你的 JWT Secret,它用于用户认证
本项目采用 MIT 许可证。