源码说明

JmalCloud 是一款私有云存储网盘项目,能够简单安全管理您的云端文件;在使用场景方面,它可以用于个人云存储,方便随时随地访问、管理、备份和恢复个人数据;支持团队云存储,方便多人共享文件夹和文件,进行实时协作,共同编辑文档等,提高团队工作效率;支持本地文件夹与云端文件夹的同步;提供网页端、手机端和客户端的多端访问;还可便捷地将文件分享给他人,并设置分享链接的权限和有效期,保护文件安全。

搭建一款开源免费的网盘系统JmalCloud插图

特色说明

JmalCloud 是一款私有云存储网盘项目。它具有以下特性和功能:

  • 支持多种存储:支持 OSS,包括阿里云 OSS、腾讯云 OSS 和 MinIO。
  • 文件在线预览:支持图片、音频、视频等文件的在线预览。
  • 文档编辑与预览:支持 Word、Excel、PPT、流程图和思维导图的编辑和预览。
  • 多系统架构支持:支持 x86、arm64(Centos / Debian / Ubuntu / macOS)。
  • 在线文本编辑器:提供强大的在线文本编辑器。
  • 大文件上传与断点续传:支持超大文件上传,具备断点续传功能。
  • 支持 WebDAV。

在线演示

安装使用

部署要求:

必须安装:Docker 和 Docker Compose v2.0 +

部署步骤:

新建 docker - compose.yml 代码如下:

services:
  mongo:
    container_name: jmalcloud_mongodb
    image: mongo:4.4
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - ./docker/jmalcloud/mongodb/data/db:/data/db
      - ./docker/jmalcloud/mongodb/backup:/dump
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 3
    command: --wiredTigerCacheSizeGB 0.5

  jmalcloud:
    container_name: jmalcloud_server
    image: jmal/jmalcloud:latest
    environment:
      MONGODB_URI: "mongodb://mongo:27017/jmalcloud"
      TZ: "Asia/Shanghai"
      JVM_OPTS: "-Xms256m -Xmx512m"
    volumes:
      - ./docker/jmalcloud/files:/jmalcloud/files/
    restart: unless-stopped
    depends_on:
      mongo:
        condition: service_healthy

  nginx:
    container_name: jmalcloud_nginx
    image: jmal/jmalcloud-nginx:latest
    ports:
      - 7070:80
      - 7071:8089
    environment:
      TZ: "Asia/Shanghai"
    links:
      - jmalcloud
      - office
    restart: unless-stopped

  office: # Optional
    container_name: jmalcloud_office
    image: onlyoffice/documentserver:8.0.1
    environment:
      TZ: "Asia/Shanghai"
      JWT_SECRET: "my_secret"
    restart: unless-stopped

使用下面命令即可创建并启动 JmalCloud:

docker compose up - d

等待启动后访问: http://{your_ip}:7070

重启管理员密码步骤:

# 1. 重置密码
docker exec -it jmalcloud_mongodb mongo jmalcloud --eval "db.getCollection('user').update({ 'creator': true }, {\$set: { 'password': '1000:c5b705ea13a1221f5e59110947ed806f8a978e955fbd2ed6:22508de12228c34a235454a0caf3bcaa5552858543258e56' }}, { 'multi': false, 'upsert': false })"
# 2. 重启容器
docker restart jmalcloud_server
# 重置后的密码为: jmalcloud

备份/恢复数据库:

备份数据库:

  docker exec -it jmalcloud_mongodb mongodump -d jmalcloud -o /dump/xxx --gzip --quiet

恢复数据库:

  docker exec -it jmalcloud_mongodb mongorestore -d jmalcloud --dir /dump/xxx --gzip --quiet

dev 环境准备:

  • jdk17+
  • mongodb4.4+
  • node v16.x.x

1、克隆服务端项目

git clone  https://github.com/jamebal/jmal-cloud-server.git

2、修改配置文件 src/main/resources/file.yml

修改参数rootDir 和 ip2region-db-path 改为自己的目录, 即可启动服务

3、克隆web端项目

git clone https://github.com/jamebal/jmal-cloud-view.git

4、项目目录下执行npm install

5、启动web端npm run dev

截图展示

搭建一款开源免费的网盘系统JmalCloud插图 搭建一款开源免费的网盘系统JmalCloud插图 搭建一款开源免费的网盘系统JmalCloud插图 搭建一款开源免费的网盘系统JmalCloud插图

1.使用本站下载的源码仅限于个人学习和非商业用途。
2.禁止将本站下载的源码用于搭建或支持任何违法、淫秽、暴力或侵犯他人合法权益的网站或应用。
3.使用本站下载的源码需遵守国家法律法规及相关规定,不得从事任何违法活动。
4.如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。