- 如果遇到问题需要可以入群1020935359,管理员有时间会在第一时间解答
- 涉及到数据库的创建,cloudflare官方没有sql导入的地方,所以本地部署
- 这个只是后台api接口,配套前台在下方的地址
- 选择前后端分离的原因是前台可以部署在任何地方,然后调用我们线上的接口和数据库,比如你搭建在自己的路由器上,可以达到最快的访问速度
https://github.com/myhome-git/cloudflare-myblog-api.git
需要先fork这个代码库,数据库的创建需要在本地执行命令创建,也方便后期修改或者使用actions部署
git clone https://github.com/myhome-git/cloudflare-myblog-api.git
我使用的是bun,你也可以使用npm,大同小异,初始化项目
bun install
安装wrangler(wrangler更新频繁,所以没有进行默认安装到项目)
bun install @cloudflare/wrangler --save
执行命令
bun dev
执行·bun dev
,执行后会弹出登陆提示,复制url地址到浏览器打开,然后进行账户验证,然后让你跳转到一个localhost的地址,有可能会失败,这并非是我代码的问题,而是cloudflare的登陆机制就这样
,如果遇到验证失败,请本地开启nginx,代理那个端口,然后命令行使用命令行curl那个地址就行,具体错误记不清了,下面是nginx关键部分配置
stream {
upstream cloudsocket {
hash $remote_addr consistent;
server 127.0.0.1:5173 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 8976;#数据库服务器监听端口
proxy_connect_timeout 10s;
proxy_pass cloudsocket;
}
}
创建数据库,本地和远程关键字分别为local、remote
,如果创建失败,则从浏览器打开cloudflare官网创建即可
npx wrangler d1 create db_myblog --remote
初始化数据库,后台登录默认用户名和密码是admin
npx wrangler d1 execute db_myblog --remote --file=./database/db_sqlite_myblog_2025-08-08.sql
浏览器登陆cloudflare,找到刚才创建的数据库,首页->存储和数据库->D1 SQL数据库->db_myblog,找到浏览器地址里边有一串比较长的随机字符串da773828-46b4-xxxx-9778-xxxxxxxx
就是数据库的id,我们后期需要配置。
首页->存储和数据库->R2对象存储->概述->创建存储桶,输入bt-myblog-database
,默认存储类一定要选标准、一定要选标准、一定要选标准
,这个才是每个月的免费额度。
- database_id,为自己的数据库id
- USER_TOKENS,用户登录后台后的请求秘钥,可以是任何值
bun dev
如果没有报错,并且出现启动端口,就表示项目正常
bun run deploy
成功后就部署到cloudflare了
首页->计算(workers)->worker-myblog->设置->域和路由->添加->路由
- 选择自己的域名,例如:xxx.com
- 路由,例如:
blog.xxx.com/api/*
,把其中的blog.xxx.com换成你自己的域名,我们一会部署前端页面时的地址就是blog.xxx.com,后端的请求地址都是./api开头的,所以我们这样配置。
浏览器访问地址:https://blog.xxx.com/api/test/index
,如果返回数据则部署成功
https://github.com/myhome-git/cloudflare-myblog
本项目(或称“本软件”)以 MIT 许可证发布。根据 MIT 许可证的条款,对于因使用本软件而引起的任何后果,项目作者和贡献者不承担任何责任。 重要提示:请在使用本软件前仔细阅读本免责声明和 MIT 许可证全文。 免责声明:
- 无担保性质: 本软件“按原样”提供,不提供任何明示或暗示的担保,包括但不限于适销性、特定用途的适用性以及不侵权的隐含担保。在任何情况下,项目作者或贡献者均不对任何索赔、损害或其他责任负责,无论是合同诉讼、侵权诉讼还是其他诉讼,无论是因本软件或本软件的使用或其他交易而引起的、导致的或与之相关的。
- 使用者责任: 阁下自行承担使用本软件的全部风险。阁下有责任在使用本软件之前充分测试其功能和安全性,并确保其符合阁下的特定需求和法律法规要求。
- 无承诺支持: 本项目作者和贡献者没有义务提供技术支持、更新、修复 Bug 或进行维护。尽管我们可能会根据自身意愿提供,但这并非一项承诺。
- 第三方组件: 本软件可能包含或依赖第三方库、组件或服务,这些组件可能拥有其独立的许可证和免责条款。使用者有责任查阅并遵守所有相关第三方许可证的规定。对于第三方组件的缺陷、安全漏洞或任何后果,本项目作者和贡献者不承担任何责任。
- 不适用于高风险应用: 本软件不适用于生命支持系统、核设施、航空导航或通信系统、空中交通管制以及其他任何可能导致死亡、人身伤害、环境破坏或重大财产损失的“高风险应用”。将本软件用于此类目的,使用者自行承担所有风险。
- 代码质量与安全性: 我们尽力确保代码质量,但不能保证本软件完全没有错误、缺陷、安全漏洞或不中断运行。我们建议使用者在使用前自行进行代码审查和安全审计。
- 许可变更: 本项目所使用的 MIT 许可证可能会在未来被新的版本或不同的许可证所替代。任何此类变更将通过项目的官方发布渠道进行通知。阁下应始终参照项目根目录下的
LICENSE
文件(或类似文件)获取最准确的许可信息。 通过使用、复制、修改、合并、发布、分发、再许可和/或销售本软件的副本,即表示您已阅读、理解并同意本免责声明和 MIT 许可证的所有条款。
运行以下命令启动开发服务器:
npx wrangler dev
我使用的是bun,大同小异,大家可以根据自身情况修改package.json
# 开发环境
bun dev
# 构建
bun run build
# 部署
bun run deploy
- 代码压缩通过
minify
选项实现。