• Stars
    star
    399
  • Rank 107,241 (Top 3 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Dockerized draw.io based on tomcat:9-jre11 & tomcat:9-jre8-alpine official image.

Build Image Get your own image badge on microbadger.com Docker Repository on Quay

latest alpine

Introduction

draw.io (formerly Diagramly) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit diagram maker, and more. draw.io can import .vsdx, Gliffyâ„¢ and Lucidchartâ„¢ files.

In this repository:

  • draw.io docker image that is always up-to-date with draw.io releases
  • draw.io export server image which allow exporting draw.io diagrams to pdf and images
  • docker-compose to run draw.io with the export server
  • docker-compose to run draw.io integrated within nextcloud
  • docker-compose to run draw.io with PlantUML support
  • docker-compose to run draw.io self-contained without any dependency on draw.io website (with the export server, plantUml, Google Drive support, OneDrive support, and EMF conversion support (for VSDX export)

Description

The Dockerfile builds from tomcat:9-jre11-slim and tomcat:9-jre8-alpine (see https://hub.docker.com/_/tomcat/)

Forked from fjudith/draw.io

Features

  • Based on Tomcat so it can be used directly or behind a reverse-proxy
  • Self-Signed certificate autogen
  • Let's encrypt certificate autogen
  • Support SSL Keystore mount to /user/local/tomcat/.keystore

Quick Start

Run the container.

docker run -it --rm --name="draw" -p 8080:8080 -p 8443:8443 fjudith/draw.io

Start a web browser session to http://localhost:8080/?offline=1&https=0 or https://localhost:8443/?offline=1

If you're running Docker Toolbox then start a web browser session to http://192.168.99.100:8080/?offline=1&https=0 or https://192.168.99.100:8443/?offline=1

?offline=1 is a security feature that disables support of cloud storage.

Environment variables

  • LETS_ENCRYPT_ENABLED: Enables Let's Encrypt certificate instead of self-signed; default false
  • PUBLIC_DNS: DNS domain to be used as certificate "CN" record; default draw.example.com
  • ORGANISATION_UNIT: Organisation unit to be used as certificate "OU" record; default Cloud Native Application
  • ORGANISATION: Organisation name to be used as certificate "O" record; default example inc
  • CITY: City name to be used as certificate "L" record; default Paris
  • STATE: State name to be used as certificate "ST" record; default Paris
  • COUNTRY_CODE: Country code to be used as certificate "C" record; default FR
  • KEYSTORE_PASS: ".keystore"/.jks" store password; default V3ry1nS3cur3P4ssw0rd
  • KEY_PASS: Private key password; default <ref:KEYSTORE_PASS>

HTTPS SSL Certificate via Let's Encrypt

Prerequisites:

  1. A Linux machine connected to the Internet with ports 443 and 80 open
  2. A domain/subdomain name pointing to this machine's IP address. (e.g., drawio.example.com)

Method:

  1. Using jgraph/drawio docker image, run the following command docker run -it -m1g -e LETS_ENCRYPT_ENABLED=true -e PUBLIC_DNS=drawio.example.com --rm --name="draw" -p 80:80 -p 443:8443 jgraph/drawio Notice that mapping port 80 to container's port 80 allows certbot to work in stand-alone mode. Mapping port 443 to container's port 8443 allows the container tomcat to serve https requests directly.

Changing draw.io configuration

Method 1 (Build you custom image with setting pre-loaded)

  1. Edit PreConfig.js & PostConfig.js files (next to Dockerfile in debian or alpine folders)
  2. Build the docker image

Method 2 (Using existing running docker container)

  1. Edit PreConfig.js & PostConfig.js files (next to Dockerfile in debian or alpine folders)
  2. Copy these files to docker container
docker cp PreConfig.js draw:/usr/local/tomcat/webapps/draw/js/
docker cp PostConfig.js draw:/usr/local/tomcat/webapps/draw/js/

Method 3 (Bind configuration files into the container when started)

  1. This method allows changing the configuration files directly on the host without invoking any other docker commands. It can be used for testing
  2. Edit PreConfig.js & PostConfig.js files (next to Dockerfile in debian or alpine folders)
  3. From within the directory that contained the configuration files, run the following command to start docker container
  4. Note: self-contained docker-compose file already mount the configuration files into the container
docker run -it  --rm --name="draw" --mount type=bind,source="$(pwd)"/PreConfig.js,target=/usr/local/tomcat/webapps/draw/js/PreConfig.js --mount type=bind,source="$(pwd)"/PostConfig.js,target=/usr/local/tomcat/webapps/draw/js/PostConfig.js -p 8080:8080 -p 8443:8443 fjudith/draw.io

Reference

More Repositories

1

saltstack-kubernetes

Deploy the lowest-cost production ready Kubernetes cluster using terraform and saltstack.
Jinja
60
star
2

cloud-native-isometric-icons

Isometric assets promoting Cloud Native & Continuous Delivery
Shell
46
star
3

docker-wordpress

Adds Memcached and LDAP php-extention to official WordPress php-fpm image.
Dockerfile
28
star
4

docker-samba-join-ad

Dockerized Active Directory member Samba server based on debian:stable official image.
Shell
23
star
5

docker-limesurvey

Dockerized LimeSurvey based on php:5.6 official image.
Dockerfile
17
star
6

docker-jenkins

Performance tuning of Jenkins official image.
Dockerfile
14
star
7

pwm-container

Dockerized PWM based on Tomcat:9-jre11 official image with SSL enabled.
Shell
14
star
8

docker-alfresco

Dokerized micro-services to Alfresco latest GA based on openjdk & tomcat official images
Shell
10
star
9

docker-squash-tm

Dockerized Squash-TM based on Tomcat:8-jre7 official image with LDAP and Reverse-Proxy support.
Shell
10
star
10

docker-nexus

Shell
5
star
11

docker-thingsboard-demo

Dockerized ThingsBoard MQTT demo script running amd64/node official image
Shell
5
star
12

bookinfo-load-test

A load-test script & container for Istio Bookinfo
Shell
3
star
13

docker-glpi

Dockerized GLPI based on php:5-apache official image.
Shell
3
star
14

rook-deconstructed

Rook deconstructed
HTML
2
star
15

docker-cyclotron

Dockerized cyclotron based on nginx:alpine & node:6alpine official image.
JavaScript
2
star
16

nozzle

A friendly serverless or binary controller to shutdown your Kubernetes workload and reduce your cluster power consumtion
Python
2
star
17

docker-waarp-r66

Dockerized Waarp R66 file transfer gateway & monitoring solution on top of Centos 6 and Alpine official images.
Shell
2
star
18

awesome-pulumi

A curated list for awesome pulumi sources
1
star
19

scaleway-ubuntu

Makefile
1
star
20

docker-graylog

Dokerized Graylog
1
star
21

docker-waarp-gwftp

Dockerized Waarp Gateway FTP on top of Centos 6 Waarp-R66.
Shell
1
star
22

terraform-openshift

HCL
1
star
23

cloud-native-app-demo

Python
1
star
24

logo-library

1
star
25

docker-gitbucket

1
star
26

docker-piwik

Shell
1
star
27

chsa-exercises

Exercices to prepare the Certified Hyperledger Sawtooth Administrator exam
Dockerfile
1
star
28

ansible-sybase

Python
1
star
29

katacoda-scenarios

Katacoda Scenarios
Shell
1
star
30

docker-gitlab

Shell
1
star
31

hyperkube

Customized hyperkube image with open-iscsi, azure-cli, gnupg and xfsorgs
1
star
32

docker-tensorflow-playground

Dockerized Tensorflow Playground based on amd64/node official image
Dockerfile
1
star
33

docker-jenkins-nginx

Nginx frontend for Jenkins.
Nginx
1
star