DrawIO 基于MinIO以及OSS私有云方案

基于drawio的私有云实现以及私有云端存储方案

项目地址:https://github.com/mathcoder23/drawio-minio-oss

功能特性

  • 支持OSS部署(本来就是支持的,限于部署服务器的带宽问题,将静态页面转到OSS部署加快页面访问速度)
  • 新增基于MinIO的第三方存储方案
  • 在私有化后,新增用户登录、并且管理创建的流程图文件(方便云端管理自己创建的流程图文件)
  • 支持通过接口创建、管理、删除登录用户信息

效果示例


登录界面

Drawio-minio-oss版部署指南

需要的组件服务说明

  1. MinIO服务(tcp服务、内网通讯)
  2. Drawio私有云后端服务(http服务,公网)
  3. Drawio的私有云后台前端(html静态,公网)
  4. Drawio的核心服务(html静态,公网)

docker-compose一站式全部部署(非oss方案)

此方案非oss方案,即一个主机部署即可

1.部署前提准备

  1. 安装docker环境
  2. 安装docker-compose环境(版本不要太低)
  3. 一台主机(推荐Linux系统)

2.拉取源码

部署依赖于源码部署,所以需要将整个源码拉下来

git clone https://github.com/mathcoder23/drawio-minio-oss
cd drawio-minio-oss

3.运行docker-compose

cd docker/compose/
docker-compose -f docker-compose-drawio.yml up

4.登录MinIO后台配置账号

在docker-compose中我们给drawio-admin配置的MinIO连接参数如下

    minio1:image: minio/minio:RELEASE.2021-07-08T01-15-01Zhostname: minio1volumes:- minio-data1:/data1expose:- "9000"- "9001"environment:MINIO_ROOT_USER: minioMINIO_ROOT_PASSWORD: minio123command: server /data1 --console-address ":9001"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3drawio-admin:build:context: ../../drawio-admin-nodejsdockerfile: Dockerfileimage: drawio-admin:1.20environment:DRAWIO_URL: ''MINIO_ACCESS_KEY: 'test123123'MINIO_SECRET_KEY: 'test123123'MINIO_BUCKET: 'drawio'depends_on:- minio1

根据我们配置的MinIO后台账号miniominio123,登录http://localhost:9001

1.创建用户

ADMIN->Users点击Create User,这里我们创建的用户账号密码为test123123test123123,因为yml中已经配置了,如果想自定义可以自行更改

2.为用户分配读写权限


3. 创建Bucket

我们在yml中配置的Bucket名称为drawio,因此需要创建一个这个

5.重启docker-compose

这一步的作用是重新连接到minio服务
Ctrl+C关闭后重新执行docker-compose命令

6.登录Drawio私有云后台

当服务重启后,进入http://localhost:8080,使用默认的账号密码adminadmin登录

7.创建新的流程图

这里说明一下命名规范,/将会对数据进行分组,虽然此分组还没显示出来但是之后会,还有一点 /a和/a/b 其中a不能同时存在,不能即是文件又是文件夹

8.编辑流程图


9.完成

到此我们部署后的基本流程全部都跑通了。
但是限于服务器带宽,我们访问页面很慢,所以我们将静态也迁移至OSS上将会快很多,下面参考增加OSS的部署方案

10.进阶版-登录用户管理接口

这个目前只支持通过api的方式管理,具体的接口用法参考postman导出的json接口工程。
路径:drawio-admin-nodejs/Drawio私有云接口.postman_collection.json

docker-compose-OSS方案部部署

1.部署前提准备

  1. 此部署方案与非OSS方案非常像,因此,你需要先跑通非OSS方案
  2. 准备OSS云或其他静态托管服务商

2.文档说明

OSS版文档基于非OSS上只对有更改的地方进行说明,不会再重复

3.托管静态Html到OSS

1.由于html的静态化,我们需要先修改静态代码指向的Drawio私有云后端服务地址

编辑html/admin/config.js

window.baseUrl = '/api'更改为后端地址,http://ip:8080/api这里的ip是公网ip,注意后面不要加斜杠

这里的http://ip:8080/api也可以改为//ip:8080/api,跟随前端协议变化而变化,但是需要自行配置https

2.上传html文件夹内所有文件到OSS

注意不要上传html本身,当然如果你不介意多一个/html路径也可以

OSS的静态托管教程以及域名绑定等操作,这里不细谈,具体参见对应的文档即可

这里假设配置的OSS访问地址为http://xxx.com html中的admin、drawio文件夹上传在此根目录,这个地址下面配置要用

后台管理入口地址:http://xxx.com/admin/drawio.html

Drawio入口地址:http://xxx.com/drawio/index.html 此地址对用户透明,仅部署配置使用

为了保证部署的可用性,请分别访问上述地址看是否正常。

3.修改yml中DRAWIO_URL值

DRAWIO_URL的配置是可以直接访问的drawio页面,http://xxx.com/drawio/index.html,之所以后台要配置这个地址,是由于后台是采用代理技术来实现
minio的持久化
yml部分代码

