Cloudflare 提供了强大的边缘计算与静态托管服务。利用 Cloudflare Pages 配合 Telegram 的图片存储能力,我们可以轻松搭建一个完全免费、无限容量、支持现代化后台管理的个人图床。


项目核心优势

  • 无限存储: 依托外部存储机制,图片上传数量与容量不设上限。
  • 零成本托管: 部署于 Cloudflare 全球网络,在免费额度内完全免费,无需购买传统服务器。
  • 免备案域名: 默认提供 *.pages.dev 免费二级域名,同时支持无缝绑定自定义独立域名。
  • 智能内容审查: 支持集成第三方鉴黄 API,自动识别并屏蔽不良图片。
  • 完善的后台管理: 自带管理面板,支持图片在线预览、日志审计、访问统计(IP/Referer)以及黑白名单配置。

部署准备工作

在开始部署前,请确保您已准备好以下账户:

  1. GitHub 账号
  2. Cloudflare 账号
  3. Telegram 账号(用于获取机器人 Token 及频道 ID)

核心部署步骤

1. 导入项目源码

首先,访问开源项目地址,点击 Use this template 按钮,将图床项目的模板源码克隆至您自己的 GitHub 代码库中。

💡 官方开源项目参考: cf-pages/Telegraph-Imagex-dr/telegraph-Image

2. 在 Cloudflare 中创建 Pages 项目

  1. 登录到 Cloudflare 控制台
  2. 在帐户主页导航栏中,依次选择 Workers 和 Pages > 创建应用程序 > Pages > 连接到 Git
  3. 选择您在上一步中克隆的 GitHub 存储库。
  4. 在构建设置(Set up builds and deployments)中,将 框架预设(Framework preset) 选择为 Next.js
  5. 点击 保存并部署(Save and Deploy)

3. 配置 D1 数据库(用于后台管理)

为了启用图片管理与日志功能,需要绑定 Cloudflare D1 数据库:

  1. 在 Cloudflare 控制台左侧菜单选择 D1 数据库,点击 创建数据库
  2. 数据库名称可自定义(例如输入 test),点击创建。
  3. 进入刚创建的数据库,找到 控制台/SQL 查询 输入框,复制并执行以下建表语句:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DROP TABLE IF EXISTS tgimglog;
CREATE TABLE IF NOT EXISTS tgimglog (
`id` integer PRIMARY KEY NOT NULL,
`url` text,
`referer` text,
`ip` varchar ( 255 ),
`time` DATE
);

DROP TABLE IF EXISTS imginfo;
CREATE TABLE IF NOT EXISTS imginfo (
`id` integer PRIMARY KEY NOT NULL,
`url` text,
`referer` text,
`ip` varchar ( 255 ),
`rating` text,
`total` integer,
`time` DATE
);

4. 开启 Node.js 兼容性标志

  1. 在 Pages 项目的后台管理界面中,依次点击 设置 -> 函数 -> 兼容性标志
  2. 点击 配置生产兼容性标志,在输入框中填写:nodejs_compat
  3. 调整完成后,前往 部署 页面,找到最新的一次构建记录,点击 重试部署 以应用配置。

环境变量配置指南

若要使图床正常工作并启用高级功能,请在 Pages 项目的 设置 -> 环境变量 中添加以下参数:

变量名称类型说明与示例
TG_BOT_TOKENStringTelegram 机器人 Token(可通过 Telegram 搜索 @BotFather 申请获取)
TG_CHAT_IDString目标频道 ID 或公开频道用户名(如 @channelusername)。用于存储图片的频道需将上述 Bot 设为管理员。可使用 @VersaToolsBot 获取私有 ID。
BASIC_USERString后台管理页面的登录用户名
BASIC_PASSString后台管理页面的登录密码
PROXYALLIMGBoolean是否反向代理所有图片(默认为 false
ENABLE_AUTH_APIBoolean是否开启访客上传验证(默认为 false
REGULAR_USERString开启访客验证时的普通用户名
REGULAR_PASSString开启访客验证时的普通用户密码
CUSTOM_DOMAINString自定义加速域名,例如 https://your-custom-domain.com
ModerateContentApiKeyString图像内容审查的 API Key
RATINGAPIString自建的鉴黄 API 地址

完成上述所有配置并重新部署后,您便拥有了一个专属且完全免费的无限容量图床系统。