jmalcloud/README.md
chenpei 0d9ae59e19 🐳 添加Git仓库Docker构建支持
✨ 新增功能:
- 新增 Dockerfile.git 支持从Git仓库构建
- 新增 docker-compose.git.yml 配置文件
- 新增 build-from-git.sh 一键部署脚本
- 更新 docker-entrypoint.sh 适配新构建方式
- 更新 README.md 添加Git构建说明

🔧 配置更新:
- 支持从 https://git.1080p.hk/chenpei/jmalcloud 自动构建
- 优化构建流程和容器启动脚本
- 添加完整的Docker健康检查

📖 文档更新:
- 添加Git仓库构建部署文档
- 提供一键部署解决方案
2025-08-24 11:21:48 +08:00

150 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# JmalCloud 公共空间版 - 个人网盘服务端
> 基于 [JmalCloud](https://github.com/jamebal/jmal-cloud-view) 改造的公共空间版本
## 🚀 项目简介
这是一个基于原版 JmalCloud 改造的**公共空间版本**,将原来的用户独立文件空间模式改为**所有用户共享同一文件空间**的模式。
### 📋 主要变更
- ✅ **公共文件空间**:所有用户登录后看到相同的文件列表
- ✅ **统一存储**:文件存储在统一的公共目录中,不再按用户分离
- ✅ **共享操作**:任何用户都可以上传、下载、删除、重命名所有文件
- ✅ **保留认证**:用户登录验证和基本权限控制仍然有效
- ✅ **元数据保留**:文件的创建者信息仍保存在数据库中
## 🔧 核心改造内容
### 后端修改
1. **文件存储路径统一化** - 移除用户名路径组件
2. **数据库查询去用户化** - 移除 userId 过滤条件
3. **文件操作公共化** - 所有文件操作适配公共空间
4. **用户目录管理适配** - 不再创建用户专属目录
### 前端兼容性
- ✅ **无需修改** - 前端代码完全兼容,无需任何变更
- ✅ **API向后兼容** - 保持原有接口参数,仅后端逻辑调整
## 🎯 适用场景
- **家庭网盘** - 家庭成员共享文件存储空间
- **小团队协作** - 团队内部文件共享和协作
- **企业内网盘** - 企业内部公共文件存储
- **学校/机构** - 教学资源共享平台
## ⚠️ 重要注意事项
### 数据迁移
```bash
# 需要手动将现有用户文件迁移到公共目录
# 原来的结构: /rootDir/user1/file1.txt
# 现在的结构: /rootDir/file1.txt
```
### 安全考虑
- **文件安全性**:所有登录用户都能访问所有文件
- **权限控制**:需要在应用层面控制用户访问权限
- **数据备份**:建议在使用前备份原始数据
## 🔄 从原版迁移
1. **备份数据**
```bash
# 备份原有文件和数据库
cp -r /your/original/files /backup/location
```
2. **部署改造版**
```bash
# 部署修改后的代码
# 使用相同的配置文件和数据库
```
3. **文件迁移**
```bash
# 将用户目录中的文件移动到公共根目录
# 注意处理文件名冲突
```
## 📁 文件结构对比
### 改造前
```
/rootDir/
├── user1/
│ ├── file1.txt
│ └── folder1/
└── user2/
├── file2.txt
└── folder2/
```
### 改造后
```
/rootDir/
├── file1.txt
├── file2.txt
├── folder1/
└── folder2/
```
## 🛠️ 部署说明
### 环境要求
- Java 21+
- MongoDB 4.4+
- Maven 3.6+
### 构建和运行
```bash
# 构建项目
mvn clean package -DskipTests
# 运行
java -jar target/clouddisk-*.jar
```
### Docker 部署
#### 🎯 方案1:从Git仓库构建部署(推荐)
```bash
# 一键构建和部署
./build-from-git.sh
# 或手动操作
docker-compose -f docker-compose.git.yml up -d --build
```
#### 🎯 方案2:使用预构建镜像
```bash
# 使用提供的 docker-compose.yml
docker-compose up -d
```
### 🔗 Git仓库信息
- **仓库地址**:https://git.1080p.hk/chenpei/jmalcloud
- **自动构建**:支持从Git仓库直接构建Docker镜像
- **持续集成**:修改代码后重新构建即可更新
## 📝 变更日志
### v2.15.0-public-space
- 改造为公共空间模式
- 移除用户文件隔离机制
- 统一文件存储路径
- 保持前端API兼容性
## 🤝 贡献
如果你发现问题或有改进建议,欢迎提交 Issue 或 Pull Request。
## 📄 许可
[MIT](https://github.com/jamebal/jmal-cloud-view/blob/master/LICENSE) license.
Copyright (c) 2023-present jmal
---
> **免责声明**: 这是基于开源项目 JmalCloud 的自定义改造版本,使用前请仔细评估安全性和适用性。原作者不对此改造版本承担责任。