Runnable code snippets
- Get a server with Docker installed
- Install golang v1.1 (note: this is not the default Ubuntu version)
- Copy this project to the server
- Install nginx and install the config file in conf/nginx.conf (it may need some minor changes)
- Go in the server/ directory, and run
docker build -t runner .
to create a tagged docker image that's ready for running code - Set up quotas (instructions here), and
apt-get install quota
- Build a pool of uids with quotas attached (
./set-quotas.sh
) - Install redis (
apt-get install redis-server
) - Compile the go app with
go build .
- Run the go app with a process manager (look at conf/upstart.conf for inspiration)
- Collaborative editing using share.js or ot.js
- Improvements to the go server to allow sending output and config changes (e.g. switching language) to multiple clients, probably using SSE
Licensed under the MIT license.