Skip to content
SYS.DOCS // DOCS

Deploy and Operate Excalidraw

Excalidraw is a whiteboard tool with a hand-drawn look, used for diagrams and quick sketches. Edka deploys the official container as a stateless web client in your Kubernetes cluster. There is no database or persistent volume to configure.

ComponentPurposeHow Edka connects it
Excalidraw web clientServes the whiteboard UI as a static web clientInstalled from the Edka Excalidraw chart
ClusterIP ServiceInternal access on port 80Created automatically at http://<release>.<namespace>.svc.cluster.local
Envoy GatewayOptional public HTTPS accessSelect a traffic class and hostname when Expose Excalidraw via Gateway is enabled

Before installing Excalidraw, prepare:

  • an Edka cluster; Excalidraw needs no database, object storage, or persistent volume
  • if you want to publish the whiteboard outside the cluster, an Envoy Gateway traffic class with managed TLS and a DNS hostname

See Gateway API and Domains and TLS if Gateway access is not ready yet.

  1. Open your cluster and select Apps.
  2. Find Excalidraw and select Install.
  3. In General, choose the Namespace (defaults to excalidraw), set the Excalidraw Chart Version and Excalidraw Image Tag, and decide whether to enable Auto-update App.
  4. In Resources, review the CPU and memory requests and limits.
  5. In Placement, optionally select a Node Pool and whether to Tolerate Node Pool Taints.
  6. In Access, optionally enable Expose Excalidraw via Gateway, then select a Traffic Class and enter a Hostname.
  7. Select Install App and follow the operation progress until Excalidraw is ready.

Excalidraw’s container serves a static web client with no backing database and no persistent volume. Drawings are stored in the browser of whoever created them, not on the cluster, so restarting or redeploying the pod does not affect any saved scene. Sharing a drawing requires exporting a file or a link from within Excalidraw; this deployment does not include a real-time collaboration server.

Excalidraw is reachable inside the cluster by default, at the Excalidraw UI internal service endpoint. Enable Expose Excalidraw via Gateway in the Access tab to publish it externally:

  1. Select the Traffic Class available in the cluster.
  2. Enter a Hostname for the web client, for example excalidraw.example.com.

Edka creates the HTTPRoute only when the selected traffic class is an Envoy Gateway class. After installation, the app endpoints show the internal Excalidraw UI URL and, when access is enabled, the External URL over HTTPS.

SettingCPUMemory
Request50m64Mi
Limit250m256Mi

CPU and memory requests and limits are all set by default. You can also place Excalidraw on a selected node pool and have Edka automatically add tolerations for that pool’s taints.

Auto-updates are opt-in through Auto-update App. When enabled, choose an Auto-update Policy of patch, minor, major, all, or a custom tag pattern, and an Auto-update Check interval of every 5 minutes, 30 minutes, 1 hour, 6 hours, or daily. The custom pattern accepts a glob: or regexp: prefix to filter allowed tags.

Auto-updates apply to two independent targets: the Excalidraw Chart Version from the https://charts.edka.io repository, and the Excalidraw Image Tag from the excalidraw/excalidraw image repository. The image tag defaults to latest and is editable, so pin it to a specific tag if you want predictable upgrades instead of tracking latest.

SymptomCheck
External URL is missing after enabling accessConfirm the selected Traffic Class is an Envoy Gateway class; Edka only creates the HTTPRoute for Gateway-type traffic classes
Hostname is rejectedEnter a valid domain in Hostname, for example excalidraw.example.com
Pod stays unreadyCheck Logs for image pull errors and confirm the Excalidraw Image Tag exists in the excalidraw/excalidraw repository
Drawings disappear after a pod restartExpected: Excalidraw stores scenes in the browser, not on the cluster; export or share drawings before restarting