- a dojo is a place where martial artists meet to practice their martial art
- a cyber-dojo is where programmers meet to practice programming!
- a cyber-dojo is not an IDE, an Individual Development Environment
- a cyber-dojo is an IDE, an Interactive Dojo Environment!
- a cyber-dojo is about shared learning
- in a cyber-dojo you practice by going slower and focusing on improving rather than finishing
- cyber-dojo foundation is a registered Scottish Charitable Incorporated Organisation
- How do I practice programming in cyber-dojo?
- Try it now at http://cyber-dojo.org.
- How can I contribute to developing cyber-dojo?
Each repo in the github cyber-dojo organization builds a single docker image.
commander - receives commands from the cyber-dojo shell script
custom - serves the custom start-points
differ - diffs two sets of files
exercises - serves the exercises start-points
grafana - displays monitoring data
languages - serves the languages start-points
mapper - maps session ids ported from old architecture (storer) to new architecture (saver)
nginx - web-proxy, security, and images (png) cache
prometheus - stores monitoring data
ragger - determines the traffic-light colour of runner's [stdout,stderr,status] as red-amber-green
runner - runs the tests and returns [stdout,stderr,status,timed_out]
saver - saves groups/katas and code/test files in a host dir volume-mounted to /cyber-dojo
versioner - holds sets of image tags comprising specific cyber-dojo versions
web - rails web-server
zipper - creates tgz files for download
Ensure docker is installed. If you are on a Windows/Mac note that these instructions specify to install DockerToolbox (and not Docker for Windows/Mac).
To get all the source:
mkdir src
cd src
git clone https://github.com/cyber-dojo/cyber-dojo.git
./cyber-dojo/sh/git-clone-all.sh
cd ..
This will create the following directory structure (each directory holds a git repo):
src/commander
src/custom
src/cyber-dojo
src/differ
src/exercises
src/grafana
src/languages
src/mapper
src/nginx
src/prometheus
src/ragger
src/runner
src/saver
src/web
src/zipper
To build your server from these repos:
src/cyber-dojo/sh/build-all.sh
To bring up your server:
src/commander/cyber-dojo start-point up
To bring down your server:
src/commander/cyber-dojo down