# myblog **Repository Path**: chunfff/myblog ## Basic Information - **Project Name**: myblog - **Description**: 博客系统,轻量化,并且快 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-29 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My Blog 一个极客风格的全栈博客系统:**快,且极客**。 Next.js 15 全栈构建 —— Markdown 写作、中英双语、暗色极简设计、GitHub 风格创作热力图、站点动态时间线、对标 Halo Console 的后台管理,一个仓库全部搞定。 ![tech](https://img.shields.io/badge/Next.js-15-black) ![tech](https://img.shields.io/badge/Prisma-6-blue) ![tech](https://img.shields.io/badge/Auth.js-v5-green) ![tech](https://img.shields.io/badge/Tailwind-v4-cyan) ## ✨ 功能一览 **前台** - 🏠 个人门户式首页:左侧资料卡 + 精选文章大卡 + 创作热力图 + 站点动态时间线(融合 ffbf.top / webjing.cn 的布局语言) - 📝 Markdown 文章:GFM 表格/任务列表、Shiki 双主题代码高亮(mac 窗口圆点 + 语言标签 + 一键复制)、标题锚点、自动目录、阅读进度条、图片灯箱 - ✨ 瞬间:图文短动态(朋友圈式时间轴) - 🌓 暗色为默认 + 亮色一键切换(CSS 变量双主题,代码高亮跟随) - 🌐 中英双语:中文无前缀干净 URL,英文挂 `/en` - 🔍 `Ctrl+K` 全站搜索、RSS、sitemap、SEO meta **后台 Console(`/admin`)** - 仪表盘数据看板(文章/评论/瞬间/总阅读 + 最近动态) - 文章管理:MD 编辑器 + 实时预览 + 封面上传 + 草稿/发布/精选/置顶 + 中英双语编辑 - 瞬间发布(多图上传)、评论管理(精选/删除)、附件库、友链管理、站点设置 **预留** - 支付:`Order` 模型 + `/api` 路由层已就位,接入支付宝/微信/Stripe 时直接填充 - OAuth:GitHub / Gitee 登录配置环境变量即启用 ## 🛠 技术栈 | 层 | 选型 | |---|---| | 框架 | Next.js 15 (App Router) + React 19 + TypeScript | | 样式 | Tailwind CSS v4(CSS 变量设计令牌,零 UI 库依赖) | | 数据库 | PostgreSQL + Prisma ORM(本地开发可用 SQLite) | | 认证 | Auth.js v5(Credentials + GitHub + Gitee OAuth) | | 渲染 | 服务端 unified 管线:remark → rehype → Shiki | | 部署 | Docker standalone + Nginx 反代 | ## 🚀 本地开发 ```bash git clone git@gitee.com:chunfff/myblog.git cd myblog npm install # 国内网络已配置 npmmirror(.npmrc) cp .env.example .env # 按需修改 npm run db:push # 建表(SQLite: prisma/dev.db) npm run db:seed # 种子数据:4 篇示例文章 + 瞬间 + 友链 + 管理员 npm run dev # http://localhost:3000 ``` 后台入口:`http://localhost:3000/admin`(账号见 `.env` 的 `ADMIN_EMAIL` / `ADMIN_PASSWORD`) 常用脚本: ```bash npm run dev # 开发(Turbopack) npm run build # 生产构建 npm run start # 生产运行 npm run lint # ESLint npm run db:push # schema 同步到数据库 npm run db:seed # 灌入种子数据 npm run db:studio # Prisma 数据库可视化管理 ``` ## 📦 部署到自有服务器(Docker) 详见 [docs/deploy.md](docs/deploy.md)。一句话版本: ```bash # 服务器上 git clone git@gitee.com:chunfff/myblog.git && cd myblog cp .env.example .env # 填好 AUTH_SECRET / 数据库密码 / 域名 docker compose up -d --build ``` 架构:`Nginx(:80/:443) → Next.js standalone(:3000) → PostgreSQL`,上传附件走持久卷 `uploads`。 ## 📁 目录结构 ``` src/ ├── app/ │ ├── [locale]/ # 前台(zh 无前缀 / en) │ │ ├── page.tsx # 门户首页(资料卡+热力图+动态) │ │ ├── posts/ # 列表 + 详情 │ │ ├── moments/ # 瞬间 │ │ └── archives/ tags/ links/ about/ │ ├── admin/ # Console 后台(登录 + 仪表盘 + 内容管理) │ ├── api/ # REST API(auth/search/comments/upload/views) │ ├── feed.xml/ # RSS │ ├── sitemap.ts / robots.ts │ └── globals.css # 设计系统(暗色默认双主题令牌) ├── components/site/ # 前台组件(Header/PostCard/Heatmap/Toc/评论…) ├── i18n/ # 中英词典 ├── lib/ # prisma / auth / markdown 管线 / 查询 / 工具 └── middleware.ts # 语言路由(/ → /zh rewrite) prisma/ # schema + 种子数据 deploy/ # nginx 配置 docs/ # 部署文档 ``` ## 🎨 设计 - 暗色近黑 `#0a0a0b` + 单一电光青强调色,克制即高级 - 正文系统字体栈(零 webfont 下载,LCP 友好),代码 JetBrains Mono 回退栈 - 文章页正文零框架 JS:服务端渲染 HTML,客户端只挂复制按钮 / 灯箱 / 阅读上报 - 终端彩蛋:`$ whoami` 光标、ASCII 猫页脚、404 栈溢出页、Console 的 `root@myblog:~#` ## 📄 License MIT