# notes-app **Repository Path**: Ome-ga/notes-app ## Basic Information - **Project Name**: notes-app - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 极简笔记应用 技术栈:Next.js (App Router) + TypeScript + Tailwind CSS v4 + shadcn/ui + NextAuth (Google/GitHub OAuth) + Prisma + MySQL + Redis(会话/缓存/频控)。 ### 部署与打包 - PWA:已启用 `next-pwa`,生成的 `manifest.json` 和 service worker 输出在 `public/`,生产构建后自动注册(开发环境禁用)。 - Docker(推荐): ```bash npm install npx prisma migrate deploy # 或 db push(开发) docker build -t notes-app . docker run -d -p 3000:3000 --env-file .env.local notes-app ``` 环境变量:至少 `DATABASE_URL`、`AUTH_SECRET`,如需 Redis 缓存/频控再加 `REDIS_URL`。确保 `public/uploads` 可写(或改用云存储)。 ### 本地运行 1. 复制环境变量模板并填入真实值 ```bash cp env.example .env.local # 填写 DATABASE_URL / AUTH_SECRET / GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / GITHUB_ID / GITHUB_SECRET / REDIS_URL ``` 2. 安装依赖 ```bash npm install ``` 3. 生成数据库结构(开发可用 db push,线上请用 migrate) ```bash npx prisma db push # 或 npx prisma migrate dev --name init ``` 4. 启动开发服务器 ```bash npm run dev # 浏览器访问 http://localhost:3000 ``` ### 功能概览 - Google / GitHub OAuth 登录,受保护路由。 - 笔记 CRUD,Markdown 渲染,按用户隔离。 - Redis:笔记列表缓存(命中后快速返回)、写操作频控(默认 20 次/分钟),写入自动失效缓存。 - UI:shadcn/ui 组件(button/card/input/textarea/dialog/dropdown 等),内置深浅色切换与 Toast。 ### 目录提示 - `src/app/(auth)/signin`:登录页。 - `src/app/(app)/notes`:列表、新建、详情、编辑。 - `src/app/(app)/notes/actions.ts`:笔记的 Server Actions(鉴权、缓存、频控、CRUD)。 - `src/auth.ts`:NextAuth 配置,Prisma 适配器与 providers。 - `prisma/schema.prisma`:数据模型;运行 `npx prisma generate` 同步客户端。 ### 连接信息 - MySQL:`DATABASE_URL` 形如 `mysql://user:pass@host:3306/dbname`。 - Redis:`REDIS_URL` 形如 `redis://default:pass@host:6379`。未配置时自动跳过缓存/频控。 - Auth:`AUTH_SECRET`(随机长字符串)、`GOOGLE_CLIENT_ID/SECRET`、`GITHUB_ID/SECRET`。