WBO is an online collaborative whiteboard that allows many users to draw simultaneously on a large virtual board. The board is updated in real time for all connected users, and its state is always persisted. It can be used for many different purposes, including art, entertainment, design, teaching.
A demonstration server is available at wbo.ophir.dev
|The anonymous board||collaborative diagram editing|
|teaching math on WBO||drawing art|
If you have your own web server, and want to run a private instance of WBO on it, you can. It should be very easy to get it running on your own server.
You can run the following bash command to launch WBO on port 5001, while persisting the boards outside of docker:
mkdir wbo-boards # Create a directory that will contain your whiteboards chown -R 1000:1000 wbo-boards # Make this directory accessible to WBO docker run -it --publish 5001:8080 --volume "$(pwd)/wbo-boards:/opt/app/server-data" lovasoa/wbo:latest # run wbo
You can then access WBO at
Alternatively, you can run the code with node.js directly, without docker.
First, download the sources:
git clone https://github.com/lovasoa/whitebophir.git cd whitebophir
Then install node.js (v10.0 or superior) if you don't have it already, then install WBO's dependencies:
npm install --production
Finally, you can start the server:
PORT=5001 npm start
This will run WBO directly on your machine, on port 5001, without any isolation from the other services. You can also use an invokation like
PORT=5001 HOST=127.0.0.1 npm start
to make whitebophir only listen on the loopback device. This is useful if you want to put whitebophir behind a reverse proxy.
By default, WBO launches its own web server and serves all of its content at the root of the server (on
If you want to make the server accessible with a different path like
https://your.domain.com/wbo/ you have to setup a reverse proxy.
See instructions on our Wiki about how to setup a reverse proxy for WBO.
WBO is available in multiple languages. The translations are stored in
If you feel like contributing to this collaborative project, you can translate WBO into your own language.
When you start a WBO server, it loads its configuration from several environment variables.
You can see a list of these variables in
Some important environment variables are :
WBO_HISTORY_DIR: configures the directory where the boards are saved. Defaults to
WBO_MAX_EMIT_COUNT: the maximum number of messages that a client can send per unit of time. Increase this value if you want smoother drawings, at the expense of being susceptible to denial of service attacks if your server does not have enough processing power. By default, the units of this quantity are messages per 4 seconds, and the default value is
If you experience an issue or want to propose a new feature in WBO, please open a github issue.