Open menu

Nextcloud whiteboard


Are you looking for a self hosted whiteboard? Want it to be collaborative?

Then your in the right pleace!

Nextcloud now has a collaborative whiteboard based on excalidraw, all the bits of excalidraw can now be self hosted. Nextcloud as the file store and a docker icontainer for the collaborative bit, over kill if you just what the whiteboard. But nextcloud does so much that you may just find it more use then you thought.

Setup

Docker websocket server

The below docker compose config will start the whiteboard websocket server, this is needed as part of excalidraw.

services:
  whiteboard:
    image: ghcr.io/nextcloud-releases/whiteboard:v1.0.4
    networks:
      - proxy_nextcloud
    environment:
      - NEXTCLOUD_URL=https://nextcloud.url
      - JWT_SECRET_KEY=somelongstringhereasatoken
    deploy:
      update_config:
        order: start-first
      mode: replicated
      labels:
        - "dashboard.name=NC Whiteboard"
        - "dashboard.icon=si:excalidraw"
        - "traefik.http.routers.whiteboard.rule=Host(`whiteboard.horwood.cloud`)"
        - "traefik.http.routers.whiteboard.service=whiteboard"
        - "traefik.http.services.whiteboard.loadbalancer.server.port=3002"
        - "traefik.http.middlewares.whiteboard.headers.SSLProxyHeaders.proto=X-Forwarded-Proto:https"
        - "traefik.http.middlewares.whiteboard.headers.customrequestheaders.x-forwarded-proto=https"
        - "traefik.http.middlewares.whiteboard.headers.customrequestheaders.x-forwarded-port=443"
        - "traefik.http.middlewares.whiteboard.headers.customrequestheaders.http-x-secure-request=true"
        - "traefik.http.routers.whiteboard.middlewares=whiteboard"
        - "traefik.http.middlewares.whiteboard.headers.customresponseheaders.X-Horwood-App=docker01.ovh.rbx7.fra.horwood.biz"

Nextcloud

Once you have the websocket server running, you need to install the Nextcloud Whiteboard app. This can be found in the apps list.

Now you need to head over to the admin settings and find the whiteboard page to add the websocket server URL and the JWT from the compose.

Testing it worked

Now you have every thing setup, how do you know it works?

Head to Files from the top bar menu, click the + New button and you should see New Whiteboard in the list. Click it and give it a name, then wait while its tranfered to the websocket server and excalidraw is started.

You now have your own self hosted whiteboard!

Published: 5 Jan 2025 by Matt Horwood