Skip to content

Jason-chen-coder/DocStudio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DocStudio

DocStudio Icon

DocStudio 是一个AI 驱动的实时协作知识管理平台。支持多人实时编辑、AI 辅助写作、文档互链、数据洞察,打造团队知识库的最佳实践。

TypeScript Next.js NestJS Prisma

在线预览Landing Page Demo(静态演示模式,GitHub Pages 托管)


核心能力

  • 实时协作 — 多人同时编辑,光标实时同步,冲突自动解决(Yjs + Hocuspocus)
  • AI 辅助写作 — 续写/润色/翻译/摘要、Copilot 行内补全、AI 文档对话、深度思考模式
  • 知识网络[[ 文档互链、全文搜索、文档树层级管理
  • 数据洞察 — 空间数据面板、文档阅读统计、个人生产力指标
  • 灵活权限 — 空间/文档级权限、公开/私有切换、带密码的分享链接
  • 导入导出 — Markdown/HTML/DOCX 导入,Markdown/HTML/PDF 导出
  • AI 订阅制 — 三档套餐(普通/VIP/Max),申请审批,按月/按年计费
  • 移动端适配 — 全平台响应式布局,触控优化交互
  • 生产就绪 — Docker 一键部署、Nginx 反代、SSL 自动续签、数据库定时备份

🚀 快速开始(本地开发)

前置要求:Node.js >= 20、pnpm >= 9、Docker Desktop

# 1. 克隆项目
git clone https://github.com/Jason-chen-coder/DocStudio.git
cd DocStudio

# 2. 安装依赖
pnpm install

# 3. 复制环境变量(本地开发默认值即可直接使用)
cp apps/api/.env.example apps/api/.env

# 4. 启动基础服务(PostgreSQL / Redis / MinIO)
docker-compose up -d

# 5. 初始化数据库
cd apps/api && pnpm exec prisma migrate dev --name init && cd ../..

# 6. 启动开发服务器
pnpm dev

访问:前端 http://localhost:3000 · 后端 http://localhost:3001 · MinIO http://localhost:9001

详细配置DEVELOPMENT.md


🐳 Docker 部署(生产环境)

前置要求:Docker & Docker Compose

# 1. 克隆项目
git clone https://github.com/Jason-chen-coder/DocStudio.git
cd DocStudio

# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,填写域名、密码、API Key 等(必填项见文件内注释)

# 3. 构建并启动所有服务
docker compose -f docker-compose.prod.yml up -d --build

生产环境包含 8 个服务:PostgreSQL、Redis、MinIO、API(NestJS)、Web(Next.js)、Nginx 反代、Certbot SSL 续签、数据库定时备份(每日 03:00,保留 30 天)。

首次启动完成后:

  • 前端:http://your-server:3000(经 Nginx 反代可用 80/443)
  • 后端 API:http://your-server:3001
  • WebSocket 协作:ws://your-server:1234
  • 超级管理员账号:.envSUPER_ADMIN_EMAIL / SUPER_ADMIN_PASSWORD

⚠️ .env 中的 NEXT_PUBLIC_* 变量在构建时烧入镜像,修改后需重新执行 --build

常用命令:

# 查看日志
docker compose -f docker-compose.prod.yml logs -f

# 重启某个服务
docker compose -f docker-compose.prod.yml restart api

# 停止所有服务
docker compose -f docker-compose.prod.yml down

# 更新部署(拉取新代码后)
git pull && docker compose -f docker-compose.prod.yml up -d --build

详细部署说明(OAuth 配置、Nginx 反代、SMTP 邮件等)→ DEVELOPMENT.md


📁 项目结构

docStudio/
├── apps/
│   ├── web/                        # Next.js 15 前端
│   │   ├── src/app/
│   │   │   ├── (main)/            # 主应用(Dashboard/Spaces/Profile/Settings/Subscription/Favorites)
│   │   │   ├── (public)/          # 公开访问(分享页、探索页)
│   │   │   ├── auth/              # 认证(登录/注册/OAuth/重置密码)
│   │   │   ├── admin/             # 超级管理员控制台
│   │   │   └── page.tsx           # Landing Page
│   │   └── tailwind.config.ts
│   └── api/                        # NestJS 后端
│       ├── src/
│       ├── prisma/schema.prisma
│       └── .env
├── packages/
│   ├── shared/                     # 共享类型和常量
│   └── config/                     # 共享配置
├── nginx/                          # Nginx 反代配置
├── scripts/                        # 部署/维护脚本
├── .github/workflows/              # CI/CD(GitHub Pages 部署)
├── docker-compose.yml              # 本地开发环境
├── docker-compose.prod.yml         # 生产环境(8 服务)
└── pnpm-workspace.yaml

🛠️ 技术栈

领域 技术选型
包管理 pnpm workspace (Monorepo)
前端 Next.js 15, React 19, Tailwind CSS 4, Framer Motion
后端 NestJS 11, Fastify
数据库 PostgreSQL 16, Prisma 5.22
缓存 Redis 7
存储 MinIO (S3 兼容)
协作 Yjs + Hocuspocus (WebSocket CRDT)
编辑器 Tiptap 3 (ProseMirror)
AI OpenAI 兼容 API (SSE 流式)
图表 Recharts + D3
图像 Sharp (压缩/缩略图/WebP)
邮件 Nodemailer (SMTP)
认证 JWT + OAuth 2.0 (Google/GitHub)
部署 Docker Compose + Nginx + Certbot
CI/CD GitHub Actions (Pages 静态部署)
语言 TypeScript 5.9

📝 常用命令

开发

pnpm dev              # 启动前后端
pnpm dev:web          # 仅前端
pnpm dev:api          # 仅后端

构建

pnpm build            # 构建所有应用
pnpm build:web        # 仅前端
pnpm build:api        # 仅后端

代码质量

pnpm lint             # ESLint
pnpm format           # Prettier 格式化
pnpm typecheck        # TypeScript 类型检查

数据库

cd apps/api
pnpm exec prisma migrate dev    # 创建迁移
pnpm exec prisma generate       # 生成客户端
pnpm exec prisma studio         # 可视化工具

📚 文档


✅ Stage 0: 基础设施

  • Monorepo 项目结构 (pnpm workspace)
  • 前端框架 (Next.js 15 + React 19)
  • 后端框架 (NestJS 11 + Fastify)
  • 数据库 Schema (PostgreSQL + Prisma)
  • Docker 开发环境 (PostgreSQL, Redis, MinIO)
  • 用户认证 (JWT)

✅ Stage 1: 核心功能

  • Space 工作空间管理
  • Document 文档 CRUD
  • Tiptap 富文本编辑器(表格、代码块、Callout、数学公式、绘图)
  • 文档树结构与拖拽排序

✅ Stage 2: 公开访问层

  • 项目首页(动画 Hero + 特性展示 + 用户评价)
  • 探索页(公开空间列表 + 排序/分页)
  • 公开文档阅读页
  • SEO 优化(sitemap / robots.txt / JSON-LD / OG Tags)

✅ Stage 3: 团队协作

  • 权限管理(Owner/Editor/Viewer)+ 文档级权限
  • 成员邀请和管理
  • 私密分享链接(密码 + 有效期)+ 分享管理
  • Rate Limiting 安全加固

✅ Stage 4: 高级功能

  • 实时多人协作(Yjs + Hocuspocus + 光标同步)
  • 文件上传(Sharp 压缩 + 缩略图 + WebP + 附件)
  • 版本历史和恢复
  • 全文搜索
  • 活动日志 / 最近访问
  • 文档模板系统
  • 评论系统(行内标注 + 回复 + 解决)

✅ Stage 5: 超级管理员

  • 平台级超管角色 + 自动 Bootstrap
  • 用户管理控制台(搜索/筛选/禁用/删除/改密)

✅ Stage 6-7: 产品打磨与增长

  • 回收站(软删除 + 30 天自动清理)
  • 通知系统(SSE 实时推送 + 8 种类型 + 偏好设置)
  • 收藏与快捷访问
  • 导入导出(Markdown/HTML/DOCX 导入 + Markdown/HTML/PDF 导出)
  • 文档互链([[ 语法搜索 + 分享页权限检查)
  • 数据洞察(空间面板 + 文档统计 + Dashboard 增强)
  • 快捷键弹窗

✅ Stage 8: AI 辅助写作

  • AI 写作命令(续写/润色/翻译/摘要/扩写/缩写/自定义)
  • AI 内联面板(选中文字下方弹出 + 预设命令 + 流式结果)
  • Copilot 行内补全(ghost text + Tab 接受)
  • AI 文档对话侧栏(多轮对话 + 浮窗/侧栏双模式)
  • 深度思考模式 + Markdown 渲染 + 代码高亮
  • AI 后台配置(Provider/Key/Model/限额)
  • AI 订阅制(三档套餐 + 申请审批 + 按月/按年)
  • LLM Provider 抽象层(OpenAI 兼容,支持 MiniMax/DeepSeek)

✅ Stage 9: 上线前必备

  • 密码重置 / 邮箱验证 / 邮件服务
  • OAuth 登录(Google / GitHub)
  • 404/500 错误页面 + 全局错误边界
  • 安全 Headers + JWT 刷新
  • 移动端深度适配(全页面响应式 + 触控优化)
  • 新用户引导流程
  • 生产部署基础设施(Docker Compose + Nginx + SSL + 定时备份)
  • GitHub Pages 静态 Landing Page 部署
  • CD 流水线(GitHub Actions 自动部署)

v1 MVP 全部 Stage(0-9)已完成


📄 许可

Private - DocStudio v1

About

实时协作文档平台-团队的知识库系统(Real-time Collaborative Document Platform-Team Knowledge Base System))

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors