Skip to content

Self-hosting

Both the LetDraw app and this documentation site build to static files, so they can be published with any static server (or a tiny nginx container).

The docs project (docs/) ships with a Dockerfile; it is built with Node and served via nginx:alpine:

Terminal window
cd docs
docker build -t letdraw-docs .
docker run -p 8080:80 letdraw-docs
# http://localhost:8080

docker-compose.yml includes Traefik labels and a TLS example for docs.letdraw.com. For development:

Terminal window
npm install
npm run dev # http://localhost:4321
npm run build # → dist/ (offline arama için Pagefind indeksi dahil)

LetDraw is a Vite + React app; npm run build produces dist/, which is served statically (again, nginx:alpine is enough). Optional configuration is done with environment variables (at build time):

  • VITE_AI_PROXY_URL: the server-side proxy address for the “Default” AI provider. If empty, users enter their own keys (BYOK).
  • VITE_HIDE_AI_BYOK=true: disable end users entering their own provider and force only the proxy path.

Live collaboration needs a relay (signaling) server; you can run the sample relay in the server/ directory or use your own WebSocket relay.

We recommend publishing www.letdraw.com and docs.letdraw.com behind a single reverse proxy (Traefik, Caddy, or nginx) with TLS terminated via Let’s Encrypt. If you use Traefik, the compose labels are ready.