一个基于 Next.js 15+ 构建的现代化笔记应用,支持 多语言国际化、文件上传、用户认证,并结合 Redis + MySQL (Prisma ORM) 提供快速可靠的笔记管理体验。
- ⚡ 极速体验:基于 Next.js 15 App Router 构建,支持 SSR / SSG / ISR
- 🌍 多语言国际化:使用 next-intl 提供多语言切换
- 📂 文件上传:支持上传附件/图片,增强笔记内容
- 🗄️ 数据库支持:Redis 用于缓存,MySQL 作为主存储(通过 Prisma 管理)
- 🔑 用户认证:基于 NextAuth (Credentials) 提供安全的身份认证
- 🎨 现代化 UI:Tailwind CSS + shadcn/ui + Radix UI
- 📱 响应式设计:完美适配桌面与移动设备
- 🔐 全类型安全:TypeScript + Zod 校验
- 🚀 开发友好:Turbopack 热重载、路径别名、ESLint + Prettier 配置
- 框架: Next.js 15 (App Router)
- 语言: TypeScript
- 样式: Tailwind CSS + shadcn/ui + Radix UI
- 数据库:
- Redis (缓存/会话)
- MySQL (主存储,Prisma ORM)
- 认证: NextAuth.js (Credentials Provider)
- 国际化: next-intl
- 文件上传: 基于 MIME 检测 & 可扩展存储(如本地 / 云服务)
- 工具: ESLint, Zod, dayjs
- Node.js 18.17+
- MySQL 8.0+
- Redis 6.2+
- npm / yarn / pnpm 包管理器
- 克隆仓库
git clone https://github.com/leongaooo/next-note.git
cd next-note- 安装依赖
npm install- 配置环境变量
复制 .env.example 到 .env 并修改:
cp .env.example .env环境变量示例:
DATABASE_URL="mysql://user:password@localhost:3306/nextnote"
REDIS_URL="redis://localhost:6379"
NEXTAUTH_SECRET="your-random-secret"
NEXTAUTH_URL="http://localhost:3000"- 初始化数据库
npx prisma migrate dev
npx prisma db seed # 如果需要初始化数据- 启动 Redis 服务
# macOS
brew services start redis
# Ubuntu/Debian
sudo systemctl start redis
# Docker
docker run -d -p 6379:6379 redis:alpine- 运行开发服务器
npm run dev服务运行于 http://localhost:3000。
npm run dev- 启动开发服务器(Turbopack)npm run build- 构建生产版本npm start- 运行生产服务器npm run lint- 执行 ESLintnpx prisma studio- 打开 Prisma Studio 管理数据库
- 创建 / 编辑 / 删除笔记
- 支持 Markdown 渲染 + 语法高亮
- 多语言 UI(中英文切换)
- 支持文件上传(图片 / 附件)
- 用户登录 / 注册(凭证认证)
- Redis 缓存加速查询
-
即将支持:标签管理 / 笔记分享 / 协同编辑
欢迎贡献!请阅读 CONTRIBUTING.md 了解详细步骤。
- Fork 仓库
- 创建新分支 (
git checkout -b feature/xxx) - 提交更改并推送 (
git commit -m "feat: 添加 xxx 功能") - 发起 Pull Request
⭐ 如果这个项目对你有帮助,请帮忙点个 Star!