{"name":"docker-drawio: Secure, Dockerized draw.io for Diagramming","description":"docker-drawio provides a secure, Dockerized implementation of the popular draw.io diagramming software. It offers various deployments, including a standalone server, an export server, and integrations with platforms like Nextcloud. This project ensures you always run draw.io on the most secure base image available.","github":"https://github.com/jgraph/docker-drawio","url":"https://osrepos.com/repo/jgraph-docker-drawio","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/jgraph-docker-drawio","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/jgraph-docker-drawio.md","json":"https://osrepos.com/repo/jgraph-docker-drawio.json","topics":["Docker","draw.io","Diagramming","Containerization","Shell","Self-hosted","Productivity","Open Source"],"keywords":["Docker","draw.io","Diagramming","Containerization","Shell","Self-hosted","Productivity","Open Source"],"stars":null,"summary":"docker-drawio provides a secure, Dockerized implementation of the popular draw.io diagramming software. It offers various deployments, including a standalone server, an export server, and integrations with platforms like Nextcloud. This project ensures you always run draw.io on the most secure base image available.","content":"## Introduction\n`docker-drawio` offers a robust and secure Dockerized solution for running [draw.io](https://github.com/jgraph/drawio){:target=\"_blank\"}, a widely-used whiteboarding and diagramming software application. This project provides several Docker implementations and associated tools, ensuring flexibility and ease of deployment. It includes a `draw.io` Docker image that stays current with releases, an export server image for converting diagrams to PDF and images, and `docker-compose` setups for various scenarios, such as running `draw.io` with the export server, integrating with Nextcloud, or a self-contained version with Google Drive, OneDrive, and EMF conversion support. The project prioritizes security, building from `tomcat:9-jre11` and consistently using the Tomcat image with the fewest security vulnerabilities.\n\n## Installation\nGetting `docker-drawio` up and running is straightforward. You can quickly launch a container with the following command:\n\nbash\ndocker run -it --rm --name=\"draw\" -p 8080:8080 -p 8443:8443 jgraph/drawio\n\n\nOnce the container is running, access `draw.io` through your web browser:\n*   For HTTP: [http://localhost:8080/?offline=1&https=0](http://localhost:8080/?offline=1&https=0){:target=\"_blank\"}\n*   For HTTPS: [https://localhost:8443/?offline=1](https://localhost:8443/?offline=1){:target=\"_blank\"}\n\nIf you are using `Docker Toolbox`, replace `localhost` with `192.168.99.100`. The `?offline=1` parameter is a security feature that disables cloud storage support.\n\n## Examples\nA practical example of `docker-drawio`'s capabilities is setting up HTTPS SSL certificates via Let's Encrypt. This requires a Linux machine with ports 80 and 443 open, and a domain name pointing to its IP address.\n\nFirst, create directories to store Let's Encrypt data, for instance:\n*   `/opt/docker/drawiodata/letsencrypt-log`\n*   `/opt/docker/drawiodata/letsencrypt-etc`\n*   `/opt/docker/drawiodata/letsencrypt-lib`\n\nThen, run the `jgraph/drawio` Docker image with the appropriate volume mappings and environment variables:\n\nbash\ndocker run -it -m1g \\\n  -v \"/opt/docker/drawiodata/letsencrypt-log:/var/log/letsencrypt/\" \\\n  -v \"/opt/docker/drawiodata/letsencrypt-etc:/etc/letsencrypt/\" \\\n  -v \"/opt/docker/drawiodata/letsencrypt-lib:/var/lib/letsencrypt\" \\\n  -e LETS_ENCRYPT_ENABLED=true \\\n  -e PUBLIC_DNS=drawio.example.com \\\n  --rm --name=\"draw\" -p 80:80 -p 443:8443 jgraph/drawio\n\n\nThis command maps port 80 for Certbot's standalone mode and port 443 to the container's 8443 for Tomcat to serve HTTPS requests directly. You can also customize `draw.io` configuration using `DRAWIO_*` environment variables, enabling integrations with services like Google Drive or OneDrive.\n\n## Why Use docker-drawio?\n`docker-drawio` stands out for several key reasons:\n*   **Security-Focused**: It's built on a `tomcat:9-jre11` base image, chosen for its minimal security vulnerabilities, and is consistently updated to maintain this standard.\n*   **Always Up-to-Date**: The project ensures you're always running the latest `draw.io` releases.\n*   **Flexible Deployment**: Based on Tomcat, it can be deployed directly or behind a reverse-proxy, fitting various infrastructure needs.\n*   **SSL/TLS Support**: Features include automatic generation of self-signed certificates and seamless integration with Let's Encrypt for trusted SSL. It also supports mounting custom SSL Keystores.\n*   **Rich Integrations**: Offers `docker-compose` setups for integration with Nextcloud, Google Drive, OneDrive, and includes an export server for various diagram formats.\n\n## Links\n*   **GitHub Repository**: [jgraph/docker-drawio](https://github.com/jgraph/docker-drawio){:target=\"_blank\"}\n*   **Original draw.io Project**: [jgraph/drawio](https://github.com/jgraph/drawio){:target=\"_blank\"}\n*   **Forked From**: [fjudith/docker-draw.io](https://github.com/fjudith/docker-draw.io){:target=\"_blank\"}\n*   **Tomcat Docker Hub**: [tomcat:9-jre11](https://hub.docker.com/_/tomcat/){:target=\"_blank\"}","metrics":{"detailViews":6,"githubClicks":6},"dates":{"published":null,"modified":"2025-12-24T20:00:59.000Z"}}