No description
Find a file
Ilya Shabalin edf31cd6c2
Auto white-out with a finger when using apple stylus (#167)
When using an iPad with an apple stylus, finger touches now trigger the whiteout tool.
This behavior can be disabled by setting the environment variable AUTO_FINGER_WHITEOUT=disabled

* Auto white-out with a finger when using stylus

* Add AUTO_FINGER_WHITEOUT config variable

* Use local variable to remember if stylus was used and make behavior configurable

* Delete "stylus" property

* Make AUTO_FINGER_WHITEOUT on by default

Co-authored-by: Ophir LOJKINE <pere.jobs@gmail.com>

* Delete parseBool, add note about iPad/Pencil

Co-authored-by: ishabalin <ishabalin@apple.com>
Co-authored-by: Ophir LOJKINE <pere.jobs@gmail.com>
2021-02-08 11:28:24 +01:00
.github disable StrictHostKeyChecking in CD 2021-01-10 17:35:43 +01:00
.vscode Updated dependencies 2020-11-17 11:20:14 +01:00
client-data Auto white-out with a finger when using apple stylus (#167) 2021-02-08 11:28:24 +01:00
server Auto white-out with a finger when using apple stylus (#167) 2021-02-08 11:28:24 +01:00
server-data Ignore server-data files on git 2020-04-03 14:16:39 +02:00
tests Add a svg export with proper rounding (#58) 2020-05-08 21:15:39 +02:00
.dockerignore Reduce the size of docker's build context 2021-01-10 17:02:26 +01:00
.gitignore move pattern definition back into (#65) 2020-05-04 09:54:31 +02:00
AUTHORS Initial commit 2013-08-27 19:43:49 +02:00
docker-compose.yml Fix docker compose 2019-04-12 20:50:39 +02:00
Dockerfile Set default port to 8080 2021-01-10 19:15:06 +01:00
LICENSE Switch the project's license from GPLv3 to AGPLv3 2018-12-02 13:49:29 +01:00
nightwatch.conf.js Fix CI 2020-04-28 00:56:13 +02:00
package-lock.json Prevent multiple board save operation to happen simultaneously 2021-02-07 19:54:14 +01:00
package.json Prevent multiple board save operation to happen simultaneously 2021-02-07 19:54:14 +01:00
README.md Update README.md 2021-01-27 18:15:04 +01:00

WBO

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

Screenshots

The anonymous board collaborative diagram editing Screenshot of WBO's user interface: architecture
teaching math on WBO wbo teaching drawing art angel drawn on WBO

Running your own instance of WBO

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.

Running the code in a container (safer)

If you use the docker containerization service, you can easily run WBO as a container. An official docker image for WBO is hosted on dockerhub as lovasoa/wbo.

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 http://localhost:5001.

Running the code without a container

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.

Running WBO on a subfolder

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.

Translations

WBO is available in multiple languages. The translations are stored in server/translations.json. If you feel like contributing to this collaborative project, you can translate WBO into your own language.

Configuration

When you start a WBO server, it loads its configuration from several environment variables. You can see a list of these variables in configuration.js. Some important environment variables are :

  • WBO_HISTORY_DIR : configures the directory where the boards are saved. Defaults to ./server-data/.
  • 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 192.

Troubleshooting

If you experience an issue or want to propose a new feature in WBO, please open a github issue.