draw.io Server
Overview
draw.io (diagrams.net) is an open source diagram editor for flowcharts, UML, entity-relationship, network, BPMN, org-chart, mind-map and wireframe diagrams. It is released under the Apache-2.0 licence and runs client-side in your browser. This SecureAnyCloud AWS Marketplace AMI hosts the draw.io web application on your own instance and serves it over HTTPS.
Your diagram data stays with you: in your browser, on your device, or in storage you connect, such as local files or your own Google Drive, OneDrive or GitHub. The server keeps no diagrams and has no database, so it is a stateless editor host.
draw.io has no login of its own. This image hardens the runtime and fronts it with HTTPS instead of exposing an unauthenticated administrative surface.
What you get:
- The official draw.io / diagrams.net web application v30.3.14 (Apache-2.0): the official
draw.wardeployed as the root web application on Apache Tomcat 9.0.120 and OpenJDK 17, bound to the loopback interface only (127.0.0.1:8080) - The
drawio.servicesystemd unit, which runs Tomcat and restarts it automatically on failure - The
drawio-server-firstboot.servicesystemd oneshot, which regenerates the per-instance self-signed TLS certificate, starts the editor, proves a known editor asset loads, and writes a secret-free access note to/root/drawio-server-credentials.txt - nginx on port 443 terminating HTTPS with a self-signed TLS certificate that is regenerated on each instance's first boot, and reverse-proxying to the loopback-bound editor, with an unauthenticated
/healthzfor load-balancer probes - Port 80 serving
/healthzand redirecting everything else to HTTPS - A hardened Tomcat: the stock manager and host-manager applications removed, an empty users file and the shutdown port disabled, so there is no administrative console and no shared password in the image
- IMDSv2 required on instances, and a build-time check on every image that the app's built-in image-import proxy does not expose the instance metadata endpoint
- Ubuntu 24.04 LTS base with the latest security patches
Connecting to your instance
Connect over SSH on port 22 as the default login user of your operating system variant. On Ubuntu 24.04 LTS the user is ubuntu, for example: ssh -i your-key.pem ubuntu@<public-ip>
You do not sign in to use the editor, because draw.io has no login of its own. Open https://<public-ip>/ in a browser and accept the per-instance self-signed certificate.
Prerequisites
- An AWS account subscribed to this product
- An EC2 key pair for SSH access
- A Security Group allowing inbound TCP 22 (SSH), 80 and 443 (HTTPS), ideally restricted to your own IP range because the editor has no login of its own
- A modern web browser
Launch from the AWS Console
- Open the product in AWS Marketplace. Choose Continue to Subscribe, then Continue to Configuration and Continue to Launch.
- Choose an instance type. Any current-generation type works, because the app is lightweight and rendering happens in the browser.
- Select your key pair and a Security Group that allows inbound 22, 80 and 443.
- Launch the instance and note its public IP address.
Launch from the AWS CLI
aws ec2 run-instances \
--image-id <ami-id-from-listing> \
--instance-type m5.large \
--key-name your-key \
--security-group-ids sg-xxxxxxxx \
--metadata-options 'HttpTokens=required,HttpEndpoint=enabled' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=drawio-server}]'Verify the services are running
SSH in and confirm that both services are active:
sudo systemctl is-active drawio nginxactive activeInspect the runtime and listeners
List the listening ports. The editor's Tomcat listener is bound to the loopback interface only, so only nginx (ports 80 and 443) is reachable from the network:
sudo ss -tlnp | grep -E ':(80|443|8080) 'LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",...)) LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",...)) LISTEN 0 100 [::ffff:127.0.0.1]:8080 *:* users:(("java",...))Port 8080 (Tomcat) answers on 127.0.0.1 only. Confirm the bundled version and licence:
cat /opt/tomcat/DRAWIO_VERSIONdrawio_version=30.3.14 drawio_war_sha256=f46acbc76273bece778a39c4dda63261c10d7326160b3ffb231cb784e9b0a9eb drawio_license=Apache-2.0 tomcat_version=9.0.120 baked_at=2026-07-24T02:07:26ZRead the access note
draw.io ships no credentials. Read the secret-free access note, which records the editor URL:
sudo cat /root/drawio-server-credentials.txt# draw.io — Access Notes
# Generated on first boot by drawio-server-firstboot.service
#
# draw.io (diagrams.net) is a client-side diagram editor. It has NO admin UI,
# login or password: diagrams live in YOUR BROWSER / on YOUR DEVICE ...
# drawio.url=https://<public-ip>/ drawio.healthz=https://<public-ip>/healthz drawio.version=v30.3.14Verify the editor over HTTPS
Request a known editor asset, the ~9 MB draw.io application bundle, to confirm the editor is served over TLS:
curl -sk -o /dev/null -w 'GET /js/app.min.js -> HTTP %{http_code}, %{size_download} bytes\n' https://127.0.0.1/js/app.min.jsGET /js/app.min.js -> HTTP 200, 9407659 bytesCheck the health endpoint next. It is unauthenticated and answers on both HTTP and HTTPS, and port 80 redirects everything else to HTTPS:
curl -sk -o /dev/null -w 'healthz -> HTTP %{http_code}\n' https://127.0.0.1/healthzhealthz -> HTTP 200Confirm the hardening
The stock Tomcat administrative console is removed. Request the manager application and confirm it returns 404:
curl -sk -o /dev/null -w 'GET /manager/html -> HTTP %{http_code}\n' https://127.0.0.1/manager/htmlGET /manager/html -> HTTP 404Open the editor in a browser
Open https://<public-ip>/ in your browser and accept the per-instance self-signed certificate. The draw.io editor loads directly, and no login is required.
Drag shapes onto the canvas and connect them to draw flowcharts, UML, network, BPMN and other diagrams.
Select any shape to style it with the Style, Text and Arrange panels on the right.
Save and export your diagrams
Because draw.io runs in your browser, you choose where your diagrams live.
- Local device: save
.drawio(or.xml) files to your computer from the File menu. - Your own cloud storage: connect Google Drive, OneDrive or GitHub from File > Open from / Save to, so diagrams are stored in accounts you control.
- Export: export any diagram to PNG, SVG or PDF from File > Export as. Your browser performs the export, so no additional export service is exposed on the instance.
Managing the service
# Status and logs
sudo systemctl status drawio nginx
sudo journalctl -u drawio -n 100 --no-pager# Restart the editor or the proxy
sudo systemctl restart drawio
sudo systemctl restart nginxProduction recommendations
- Restrict inbound access. draw.io has no login of its own, so anyone who can reach the URL can use the editor. Restrict the Security Group to your own CIDR, or place the instance behind a VPN or in a private subnet.
- Use your own domain and certificate. To get a trusted certificate, terminate TLS at nginx with your own domain and a CA-signed certificate (for example via
certbot). Alternatively, front the instance with an Application Load Balancer and an ACM certificate. Edit/etc/nginx/sites-available/sac-drawio, pointssl_certificateandssl_certificate_keyat your own files, then reload nginx. - Keep it patched. Apply OS security updates regularly with
sudo apt-get update && sudo apt-get upgrade. - Health checks. Use the unauthenticated endpoint
https://<public-ip>/healthzfor load-balancer and monitoring probes.
Support and licensing
draw.io / diagrams.net is licensed under the Apache-2.0 licence. The licence text is included in the image at /opt/tomcat/webapps/ROOT/LICENSE.
"draw.io" and "diagrams.net" are trademarks of JGraph Ltd. This image packages the open source application for self-hosting and is not affiliated with or endorsed by JGraph Ltd. SecureAnyCloud provides the packaging, hardening and support.
Need Help?
SecureAnyCloud provides 24/7 technical support for this product by email and live chat at sales@secureanycloud.com. We can help with deployment, reverse-proxy termination with your own domain and certificate, connecting the editor to your own storage, network hardening for the login-less editor, and instance sizing.
Deploy on AWS
Launch draw.io / diagrams.net Diagram Editor - Self-Hosted AMI by SecureAnyCloud with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com