Public | Automated Build

Last pushed: 2 years ago
Short Description
paintchat copied image
Full Description


A chatroom with support for real-time collaborative drawing. Think MS Paint meets Google Docs!

Live demo


  • run a single server or as a cluster
  • consistent, persistant state
  • dynamically add/remove nodes at any time


PaintChat requires a Cassandra server instance to run. Launch a quick instance with Docker using the official Cassandra image:

$ docker run -d -p 9042:9042 cassandra

Export the ip of your cassandra instance to CASSANDRA_IP (PaintChat will use by default if unbound)

$ export CASSANDRA_IP=[your Docker machine's ip]

Run a local PaintChat instance

With Docker:

$ docker run -it --net=host -e CASSANDRA_IP=$CASSANDRA_IP kevinchabreck/paintchat

With SBT:

$ sbt run

Multiple instances of PaintChat can be run in parallel on the same host. They will attempt to bind to port 8080, and retry at monotonically increasing port numbers upon failure. The default number of max retry attempts is 3.

Connect to local PaintChat instance

Point your browser to http://DOCKERHOST:8080/ (replace DOCKERHOST with the ip or hostname of your Docker machine)

Docker Pull Command
Source Repository