面向生活记录与视觉内容的全栈内容平台 MVP。映迹围绕图文笔记、图片/短视频资产、标签、评论、点赞与收藏构建,并提供 Web、桌面浏览器与移动端基础界面。
当前定位是可运行、可演进的产品基座,不是已经完成内容安全、版权和推荐系统建设的生产平台。
- 生活笔记、图文内容与标签
- 图片/短视频资产上传、评论、点赞与收藏
- 媒体处理基础模块与 S3 兼容对象存储直传
- JWT + Argon2id 认证、Prisma 数据访问与 Swagger API 文档
- NestJS API、Next.js Web/桌面界面、Expo 移动端
apps/mobile Expo + React Native ─┐
apps/web Next.js + React ├─ HTTP ─ apps/api ─ PostgreSQL
└─────────────── Redis / MinIO
| 目录 | 作用 |
|---|---|
apps/api |
NestJS API、认证、笔记/媒体领域服务、Prisma schema 与迁移 |
apps/web |
Next.js App Router Web/桌面浏览器界面 |
apps/mobile |
Expo Router 移动端 |
docs |
架构说明、边界与演进路线 |
compose.yaml |
本地 PostgreSQL、Redis、MinIO |
要求 Node.js 24 LTS、pnpm 10、Docker。
nvm use
cp .env.example .env
cp apps/web/.env.example apps/web/.env.local
cp apps/mobile/.env.example apps/mobile/.env
pnpm install
pnpm infra:up
pnpm db:generate
pnpm db:migrate
pnpm --filter @sk-content/api prisma:seed分别启动:
pnpm dev:api # API: http://localhost:4103,Swagger: /docs
pnpm dev:web # Web: http://localhost:3103
pnpm dev:mobile # Expo 开发服务器本地基础设施端口为 PostgreSQL 5435、Redis 6382、MinIO API 9003。移动真机调试时,请将 EXPO_PUBLIC_API_URL 改为开发机局域网地址。
pnpm build
pnpm lint
pnpm test
pnpm --filter @sk-content/api test:e2e
pnpm infra:down完整配置见 .env.example。NEXT_PUBLIC_* 与 EXPO_PUBLIC_* 会进入客户端包,只能放公开配置,不能放密钥。
当前发现页按发布时间返回,不宣称已经实现个性化推荐。上线前需要增加召回/排序服务、内容安全、版权申诉、未成年人保护、限流与反滥用、审计日志、可观测性、备份恢复、推送通知和独立安全评审。
媒体上传与处理链路适合本地开发和 MVP 验证;生产环境还需要可靠的异步任务、病毒/内容探测、CDN、生命周期管理和故障恢复。欢迎提交 Issue 和 Pull Request。