DrawIO 基于MinIO以及OSS私有云方案
DrawIO 基于MinIO以及OSS私有云方案
基于drawio的私有云实现以及私有云端存储方案
项目地址:https://github.com/mathcoder23/drawio-minio-oss
功能特性
- 支持OSS部署(本来就是支持的,限于部署服务器的带宽问题,将静态页面转到OSS部署加快页面访问速度)
- 新增基于MinIO的第三方存储方案
- 在私有化后,新增用户登录、并且管理创建的流程图文件(方便云端管理自己创建的流程图文件)
- 支持通过接口创建、管理、删除登录用户信息
效果示例
登录界面
Drawio-minio-oss版部署指南
需要的组件服务说明
- MinIO服务(tcp服务、内网通讯)
- Drawio私有云后端服务(http服务,公网)
- Drawio的私有云后台前端(html静态,公网)
- Drawio的核心服务(html静态,公网)
docker-compose一站式全部部署(非oss方案)
此方案非oss方案,即一个主机部署即可
1.部署前提准备
- 安装docker环境
- 安装docker-compose环境(版本不要太低)
- 一台主机(推荐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后台账号minio
和minio123
,登录http://localhost:9001
1.创建用户
ADMIN->Users点击Create User,这里我们创建的用户账号密码为test123123
和test123123
,因为yml中已经配置了,如果想自定义可以自行更改
2.为用户分配读写权限
3. 创建Bucket
我们在yml中配置的Bucket名称为drawio
,因此需要创建一个这个
5.重启docker-compose
这一步的作用是重新连接到minio服务
Ctrl+C关闭后重新执行docker-compose命令
6.登录Drawio私有云后台
当服务重启后,进入
http://localhost:8080
,使用默认的账号密码admin
和admin
登录
7.创建新的流程图
这里说明一下命名规范,/将会对数据进行分组,虽然此分组还没显示出来但是之后会,还有一点 /a和/a/b 其中a不能同时存在,不能即是文件又是文件夹
8.编辑流程图
9.完成
到此我们部署后的基本流程全部都跑通了。
但是限于服务器带宽,我们访问页面很慢,所以我们将静态也迁移至OSS上将会快很多,下面参考增加OSS的部署方案
10.进阶版-登录用户管理接口
这个目前只支持通过api的方式管理,具体的接口用法参考postman导出的json接口工程。
路径:drawio-admin-nodejs/Drawio私有云接口.postman_collection.json
docker-compose-OSS方案部部署
1.部署前提准备
- 此部署方案与非OSS方案非常像,因此,你需要先跑通非OSS方案
- 准备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私有云方案相关推荐
- 一个基于 Docker 的私有云方案
一个基于 Docker 的私有云方案 最近调研了很多 Docker 相关的项目,希望能够搭建一套稳定的基于Docker的私有云方案. 基于 Docker 的私有云,本质是一整套以 Docker 为核心 ...
- 超融合与私有云区别及联系:基于超融合构建私有云成主流方案
核心观点 1.目前主流私有云参考架构主要包含三个层次: IaaS 层.PaaS 层以及云管理平台,企业进行私有云改造应该根据自己的实际需求逐步落地: 2.IaaS 层是私有云最核心和最基础的部分,也是 ...
- 银联基于OpenStack的金融私有云建设实践
银联基于OpenStack的金融私有云建设实践 发表于2015-10-06 17:17| 1390次阅读| 来源CSDN| 1 条评论| 作者中国银联 祖立军 OpenStackSaaS银联金融 ...
- springboot 物联网_【阿里云生活物联网架构师专题】基于在 SpringBoot Java私有云上对接阿里云物联网,实现M2M设备数据流转。...
- 近处是人生,远处是风景 - 今天与老同学小聚一餐,君子之交淡如水,忆当年青春岁月.年龄越大,志同道合的朋友越来越少了,一声朋友,足以抵过无限岁月! 在儿时,总喜欢做一些天马行空的美梦,想象着可以仗 ...
- 乐鑫 ESP RainMaker® 加速企业智能转型,私有云方案助力客户打造自有品牌
乐鑫 ESP RainMaker® AIoT 私有云方案 物联网为推动产业创新转型和提升消费者体验释放了巨大潜力.然而,物联网产品的开发充满挑战:许多企业对构建云平台无从下手,方案开发耗时耗力.投资高 ...
- 【阿里云生活物联网架构师专题 ⑧】基于在 SpringBoot Java私有云上接收阿里云物联网设备的各种状态数据,实现m2m流转;
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- 基于openstack安装部署私有云详细图文教程
本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...
- 基于openstack安装部署私有云详细
本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...
- 华为私有云方案架构(分享二十三)
最近一直忙项目事情,很久没有去学习厂家方案,今天周末,有空对华为私有云架构做一个分享. 方案架构: 转载于:https://www.cnblogs.com/zywu-king/p/8321902.ht ...
最新文章
- 不要光仅仅知道ipconfig了,你out了
- pl/sql函数学习
- 用计算机模拟物理学,计算机模拟技术在医学物理学教学中的应用研究.pdf
- CSS学习18之小试牛刀
- 1、leetcode209 长度最小的子数组
- Chapter 1 First Sight——33
- web安全之CSRF
- 成为中国最好的Magento开发公司
- 超过4g的文件怎么上传到linux,怎么免费上传大于4G的文件到百度云 大于4G的文件不开会员怎么上传到百度云...
- Annotation processing seems to be disabled for the project microservicecloud
- dnf超时空漩涡副本路线流程图_DNF:超时空漩涡C的养成之路 按照目前的情况至少要4个月...
- Linux中zsh插件,ubuntu / zsh shell / oh-my-zsh / 常用插件
- leetcode 题库46. 把数字翻译成字符串
- python学习day1:初识python
- Docker 学习5 Docker容器网络
- C语言练手题(52个小练习)
- python网校_《猎豹网校:快速掌握Python系统管理-53讲》
- C语言位运算的取反(~)真实原理解析
- 航模的无刷电机到底是什么电机
- xp镜像文件的product key