一个使用 Next.js 15 构建的现代化个人博客平台。
-
前端
- Next.js 15
- React 18
- TypeScript
- Tailwind CSS
- shadcn/ui
-
后端
- Next.js API Routes
- Prisma ORM
- PostgreSQL
- NextAuth.js
- 🔐 GitHub OAuth 登录
- 📝 Cherry Markdown 编辑器
- ✨ 代码高亮 (rehype-pretty-code & Shiki)
- 🔢 数学公式支持 (KaTeX)
- 💬 评论系统 (Giscus)
- 🌓 深色模式
- 📱 响应式设计
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL
-
克隆仓库
git clone https://github.com/Oveln/ov-blog.git cd ov-blog -
安装依赖
bun install
-
配置环境变量
cp .env.example .env
编辑
.env文件,填入必要的环境变量。 -
启动开发服务器
bun dev
-
构建并启动服务
docker-compose up -d
-
执行数据库迁移
docker-compose exec web npx prisma migrate deploy -
查看日志
docker-compose logs -f
src/
├── app/ # Next.js 应用路由
│ ├── (site)/ # 公开页面
│ ├── (dashboard)/ # 管理后台
│ └── (auth)/ # 认证相关
├── components/ # React 组件
├── lib/ # 工具函数
├── context/ # React Context
└── types/ # TypeScript 类型定义
- Markdown 文章编辑
- 文章版本控制
- 草稿和发布管理
- GitHub OAuth 登录
- 用户角色管理(管理员/普通用户)
- 响应式设计
- 深色模式
- 代码高亮
- 数学公式
- 评论系统
- 文章管理
- 应用管理
- 用户管理(管理员)
创建 docker-compose.yml 文件:
version: "3.9"
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: YOUR_DB_PASSWORD
networks:
- backend
web:
image: oveln/ov-blog
restart: always
ports:
- 3000:3000
environment:
# GitHub OAuth 配置
AUTH_GITHUB_ID: your_github_oauth_id
AUTH_GITHUB_SECRET: your_github_oauth_secret
AUTH_SECRET: your_auth_secret
AUTH_URL: http://your.domain.com/
AUTH_TRUST_HOST: "true"
# Giscus 评论系统配置
WEBHOOK_SECRET: your_webhook_secret
NEXT_PUBLIC_REPO_NAME: "Your/Repo"
NEXT_PUBLIC_REPOID: "your_repo_id"
NEXT_PUBLIC_CATEGORY: "Announcements"
NEXT_PUBLIC_CATEGORYID: "your_category_id"
# R2 存储配置
R2_ACCOUNT_ID: your_r2_account_id
R2_ACCESS_KEY_ID: your_r2_access_key_id
R2_SECRET_ACCESS_KEY: your_r2_secret_access_key
# 数据库配置
DATABASE_URL: "postgresql://user:password@db:5432/blog?schema=public"
networks:
- backend
networks:
backend:# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down请确保在启动服务前正确配置所有环境变量。
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的改动 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 作者:Oveln
- 邮箱:oveln@outlook.com
- 博客:oveln.icu
感谢以下开源项目: