# SaBlog **Repository Path**: cherishron/SaBlog ## Basic Information - **Project Name**: SaBlog - **Description**: 一个基于 Next.js 16 + React 19 + TypeScript + MySQL 构建的现代化个人博客系统,支持 Markdown 导入、自动化部署、SEO 优化和全文搜索功能。 - **Primary Language**: TypeScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Next.js Blog - 现代化个人博客系统 [![License: MulanPSL-2.0](https://img.shields.io/badge/License-MulanPSL--2.0-blue.svg)](http://license.coscl.org.cn/MulanPSL2) [![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/) [![React](https://img.shields.io/badge/React-19-61DAFB)](https://react.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6)](https://www.typescriptlang.org/) 一个基于 Next.js 16 + React 19 + TypeScript + MySQL 构建的现代化个人博客系统,支持 Markdown 导入、自动化部署、SEO 优化和全文搜索功能。 ## ✨ 功能特性 ### 核心功能 - 📝 Markdown 文件导入和管理 - 🚀 自动化部署到 Gitee(SSH + Token) - 🔐 用户认证和权限管理 - 📊 数据备份与恢复(ZIP 导出/导入) - 🖼️ 图片上传和处理 ### SEO 优化 - 🔍 动态 Meta 标签生成 - 📱 Open Graph 和 Twitter Card 支持 - 🏷️ 结构化数据(Schema.org) - 🗺️ 自动生成 sitemap.xml - 🤖 robots.txt 配置 ### 技术特性 - ⚡ Next.js 16 App Router - 🎨 Tailwind CSS 4 - 📐 TypeScript 5.9 - 💾 MySQL 8 + Prisma ORM - 🔒 bcryptjs 密码加密 - 🎭 Shiki 代码高亮 - 📐 KaTeX 数学公式 ## 🚀 快速开始 ### 环境要求 - Node.js 20+ - MySQL 8.0+ - npm 或 yarn ### 安装 ```bash # 1. 克隆项目 git clone https://github.com/STAND-ALONE/blog.git cd blog # 2. 安装依赖 npm install # 3. 配置环境变量 cp .env.example .env.local # 编辑 .env.local 填入你的配置 # 4. 初始化数据库 npx prisma migrate dev npx prisma generate # 5. 启动开发服务器 npm run dev ``` 访问 http://localhost:9999 查看博客。 ### 环境变量 ```bash # 数据库连接(必需) DATABASE_URL="mysql://root:password@localhost:3306/blog" # 站点 URL(必需) NEXT_PUBLIC_SITE_URL="https://your-domain.com" # 管理员凭据(必需) ADMIN_USERNAME="admin" ADMIN_PASSWORD="your_strong_password" # 认证密钥(生产环境必须) AUTH_SECRET="your-32-byte-random-hex-string" # 安装令牌(生产环境推荐) INSTALL_TOKEN="your-secure-install-token" # Gitee 图床(可选) GITEE_TOKEN="your_gitee_token" GITEE_REPO="username/repo" ``` 生成 AUTH_SECRET: ```bash node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ``` ## 📁 项目结构 ``` blog/ ├── docs/ # 项目文档 │ ├── CONTRIBUTING.md # 贡献指南 │ ├── SECURITY.md # 安全政策 │ ├── core/ # 核心文档(架构、PRD) │ ├── deployment/ # 部署文档 │ ├── guides/ # 使用指南 │ ├── project/ # 项目相关文档 │ └── technical/ # 技术文档 ├── src/ # 源代码 │ ├── app/ # Next.js 路由 │ ├── components/ # React 组件 │ ├── lib/ # 工具函数 │ └── hooks/ # 自定义 Hooks ├── scripts/ # 脚本工具 │ ├── deploy.sh # Docker 部署脚本 │ └── deploy-quick.sh # 快速部署脚本 ├── prisma/ # 数据库模型 ├── public/ # 静态资源 └── files/ # 上传文件(已忽略) ``` 详细结构请查看 [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md) ## 📚 文档索引 | 类别 | 文档 | 说明 | |------|------|------| | 入门 | [快速开始](#快速开始) | 安装和运行指南 | | 部署 | [Docker 部署](docs/deployment/docker-deploy.md) | Docker 一键部署 | | 部署 | [部署指南](docs/deployment/deployment.md) | 详细部署说明 | | 开发 | [开发指南](docs/technical/development.md) | 开发规范 | | 开发 | [API 文档](docs/technical/api.md) | API 接口说明 | | 项目 | [数据备份](docs/project/data-backup.md) | 备份与恢复 | | 贡献 | [贡献指南](docs/CONTRIBUTING.md) | 如何贡献代码 | | 安全 | [安全政策](docs/SECURITY.md) | 安全相关说明 | ## 🐳 Docker 部署 ```bash # 交互式部署 bash scripts/deploy.sh # 快速部署 bash scripts/deploy-quick.sh "mysql://user:pass@host:3306/blog" "https://your-domain.com" ``` ## 🔒 安全提醒 **生产环境部署前请务必:** 1. 设置 `AUTH_SECRET` 环境变量(32 字节以上随机字符串) 2. 设置 `INSTALL_TOKEN` 防止未授权初始化 3. 修改默认管理员密码 4. 使用强数据库密码 5. 配置 HTTPS 6. 定期备份数据 查看 [SECURITY.md](docs/SECURITY.md) 了解更多安全建议。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! 查看 [CONTRIBUTING.md](docs/CONTRIBUTING.md) 了解如何参与贡献。 ## 📄 许可证 本项目采用 [木兰宽松许可证第2版](LICENSE)。 ## 👤 作者 - **STAND-ALONE** - Email: 1635936133@qq.com - GitHub: [@STAND-ALONE](https://github.com/STAND-ALONE) --- **特别感谢所有贡献者!**