# Drawio 管理后台服务
drawio-admin:
build:context: ../../drawio-admin-nodejsdockerfile: Dockerfile
image: drawio-admin:1.21
environment:DRAWIO_URL: 'http://xxx.com/drawio/index.html' ###### 将这里更改为上述地址,其余不变MINIO_ACCESS_KEY: 'test123123'MINIO_SECRET_KEY: 'test123123'MINIO_BUCKET: 'drawio'
depends_on:- minio1

4.重启服务

5.进入后台体验速度的改变

后台管理入口地址:http://xxx.com/admin/drawio.html

参考源码

https://github.com/jgraph/drawio 感谢核心贡献

https://github.com/othorizon/drawio-webdav 提供MinIO存储支持

DrawIO 基于MinIO以及OSS私有云方案相关推荐

  1. 一个基于 Docker 的私有云方案

    一个基于 Docker 的私有云方案 最近调研了很多 Docker 相关的项目,希望能够搭建一套稳定的基于Docker的私有云方案. 基于 Docker 的私有云,本质是一整套以 Docker 为核心 ...

  2. 超融合与私有云区别及联系:基于超融合构建私有云成主流方案

    核心观点 1.目前主流私有云参考架构主要包含三个层次: IaaS 层.PaaS 层以及云管理平台,企业进行私有云改造应该根据自己的实际需求逐步落地: 2.IaaS 层是私有云最核心和最基础的部分,也是 ...

  3. 银联基于OpenStack的金融私有云建设实践

     银联基于OpenStack的金融私有云建设实践 发表于2015-10-06 17:17| 1390次阅读| 来源CSDN| 1 条评论| 作者中国银联 祖立军 OpenStackSaaS银联金融 ...

  4. springboot 物联网_【阿里云生活物联网架构师专题】基于在 SpringBoot Java私有云上对接阿里云物联网,实现M2M设备数据流转。...

    - 近处是人生,远处是风景 - 今天与老同学小聚一餐,君子之交淡如水,忆当年青春岁月.年龄越大,志同道合的朋友越来越少了,一声朋友,足以抵过无限岁月! 在儿时,总喜欢做一些天马行空的美梦,想象着可以仗 ...

  5. 乐鑫 ESP RainMaker® 加速企业智能转型,私有云方案助力客户打造自有品牌

    乐鑫 ESP RainMaker® AIoT 私有云方案 物联网为推动产业创新转型和提升消费者体验释放了巨大潜力.然而,物联网产品的开发充满挑战:许多企业对构建云平台无从下手,方案开发耗时耗力.投资高 ...

  6. 【阿里云生活物联网架构师专题 ⑧】基于在 SpringBoot Java私有云上接收阿里云物联网设备的各种状态数据,实现m2m流转;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

  7. 视频私有云实战:基于Docker构建点播私有云平台

    私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...

  8. 基于openstack安装部署私有云详细图文教程

    本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...

  9. 基于openstack安装部署私有云详细

    本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...

  10. 华为私有云方案架构(分享二十三)

    最近一直忙项目事情,很久没有去学习厂家方案,今天周末,有空对华为私有云架构做一个分享. 方案架构: 转载于:https://www.cnblogs.com/zywu-king/p/8321902.ht ...

最新文章

  1. 不要光仅仅知道ipconfig了,你out了
  2. pl/sql函数学习
  3. 用计算机模拟物理学,计算机模拟技术在医学物理学教学中的应用研究.pdf
  4. CSS学习18之小试牛刀
  5. 1、leetcode209 长度最小的子数组
  6. Chapter 1 First Sight——33
  7. web安全之CSRF
  8. 成为中国最好的Magento开发公司
  9. 超过4g的文件怎么上传到linux,怎么免费上传大于4G的文件到百度云 大于4G的文件不开会员怎么上传到百度云...
  10. Annotation processing seems to be disabled for the project microservicecloud
  11. dnf超时空漩涡副本路线流程图_DNF:超时空漩涡C的养成之路 按照目前的情况至少要4个月...
  12. Linux中zsh插件,ubuntu / zsh shell / oh-my-zsh / 常用插件
  13. leetcode 题库46. 把数字翻译成字符串
  14. python学习day1:初识python
  15. Docker 学习5 Docker容器网络
  16. C语言练手题(52个小练习)
  17. python网校_《猎豹网校:快速掌握Python系统管理-53讲》
  18. C语言位运算的取反(~)真实原理解析
  19. 航模的无刷电机到底是什么电机
  20. xp镜像文件的product key

热门文章

  1. TPM管理解决制造型企业成本大问题的常用手段
  2. Redis主从复制原理
  3. 52 图初探 Linux 通用知识
  4. 小牛叔讲Python第1章: 编程界的瑞士军刀Python
  5. FTP服务器是什么意思?FTP服务器怎么搭建?
  6. DNS服务(二):域名劫持
  7. 手机APP开发之MIT Appinventor详细实战教程(四),对数据库的思考以及对网络数据库的整理与研究
  8. 常见国际贸易专业术语
  9. 阿里云轻量应用服务器防火墙配置(全网最简单)
  10. 根据域名快速查询IP