Files
Compose-Examples/examples/excalidraw/docker-compose.yml
LRVT 1988a6a1b6
All checks were successful
CI / validateComposeSyntax (push) Successful in 20s
Update docker-compose.yml
2026-02-05 00:05:04 +01:00

75 lines
2.1 KiB
YAML

services:
excalidraw:
image: excalidraw/excalidraw:latest
container_name: excalidraw
ports:
- 8888:80 # web-ui for drawing
expose:
- 80
restart: unless-stopped
entrypoint: /bin/sh
command:
- -c
- |
echo "Replacing WebSocket URL with: $$VITE_APP_WS_SERVER_URL"
find /usr/share/nginx/html/assets -type f -name "*.js" -exec sed -i 's|https://oss-collab\.excalidraw\.com|'$$VITE_APP_WS_SERVER_URL'|g' {} +
echo "Starting nginx..."
nginx -g 'daemon off;'
stdin_open: true
environment:
- NODE_ENV=production
- VITE_APP_WS_SERVER_URL=https://draw2gether.example.com
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/ >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
- /var/cache/nginx/client_temp:rw,noexec,nosuid,size=64m
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.http.routers.excalidraw.rule=Host(`draw.example.com`)
# - traefik.http.services.excalidraw.loadbalancer.server.port=80
# - traefik.docker.network=proxy
excalidraw-room:
image: excalidraw/excalidraw-room:latest
container_name: excalidraw-room
ports:
- 8889:80 # web-socket for collaboration
expose:
- 80
restart: unless-stopped
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/ >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.http.routers.excalidraw-collab.rule=Host(`draw2gether.example.com`)
# - traefik.http.services.excalidraw-collab.loadbalancer.server.port=80
# - traefik.docker.network=proxy