LIVEReading: Run Your Own draw.io Diagram Editor in MinutesTotal time: 8 minSteps: 5Worked first time: 90% LIVEReading: Run Your Own draw.io Diagram Editor in MinutesTotal time: 8 minSteps: 5Worked first time: 90%
CBW
Run Your Own draw.io Diagram Editor in Minutes
Easygithub.com/jgraph/drawio2026-07-17

Run Your Own draw.io Diagram Editor in Minutes

Host a fully working draw.io diagramming editor yourself using Docker or GitHub Pages — no coding required. Great for teams who want a private, self-hosted alternative to app.diagrams.net.

// Build stats

  • Total time8 min
  • Number of steps5
  • DifficultyEasy
  • Worked first time90%
// Before you start

What you need

  • Docker Desktop installed (for the Docker route) OR a free GitHub account (for the Pages route)
  • A modern browser: Chrome 123+, Firefox 120+, Edge 123+, or Safari 17.5+
  • Basic comfort running a terminal / command prompt
  • Internet connection for the initial image pull
01
Step 1 of 5

Choose your hosting method

2 min

There are two easy ways to run draw.io yourself. Option A uses Docker — best if you want it running on your own computer or server right now. Option B uses GitHub Pages — best if you want a free public URL anyone can visit. Pick one and follow only that path. The remaining steps cover Option A (Docker) first, then Option B at the end.

Terminal · mac
$ # No command needed yet — just decide: Docker (steps 2-4) or GitHub Pages (step 5).
What you should see
Nothing to run yet.
02
Step 2 of 5

Pull the official draw.io Docker image

3 min

This command downloads the official pre-built draw.io container from Docker Hub. You only need to do this once. Docker Desktop must be open and running before you start.

Terminal · mac
$ docker pull jgraph/drawio
What you should see
You will see lines like 'Pulling from jgraph/drawio' followed by layer download progress bars, ending with 'Status: Downloaded newer image for jgraph/drawio:latest'.
This might happen

Command not found or Docker daemon not running

Open Docker Desktop first and wait until it shows 'Engine running' in the bottom-left corner, then retry.

03
Step 3 of 5

Start the draw.io container

1 min

This command starts draw.io and maps it to port 8080 on your machine. The '--rm' flag means the container cleans itself up when you stop it. The '-d' flag runs it in the background so your terminal stays free.

Terminal · mac
$ docker run -it --rm --name drawio -p 8080:8080 -p 8443:8443 jgraph/drawio
What you should see
A container ID string is printed (a long hex number). No errors means it started successfully.
This might happen

Port 8080 is already in use

Change the left side of the port mapping, e.g. use '-p 9090:8080' and then open http://localhost:9090 instead.

04
Step 4 of 5

Open draw.io in your browser

1 min

With the container running, just open your browser and go to the address below. You will see the full draw.io editor — completely local, no account needed.

Terminal · mac
$ # Open this URL in your browser:
$ http://localhost:8080
What you should see
The draw.io editor loads with a 'Create New Diagram' dialog. You can start drawing immediately.
This might happen

Page does not load or shows a connection error

Wait 10-15 seconds and refresh — the container may still be starting up. If it still fails, run 'docker ps' to confirm the container is listed as running.

05
Step 5 of 5

(Option B) Fork the repo and publish to GitHub Pages

5 min

If you want a free hosted URL instead of running Docker, go to https://github.com/jgraph/drawio in your browser while logged into GitHub. Click the 'Fork' button (top right). Once forked, go to your fork's Settings tab, then 'Pages' in the left sidebar. Under 'Branch', select 'master' and '/ (root)', then click Save. GitHub will build and publish the site. After about 2 minutes you will get a URL like https://YOUR-USERNAME.github.io/drawio/src/main/webapp/index.html — that is your personal draw.io editor.

Terminal · mac
$ # No terminal commands needed for this option.
$ # All steps are done in the GitHub website UI.
$ # Your editor URL will be:
$ # https://YOUR-USERNAME.github.io/drawio/src/main/webapp/index.html
What you should see
GitHub Pages shows a green checkmark and a live URL under Settings > Pages. Visiting that URL opens the draw.io editor.
This might happen

GitHub Pages shows a 404 after publishing

Make sure you are using the exact path /drawio/src/main/webapp/index.html at the end of your Pages URL. The root URL alone will 404.

// Status

cooked. baked. worked.

A fully working draw.io diagram editor running either at http://localhost:8080 (Docker) or at your personal GitHub Pages URL. You can create flowcharts, network diagrams, org charts, and more, and export them as PNG, SVG, or PDF — all without an account or subscription.

// the honest bit

The honest part

This self-hosted version does not include real-time collaboration — only one person can edit a file at a time. Integrations with Google Drive, OneDrive, and Confluence are not available in the self-hosted build. Diagrams are saved locally in your browser or as downloaded files; there is no built-in cloud sync. The Docker container is stateless by default — stopping it loses nothing because draw.io stores files on your device, not in the container. The GitHub Pages version is public by default unless your GitHub account is on a paid plan that supports private Pages.