Hi. Welcome to cyber-dojo :-)
- 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 https://cyber-dojo.org
- How can I contribute to developing cyber-dojo?
Services
Each repo in the github cyber-dojo organization builds a single docker image.
The main kubernetes backed https://cyber-dojo.org uses:
-
custom-start-points - serves the custom start-points
-
exercises-start-points - serves the exercises start-points
-
languages-start-points - serves the languages start-points
-
avatars - serves the avatar names and images.
-
differ - diffs two sets of files
-
puller - pulls the latest docker images named in the custom-start-points and languages-start-points services.
-
nginx - web-proxy, security, and images (jpg) cache
-
runner - runs the tests and returns [stdout,stderr,status,timed_out,colour]
-
saver - saves groups/katas and code/test files in a host dir volume-mounted to /cyber-dojo
-
web - rails web-server
-
zipper - creates tgz files for download
Locally running servers also use:
commander - receives commands from the cyber-dojo shell script
versioner - holds consistent sets of image tags for all cyber-dojo services
Image dependencies
Domain model
Building your own cyber-dojo services from source
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 with a build_test_tag_publish.sh script):
src/cyber-dojo
src/ruby-base
src/rack-base
src/docker-base
src/web-base
src/start-points-base
src/custom-start-points
src/exercises-start-points
src/languages-start-points
src/avatars
src/differ
src/nginx
src/puller
src/runner
src/saver
src/web
src/commander
src/versioner
To bring up your server:
src/commander/cyber-dojo start-point up
To bring down your server:
src/commander/cyber-dojo down