增加cloudflare一键部署
This commit is contained in:
1 parent
1765006d55
commit
b1fddfcc30
3 files changed
+76
-37
No files matched your search
@@ -13,6 +13,9 @@ RUN npm install
|
||||
# 复制所有源代码
|
||||
COPY danmu_api/ .
|
||||
|
||||
# 设置环境变量 TOKEN 默认值
|
||||
ENV TOKEN=87654321
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 9321
|
||||
|
||||
|
||||
+49
-37
@@ -1,6 +1,6 @@
|
||||
# 简单 Node.js API 服务器
|
||||
# 简单 弹幕 API 服务器
|
||||
|
||||
一个基于 Node.js 和 Express 的简单 API 服务器,支持弹弹play的动漫搜索、详情查询和弹幕评论功能,以及日志记录。
|
||||
一个基于 js 的弹幕 API 服务器,兼容弹弹play的搜索、详情查询和弹幕获取功能,以及日志记录。
|
||||
|
||||
## 功能
|
||||
- **API 接口**:
|
||||
@@ -9,13 +9,12 @@
|
||||
- `GET /api/v2/comment/:commentId?withRelated=true&chConvert=1`:获取指定弹幕评论,支持返回相关评论和字符转换。
|
||||
- `GET /api/logs`:获取最近的日志(最多 500 行,格式为 `[时间戳] 级别: 消息`)。
|
||||
- **日志记录**:捕获 `console.log`(info 级别)和 `console.error`(error 级别),JSON 内容格式化输出。
|
||||
- **部署支持**:支持本地运行、Docker 容器化和 Vercel 部署。
|
||||
- **部署支持**:支持本地运行、Docker 容器化、Vercel 一键部署、Cloudflare 一键部署和 Docker 一键启动。
|
||||
|
||||
## 前置条件
|
||||
- Node.js(v18 或更高版本)
|
||||
- npm
|
||||
- Docker(可选,用于容器化部署)
|
||||
- Vercel CLI(用于手动 Vercel 部署)
|
||||
|
||||
## 本地运行
|
||||
1. **克隆仓库**:
|
||||
@@ -50,8 +49,24 @@
|
||||
|
||||
2. **运行容器**:
|
||||
```bash
|
||||
docker run -p 9321:9321 danmu-api-server
|
||||
docker run -d -p 9321:9321 --name danmu-api -e TOKEN=your_token_here danmu-api-server
|
||||
```
|
||||
- 使用`-e TOKEN=your_token_here`设置`TOKEN`环境变量,覆盖Dockerfile中的默认值。
|
||||
|
||||
3. **测试 API**:
|
||||
使用 `http://{ip}:9321` 访问上述 API 接口。
|
||||
|
||||
## Docker 一键启动
|
||||
1. **拉取镜像**:
|
||||
```bash
|
||||
docker pull logvar/danmu-api:0.0.1
|
||||
```
|
||||
|
||||
2. **运行容器**:
|
||||
```bash
|
||||
docker run -d -p 9321:9321 --name danmu-api -e TOKEN=your_token_here logvar/danmu-api:0.0.1
|
||||
```
|
||||
- 使用`-e TOKEN=your_token_here`设置`TOKEN`环境变量。
|
||||
|
||||
3. **测试 API**:
|
||||
使用 `http://{ip}:9321` 访问上述 API 接口。
|
||||
@@ -63,53 +78,50 @@
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/huangxd-/danmu_api&project-name=danmu_api&repository-name=danmu_api)
|
||||
|
||||
**注意**:请将按钮链接中的 `https://github.com/your-username/simple-api-server` 替换为你的实际 Git 仓库地址(例如 `https://github.com/your-username/your-repo`)。编辑 `danmu_api/README.md` 并更新链接后,推送到仓库,点击按钮即可自动克隆和部署。
|
||||
**注意**:请将按钮链接中的 `https://github.com/huangxd-/danmu_api` 替换为你的实际 Git 仓库地址。编辑 `README.md` 并更新链接后,推送到仓库,点击按钮即可自动克隆和部署。
|
||||
- **设置环境变量**:部署后,在 Vercel 仪表板中:
|
||||
1. 转到你的项目设置。
|
||||
2. 在“Environment Variables”部分添加 `TOKEN` 变量,输入你的 API 令牌值。
|
||||
3. 保存更改并重新部署。
|
||||
|
||||
### 手动部署
|
||||
1. **安装 Vercel CLI**:
|
||||
```bash
|
||||
npm install -g vercel
|
||||
```
|
||||
## 部署到 Cloudflare
|
||||
|
||||
2. **登录 Vercel**:
|
||||
```bash
|
||||
vercel login
|
||||
```
|
||||
### 一键部署
|
||||
点击以下按钮即可将项目快速部署到 Cloudflare:
|
||||
|
||||
3. **部署项目**:
|
||||
在项目根目录运行:
|
||||
```bash
|
||||
vercel
|
||||
```
|
||||
- 按提示操作:
|
||||
- 确认部署(输入 `y`)。
|
||||
- 选择你的 Vercel 账户或团队(scope)。
|
||||
- 项目根目录选择 `./`(包含 `danmu_api` 子目录)。
|
||||
- 保留默认设置,除非需要特定更改。
|
||||
- Vercel 会自动检测 `danmu_api/server.js` 和 `danmu_api/vercel.json` 并完成部署。
|
||||
[](https://deploy.workers.cloudflare.com/?url=https://github.com/huangxd-/danmu_api)
|
||||
|
||||
4. **验证部署**:
|
||||
部署完成后,Vercel 会提供一个 URL(例如 `https://your-project.vercel.app`)。使用此 URL 测试 API:
|
||||
- `GET https://your-project.vercel.app/api/v2/search/anime?keyword=Anime%20A`
|
||||
- `GET https://your-project.vercel.app/api/v2/bangumi/1`
|
||||
- `GET https://your-project.vercel.app/api/v2/comment/1?withRelated=true&chConvert=1`
|
||||
- `GET https://your-project.vercel.app/api/logs`
|
||||
**注意**:请将按钮链接中的 `https://github.com/huangxd-/danmu_api` 替换为你的实际 Git 仓库地址。编辑 `README.md` 并更新链接后,推送到仓库,点击按钮即可自动克隆和部署。
|
||||
- **设置环境变量**:部署后,在 Cloudflare 仪表板中:
|
||||
1. 转到你的 Workers 项目。
|
||||
2. 转到“Settings” > “Variables”。
|
||||
3. 添加 `TOKEN` 环境变量,输入你的 API 令牌值。
|
||||
4. 保存并部署。
|
||||
|
||||
## 项目结构
|
||||
```
|
||||
danmu_api/
|
||||
├── .github/
|
||||
│ └── workflows/
|
||||
│ └── docker-image.yml
|
||||
├── danmu_api/
|
||||
│ ├── server.js # 主 API 服务器代码
|
||||
│ ├── README.md # 项目文档
|
||||
├── package.json # 项目依赖和脚本
|
||||
├── Dockerfile # Docker 配置
|
||||
├── vercel.json # Vercel 部署配置
|
||||
│ ├── server.js # 本地node启动脚本
|
||||
│ ├── version # 定义版本号
|
||||
│ ├── worker.js # 主 API 服务器代码
|
||||
│ ├── worker.test.js # 测试文件
|
||||
├── .gitignore
|
||||
├── Dockerfile
|
||||
├── package.json
|
||||
├── vercel.json
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
- 日志存储在内存中,服务器重启后会清空。
|
||||
- `/api/logs` 中的 JSON 日志会格式化显示,带缩进以提高可读性。
|
||||
- 确保 `package.json` 中包含 `express` 依赖。
|
||||
- 确保 `package.json` 中包含 `node-fetch` 依赖。
|
||||
- 一键部署需要将项目推送到公开的 Git 仓库(如 GitHub),并更新按钮中的仓库地址。
|
||||
- 运行 Docker 容器时,需通过 `-e TOKEN=your_token_here` 传递 `TOKEN` 环境变量。
|
||||
|
||||
## 许可证
|
||||
MIT
|
||||
@@ -0,0 +1,24 @@
|
||||
name = "danmu-api2" # Worker 名称,可自定义
|
||||
main = "danmu_api/worker.js" # 入口文件路径(Workers 会导出 fetch 处理程序)
|
||||
compatibility_date = "2025-09-13" # 使用当前日期或更高,确保兼容最新 API
|
||||
|
||||
# Node.js 兼容性标志(必需,用于 Express 和 process.env)
|
||||
[compatibility_flags]
|
||||
nodejs_compat = true
|
||||
enable_nodejs_http_server_modules = true # 支持 node:http server API,用于 Express
|
||||
|
||||
# 构建步骤:安装依赖并构建(如果有 TypeScript 或其他构建需求)
|
||||
[build]
|
||||
command = "npm install" # 简单安装依赖;如果有构建脚本,可改为 "npm run build"
|
||||
|
||||
# 环境变量(文本类型,直接在代码中使用 process.env.TOKEN)
|
||||
[vars]
|
||||
NODE_ENV = "production" # 可选,默认值
|
||||
|
||||
# 触发器(可选,如果有定时任务)
|
||||
[[triggers]]
|
||||
crons = [] # 示例:["0 0 * * *"] 用于每日触发
|
||||
|
||||
# 环境(可选,用于不同环境如 dev/prod)
|
||||
[env.production]
|
||||
# 生产环境特定配置
|
||||
Reference in new issue
Block a user