ScaliDraw.io en Docker

Diagram Docker HomeLab

Excalidraw es una pizarra virtual de opensource diseñada para crear diagramas y bocetos con una estética de dibujo a mano alzada, y que por supuesto, podemos ejecutar desde una contenedor Docker.

José R Sosa https://josersosa.github.io/personalweb/
03-26-2025

Es ampliamente utilizada por desarrolladores, educadores y equipos remotos para visualizar ideas de forma rápida y sencilla directamente desde el navegador. Corre completamente en el browser y no requiere de un servicio externo para funcionar, lo que la hace muy segura

Fuentes: - Video - Repo

Para ejecutar Scalidraw en docker usa el siguiente comando:

docker run -d --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest

para subir este servicio con certificado SSL via proxi NGNX para compartirlo por intenet, segun la siguiente arquitectura:

Para esto podemos usar este dosker-compose: yaml para excalidraw

services:

  nginx-proxy:
    image: nginx:alpine
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - certs:/etc/nginx/certs:ro

  docker-gen:
    image: nginxproxy/docker-gen
    container_name: nginx-proxy-gen
    command: -notify-sighup nginx-proxy -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
    volumes_from:
      - nginx-proxy
    volumes:
      - ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    labels:
      - "com.github.nginx-proxy.docker-gen"

  acme-companion:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    environment:
      - DEFAULT_EMAIL=pelade@ejemplo.com
    volumes_from:
      - nginx-proxy
    volumes:
      - certs:/etc/nginx/certs:rw
      - acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro

  draw:
    image: excalidraw/excalidraw:latest
    restart: unless-stopped
    healthcheck:
      disable: true
    environment:
      - VIRTUAL_HOST=draw.ejemplo.com
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=draw.ejemplo.com
      - LETSENCRYPT_MAIL=pablo@ejemplo.com
      - REACT_APP_BACKEND_V1_GET_URL=https://draw.ejemplo.com/api/v1/
      - REACT_APP_BACKEND_V2_GET_URL=https://draw.ejemplo.com/api/v2/
      - REACT_APP_BACKEND_V2_POST_URL=https://draw.ejemplo.com/api/v2/post

  doom:
    image: callumhoughton22/doom-in-docker:0.1
    restart: unless-stopped
    environment:
      - VIRTUAL_HOST=doom.ejemplo.com
      - VIRTUAL_PORT=8080
      - LETSENCRYPT_HOST=doom.ejemplo.com
      - LETSENCRYPT_MAIL=pablo@ejemplo.com

volumes:
  conf:
  vhost:
  html:
  certs:
  acme:

nginx.tmpl para excalidraw

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Citation

For attribution, please cite this work as

Sosa (2025, March 26). Blog de José R Sosa: ScaliDraw.io en Docker. Retrieved from https://josersosa.github.io/personalweb/posts/2026-02-01-scalidrawio-en-docker/

BibTeX citation

@misc{sosa2025scalidraw.io,
  author = {Sosa, José R},
  title = {Blog de José R Sosa: ScaliDraw.io en Docker},
  url = {https://josersosa.github.io/personalweb/posts/2026-02-01-scalidrawio-en-docker/},
  year = {2025}
}