ThinkTank 是一个基于 Next.js 构建的现代化、基于文件的文档管理系统。它支持多项目独立管理、富文本 Markdown 编辑、Git 仓库集成,并提供了完善的用户权限控制体系。
项目地址:https://github.com/cookiejoo/ThinkTank
系统截图


主要特性
多项目管理:独立管理多个文档项目,支持项目隔离。
强大的 Markdown 编辑器:基于 TipTap 构建,支持:
标准 Markdown 语法
代码块语法高亮
表格、图片、链接
所见即所得 (WYSIWYG) 与 源码模式切换
分屏实时预览
Git 集成:支持将项目关联到远程 Git 仓库,实现文档的版本同步。
角色权限控制 (RBAC):
管理员 (Admin):拥有最高权限,可管理所有项目、用户及系统设置。
普通用户 (User):仅可访问被分配的项目。
访客 (Guest):默认可公开浏览所有项目(可配置)。
用户管理:内置管理员后台,支持创建用户、重置密码、分配项目权限。
本地文件存储:所有数据(文档和配置)默认存储在本地文件系统 (
./docs),便于备份和迁移。
技术栈
框架: Next.js 16 (App Router)
语言: TypeScript
样式: Tailwind CSS & Shadcn UI
认证: NextAuth.js
编辑器: TipTap
Git 操作: simple-git
图标: Lucide React
快速开始
环境要求
Node.js (建议 v18 或更高版本)
npm, yarn, 或 pnpm
安装步骤
克隆仓库:
git clone <your-repo-url> cd <your-project-directory>安装依赖:
npm install # 或者 yarn install配置环境变量:
在项目根目录创建一个.env.local文件。可以使用以下模板:# NextAuth 配置 (必填) NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-super-secret-key-change-me # 可选: OAuth 提供商 (如需开启第三方登录) GITHUB_ID= GITHUB_SECRET= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # 系统配置 # DOCS_ROOT=./docs # 文档存储根目录,默认为 ./docs ENCRYPTION_KEY=your-32-char-encryption-key-for-secure-storage # 用于加密敏感信息启动开发服务器:
npm run dev在浏览器中打开 http://localhost:3000。
初始设置
首次启动系统时,如果没有任何用户,系统会自动创建一个默认管理员账户。
默认管理员账号:
用户名:
admin密码:
123
重要提示: 请在首次登录后立即修改默认密码以确保安全。
用户指南
管理员控制台
访问 /admin (或点击顶部的 "Manage Projects" 按钮)。
项目管理 (Projects):创建新项目、配置 Git 仓库地址、编辑项目描述。
用户管理 (User Management):添加新用户、重置密码、为用户分配特定项目的访问权限。
项目模式
在线编辑模式 (Edit Mode):直接在本地
docs/目录中编辑文件。适合个人使用或内部网络环境。Git 模式 (Git Mode):将项目连接到远程 Git 仓库。系统可以拉取远程更改并同步内容(需配置 SSH 或 HTTPS 凭证)。
项目结构
├── app/ # Next.js App Router 页面和 API 路由
├── components/ # React 组件 (UI, 编辑器等)
├── lib/ # 核心逻辑 (认证, 文件系统, Git, 用户服务)
├── docs/ # 文档项目的默认存储位置
│ ├── .thinktank/ # 系统配置和用户数据
│ └── <project-id>/ # 单个项目文件夹
├── public/ # 静态资源 (图片等)
└── types/ # TypeScript 类型定义