一个运行在 Cloudflare Workers 上的 Galgame 内容站,带完整前台、统一用户系统和 WordPress 风格后台。
在线站点 · 安装部署 · Cloudflare 配置
- 三种内容类型:普通文章
ARTICLE、游戏资源GAME、写真图集PHOTO;没有独立的VIDEO文章类型,R2 视频仅用于游戏预告片。 - 可视化后台:文章、分类、标签、独立页面、导航菜单、首页布局、SEO、媒体库、用户、评论、Steam 同步、友情链接、全站通知和资源失效反馈。
- 统一账户体验:首位管理员初始化、登录、注册、邮箱验证码、找回/修改密码、修改邮箱、Steam OpenID、角色权限和登录锁定。
- 媒体全部归档到 R2,后台可管理 R2 对象;需要使用外部图片时,可直接填写图片 URL。
- 游戏文章保留 Steam 元数据、截图、视频播放器、下载链接、图集灯箱与资源反馈;详情页背景只使用文章封面图。
- 基于 Tiptap 的富文本编辑器,支持粘贴文字和图片、R2 上传、媒体库选择与外部链接。
- Cloudflare 原生运行时:Workers + OpenNext、D1、R2、KV、Analytics Engine;邮件使用 Workers Socket 连接外部 SMTP(465/587)。
- 全站采用 Radix/shadcn 风格组件与 Sonner 通知,兼顾桌面端与手机端。
- 生产 Cloudflare 账户、D1/KV ID、R2 数据、站点数据库快照、SMTP/Steam 凭据和实际域名绑定。
- Telegram、独立视频文章、自动下载资源可用性监控,以及浏览量、点赞、收藏、分享功能。
- 商业游戏本体、下载资源或第三方媒体。部署者需要自行处理内容版权、下载链接和上传文件的合规性。
| 层级 | 实现 |
|---|---|
| 应用 | Next.js App Router、React、TypeScript |
| UI | Tailwind CSS、Radix UI、shadcn 风格组件、Sonner、Lucide |
| 编辑器 | Tiptap |
| 边缘运行时 | Cloudflare Workers、OpenNext |
| 数据与媒体 | D1、R2、KV、Analytics Engine |
| 集成 | Steam Web API / OpenID、外部 SMTP |
需要 Node.js 20+、pnpm 10+,以及一个可创建 Workers、D1、R2 和 KV 的 Cloudflare 账号。
git clone https://github.com/DearLicy/galgame-vip-workers.git
cd galgame-vip-workers
pnpm install --frozen-lockfile
Copy-Item wrangler.example.jsonc wrangler.jsonc
Copy-Item .dev.vars.example .dev.vars
pnpm db:apply
pnpm cf:dev浏览器打开 http://127.0.0.1:8787,随后访问 /setup 创建首位管理员。完整的资源创建、密钥、远程迁移和正式域名步骤见 INSTALL.md。
| 命令 | 用途 |
|---|---|
pnpm dev |
运行 Next.js 开发服务器 |
pnpm cf:dev |
构建并启动 Workers 本地模拟环境 |
pnpm db:apply |
应用本地 D1 迁移 |
pnpm db:apply:remote |
应用远程 D1 迁移 |
pnpm lint |
ESLint 检查 |
pnpm typecheck |
TypeScript 检查 |
pnpm cf:build |
构建 OpenNext Cloudflare Worker |
pnpm cf:deploy |
构建并部署 Worker |
D1_DATABASE_NAME 可以覆盖默认数据库名 galgame-vip。例如在 PowerShell 中执行 $env:D1_DATABASE_NAME = 'my-galgame-db',再运行迁移命令。
src/app/ Next.js 路由、前台、后台和 API
src/components/ 前后台组件、编辑器、播放器与布局区块
src/lib/ D1/R2、鉴权、Steam、SMTP、SEO 与业务逻辑
migrations/ D1 schema 与增量迁移
scripts/ 本地/远程 D1 迁移脚本
public/brand/ Galgame VIP 图标和 Logo
docs/ Cloudflare 部署说明
- 将
wrangler.example.jsonc复制为本机的wrangler.jsonc,填入自己的 D1/KV ID 和正式域名;该文件被 Git 忽略。 - 不要提交
.dev.vars、R2 S3 密钥、API Token、数据库导出或 Workers 构建目录。 - 使用
wrangler secret put SHIORI_JWT_SECRET与wrangler secret put SHIORI_KMS_KEY写入生产密钥。密钥均应为新生成的随机值。 - SMTP 授权码、Steam API Key 等运行时配置在后台保存;导出或公开 D1 数据库前必须先清理这些记录。
欢迎提交 Issue 和 Pull Request。提交前请运行:
pnpm lint
pnpm typecheck
pnpm cf:build本项目按 MIT License 发布。public/brand/ 中的 Galgame VIP 图标与 Logo 为项目随附品牌素材;使用时请保留版权与许可证声明。
