feat: add draw.io Cloudron package (Documentation-Tools)
draw.io (diagrams.net) is a client-side diagramming app. It has no user
model and no server-side state (diagrams live in the browser or cloud
storage), so this is the first package to use the Cloudron
authentication-proxy pattern: httpAuth.type=proxy gates access at the
platform edge — the admin restricts who can reach it and the browser
challenges for Cloudron credentials.
- Wraps the official jgraph/drawio:24.7.17 Tomcat image (pinned, verified)
- No database / no persistent storage; installs curl for the health check
- HTTP port 8080, health check on /
- Validated: docker build + run return HTTP 200, container healthy
Gardening: STATUS/README/JOURNAL updated (8/~57 packaged); new
"official-image wrapper + auth proxy" pattern documented in JOURNAL.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
# draw.io optional environment variables.
|
||||
# The app runs with none of these set; they are tuning knobs only.
|
||||
|
||||
# Base URL of the deployment (leave unset to auto-detect).
|
||||
# DRAWIO_BASE_URL=
|
||||
|
||||
# Run fully self-contained without loading assets from external CDNs.
|
||||
# DRAWIO_SELF_CONTAINED=1
|
||||
|
||||
# PlantUML server URL for inline UML diagram rendering.
|
||||
# PLANTUML_URL=https://www.plantuml.com/plantuml
|
||||
|
||||
# draw.io export server URL for server-side PDF/PNG/PDF export.
|
||||
# EXPORT_URL=
|
||||
@@ -0,0 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 24.7.17 — Initial Cloudron package
|
||||
|
||||
- First Cloudron package for draw.io (diagrams.net)
|
||||
- Wraps the official `jgraph/drawio:24.7.17` Tomcat image
|
||||
- Fronted by the Cloudron authentication proxy (no app-level users; stateless
|
||||
client-side diagramming tool)
|
||||
- No database / no persistent storage required
|
||||
- HTTP port 8080, health check on `/`
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"version": 1,
|
||||
"manifestVersion": 2,
|
||||
"type": "app",
|
||||
"id": "io.cloudron.drawio",
|
||||
"title": "draw.io",
|
||||
"description": "draw.io (diagrams.net) is a client-side diagramming application for making flowcharts, process diagrams, org charts, UML, ER diagrams, network diagrams and more. Diagrams are stored in the browser or synced to cloud storage. No server-side database.",
|
||||
"author": "JGraph",
|
||||
"website": "https://www.drawio.com",
|
||||
"contactEmail": "cloudron@tsys.dev",
|
||||
"tagline": "Free online diagram drawing tool",
|
||||
"version": "24.7.17",
|
||||
"healthCheckPath": "/",
|
||||
"httpPort": 8080,
|
||||
"httpAuth": {
|
||||
"type": "proxy"
|
||||
},
|
||||
"memoryLimit": 512,
|
||||
"addons": {},
|
||||
"mediaLinks": [],
|
||||
"changelog": "Initial Cloudron package for draw.io. Stateless diagramming app fronted by the Cloudron authentication proxy (no app-level users).",
|
||||
"icon": "file://logo.png"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
# draw.io Cloudron Package
|
||||
#
|
||||
# draw.io (diagrams.net) is a client-side JavaScript diagramming application
|
||||
# served by Tomcat. It is stateless: diagrams are stored in the browser
|
||||
# (localStorage) or exported / synced to cloud storage (Google Drive, OneDrive,
|
||||
# GitHub, etc.). There is no database and no server-side persistence.
|
||||
#
|
||||
# Authentication: draw.io has no user model, so this package uses Cloudron's
|
||||
# authentication proxy (httpAuth.type=proxy in CloudronManifest.json). The
|
||||
# Cloudron admin restricts which platform users may reach the app; the browser
|
||||
# then challenges for Cloudron credentials before access is granted.
|
||||
FROM jgraph/drawio:24.7.17
|
||||
|
||||
# The upstream Tomcat image may not ship curl; install it for the health check.
|
||||
USER root
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
|
||||
CMD curl -f http://localhost:8080/ || exit 1
|
||||
|
||||
# Upstream CMD (ENTRYPOINT /docker-entrypoint.sh + "catalina.sh run") is
|
||||
# inherited unchanged; Tomcat serves draw.war as the root webapp on 8080.
|
||||
@@ -0,0 +1,68 @@
|
||||
# draw.io Cloudron Package
|
||||
|
||||
## Description
|
||||
|
||||
draw.io (diagrams.net) is a free, open-source, client-side diagramming
|
||||
application for creating flowcharts, process diagrams, organizational charts,
|
||||
UML, entity-relationship, network diagrams, and more. It runs entirely in the
|
||||
browser; diagrams are stored in browser `localStorage` or exported / synced to
|
||||
cloud storage providers (Google Drive, OneDrive, GitHub, GitLab, Dropbox).
|
||||
|
||||
This package wraps the official `jgraph/drawio` Docker image (Tomcat serving
|
||||
`draw.war`).
|
||||
|
||||
## Authentication
|
||||
|
||||
draw.io has **no built-in user model** — it is a stateless client-side tool.
|
||||
This package therefore uses **Cloudron's authentication proxy**
|
||||
(`httpAuth.type = proxy` in `CloudronManifest.json`). The Cloudron admin
|
||||
restricts which platform users/groups may reach the app; authorized users are
|
||||
challenged for their Cloudron credentials before the diagram editor loads.
|
||||
|
||||
This is the recommended pattern for utility apps without their own user
|
||||
directory.
|
||||
|
||||
## Features
|
||||
|
||||
- **Diagram Types**: Flowcharts, BPMN, UML, ERD, network, AWS/Azure/GCP
|
||||
architecture, mind maps, org charts, floor plans, Venn, and more
|
||||
- **Shape Libraries**: Hundreds of built-in stencils + custom shape import
|
||||
- **Export**: PNG, JPEG, SVG, PDF, HTML, VSDX
|
||||
- **Cloud Sync**: Google Drive, OneDrive, GitHub, GitLab, Dropbox, Trello
|
||||
- **Offline**: Works fully offline; diagrams persist in the browser
|
||||
- **Collaboration**: Real-time co-editing via Google Drive / Microsoft Teams
|
||||
- **Embed**: Embed diagrams in Confluence, Jira, Notion, web pages
|
||||
|
||||
## Configuration
|
||||
|
||||
### Ports
|
||||
- **8080**: Tomcat HTTP (the only exposed port)
|
||||
|
||||
### Environment Variables (optional)
|
||||
draw.io runs out-of-the-box with no configuration. These are optional knobs:
|
||||
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| `DRAWIO_BASE_URL` | Base URL for the deployment |
|
||||
| `DRAWIO_SELF_CONTAINED` | `1` to run fully self-contained (no external CDNs) |
|
||||
| `PLANTUML_URL` | URL of a PlantUML server for UML rendering |
|
||||
| `EXPORT_URL` | URL of a draw.io export server (for server-side PDF/PNG) |
|
||||
| `DRAWIO_CSP_URL` | Content Security Policy allowlist |
|
||||
|
||||
### Storage
|
||||
- **None required.** draw.io is stateless. Diagrams live in the browser or in
|
||||
cloud storage. No Cloudron addons are used.
|
||||
|
||||
## Usage
|
||||
|
||||
1. Install the package on Cloudron.
|
||||
2. In the Cloudron access control, grant the desired users/groups access.
|
||||
3. Open the app location — you'll be prompted for Cloudron credentials.
|
||||
4. Start drawing. Save diagrams to browser, export to file, or connect a cloud
|
||||
storage provider for persistence.
|
||||
|
||||
## Upstream
|
||||
|
||||
- **Repository**: https://github.com/jgraph/docker-drawio
|
||||
- **Image**: `jgraph/drawio:24.7.17`
|
||||
- **Website**: https://www.drawio.com
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 939 B |
Reference in New Issue
Block a user