194 lines
4.5 KiB
Markdown
194 lines
4.5 KiB
Markdown
# NEX Docus
|
||
|
||
<div align="center">
|
||
|
||
**现代化的文档管理系统**
|
||
|
||
[](LICENSE)
|
||
[](DEPLOY.md)
|
||
[](backend/)
|
||
[](forntend/)
|
||
|
||
</div>
|
||
|
||
## ✨ 特性
|
||
|
||
- 📝 **Markdown 编辑器** - 强大的 Markdown 实时预览和编辑
|
||
- 📁 **项目管理** - 多项目支持,灵活的文件组织结构
|
||
- 🔐 **权限控制** - 基于 RBAC 的完善权限管理
|
||
- 🔗 **文档分享** - 支持密码保护的公开分享链接
|
||
- 👥 **协作功能** - 项目成员管理和协作编辑
|
||
- 📱 **响应式设计** - 完美支持桌面和移动端
|
||
- 🐳 **Docker 部署** - 一键容器化部署
|
||
- 🚀 **高性能** - 基于 FastAPI 和 React 构建
|
||
|
||
## 🏗️ 技术栈
|
||
|
||
### 后端
|
||
- **框架**: FastAPI (Python 3.9+)
|
||
- **数据库**: MySQL 8.0
|
||
- **缓存**: Redis 7
|
||
- **ORM**: SQLAlchemy 2.0
|
||
- **认证**: JWT (python-jose)
|
||
- **异步**: Asyncio
|
||
|
||
### 前端
|
||
- **框架**: React 18 + Vite
|
||
- **UI**: Ant Design 5
|
||
- **路由**: React Router 6
|
||
- **状态管理**: Zustand
|
||
- **Markdown**: react-markdown + rehype
|
||
- **HTTP**: Axios
|
||
|
||
## 📦 快速开始
|
||
|
||
### 使用 Docker 部署(推荐)
|
||
|
||
```bash
|
||
# 1. 克隆项目
|
||
git clone <your-repo-url>
|
||
cd "NEX Docus"
|
||
|
||
# 2. 配置环境变量
|
||
cp .env.example .env
|
||
vim .env # 修改配置
|
||
|
||
# 3. 一键部署
|
||
./deploy.sh init
|
||
```
|
||
|
||
详细部署文档请查看 [DEPLOY.md](DEPLOY.md)
|
||
|
||
### 本地开发
|
||
|
||
#### 后端开发
|
||
|
||
```bash
|
||
cd backend
|
||
|
||
# 创建虚拟环境
|
||
python -m venv venv
|
||
source venv/bin/activate # Windows: venv\Scripts\activate
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||
|
||
# 配置环境变量
|
||
cp .env.example .env
|
||
vim .env
|
||
|
||
# 初始化数据库
|
||
python scripts/init_db.py
|
||
|
||
# 启动服务
|
||
python main.py
|
||
```
|
||
|
||
后端服务将运行在 `http://localhost:8000`
|
||
API 文档: `http://localhost:8000/docs`
|
||
|
||
#### 前端开发
|
||
|
||
```bash
|
||
cd forntend
|
||
|
||
# 安装依赖
|
||
npm install
|
||
# 或使用国内镜像
|
||
npm install --registry=https://registry.npmmirror.com
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
```
|
||
|
||
前端服务将运行在 `http://localhost:5173`
|
||
|
||
## 📖 文档
|
||
|
||
- [部署文档](DEPLOY.md) - Docker 容器化部署指南
|
||
- [API 文档](http://localhost:8000/docs) - FastAPI 自动生成的 API 文档
|
||
- [数据库设计](DATABASE.md) - 数据库表结构说明
|
||
|
||
## 🔑 默认账号
|
||
|
||
首次部署后,系统会自动创建管理员账号:
|
||
|
||
- 用户名: `admin`(可在 .env 中配置)
|
||
- 密码: `Admin@123456`(可在 .env 中配置)
|
||
|
||
**⚠️ 重要提示:请在首次登录后立即修改默认密码!**
|
||
|
||
## 🛠️ 部署脚本
|
||
|
||
```bash
|
||
# 查看帮助
|
||
./deploy.sh help
|
||
|
||
# 初始化部署
|
||
./deploy.sh init
|
||
|
||
# 启动/停止/重启
|
||
./deploy.sh start|stop|restart
|
||
|
||
# 查看状态和日志
|
||
./deploy.sh status
|
||
./deploy.sh logs [服务名]
|
||
|
||
# 升级部署
|
||
./deploy.sh upgrade
|
||
|
||
# 数据库备份/恢复
|
||
./deploy.sh backup
|
||
./deploy.sh restore <backup_file>
|
||
```
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
NEX Docus/
|
||
├── backend/ # 后端服务
|
||
│ ├── app/
|
||
│ │ ├── api/ # API 路由
|
||
│ │ ├── core/ # 核心配置
|
||
│ │ ├── models/ # 数据模型
|
||
│ │ ├── schemas/ # Pydantic Schemas
|
||
│ │ └── services/ # 业务逻辑
|
||
│ ├── scripts/ # 脚本文件
|
||
│ ├── Dockerfile # 后端镜像
|
||
│ └── requirements.txt # Python 依赖
|
||
├── forntend/ # 前端应用
|
||
│ ├── src/
|
||
│ │ ├── api/ # API 请求
|
||
│ │ ├── components/ # 组件
|
||
│ │ ├── pages/ # 页面
|
||
│ │ ├── stores/ # 状态管理
|
||
│ │ └── utils/ # 工具函数
|
||
│ ├── Dockerfile # 前端镜像
|
||
│ └── package.json # npm 依赖
|
||
├── docker-compose.yml # Docker 编排
|
||
├── deploy.sh # 部署脚本
|
||
├── .env.example # 环境变量示例
|
||
└── README.md # 项目文档
|
||
```
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 📄 开源协议
|
||
|
||
本项目采用 [MIT](LICENSE) 协议
|
||
|
||
## 🙏 致谢
|
||
|
||
感谢以下开源项目:
|
||
|
||
- [FastAPI](https://fastapi.tiangolo.com/)
|
||
- [React](https://react.dev/)
|
||
- [Ant Design](https://ant.design/)
|
||
- [SQLAlchemy](https://www.sqlalchemy.org/)
|
||
|
||
---
|
||
|
||
**Made with ❤️ by NEX Docus Team**
|