Skip to content

Repository files navigation

Moments

自建动态(��间线)服务:Cloudflare Workers + D1 + Vue 3(MD3 风格)。 替代原 Memos 方案,部署后挂在 https://flygeon.top/moments/

功能

  • 公开时间线:分页浏览动态(纯文本,转义渲染)
  • 管理登录:顶栏 🔒 图标 → 密码登录(JWT HttpOnly Cookie,7 天有效)
  • 登录后可发布(Ctrl+Enter 快捷发布)与删除(两段式确认)
  • MD3 设计 tokens 与博客 REBLOG 同源(hue 250/240,亮暗双主题,跟随系统 + 手动切换)

首次部署

pnpm install

# 1. 创建 D1 数据库,把输出的 database_id 填进 wrangler.jsonc
npx wrangler d1 create moments-db

# 2. 建表(幂等)
npx wrangler d1 execute moments-db --remote --file=schema.sql

# 3. 生产 secrets
npx wrangler secret put ADMIN_PASSWORD   # 管理员密码
npx wrangler secret put JWT_SECRET       # 随机长字符串(openssl rand -hex 32)

# 4. 本地调试(.dev.vars 里放同样两个变量)
cp .dev.vars.example .dev.vars
pnpm preview    # build + wrangler dev,http://localhost:8787/moments/

# 5. 部署
pnpm deploy

路由与主站共存

  • 本 Worker 路由:flygeon.top/moments*(wrangler.jsonc 已配置)
  • 主站博客 Worker 路由:flygeon.top/*
  • Cloudflare 对同域多路由取最具体匹配/moments* 优先于 /*
  • ⚠️ 前提:主站 Worker 必须以「路由」方式绑定;若是「自定义域」(Custom Domain), 自定义域优先级更高会盖住本路由——需在 CF 面板把主站改为 flygeon.top/* 路由

GitHub Actions 自动部署

  1. GitHub 建仓库并 push
  2. 仓库 Secrets 配置 CLOUDFLARE_API_TOKEN(Workers Scripts:Edit + D1:Edit + Workers Routes:Edit)和 CLOUDFLARE_ACCOUNT_ID
  3. push 到 main 自动构建部署(.github/workflows/deploy.yml)

API

方法 路径 说明
GET /moments/api/list?limit=20&offset=0 公开列表
GET /moments/api/me 登录态检查
POST /moments/api/login {password} → Set-Cookie
POST /moments/api/logout 清除会话
POST /moments/api/create 需登录,{content}
POST /moments/api/delete 需登录,{id}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages