- cyber-dojo is where programmers meet to practice programming!
- cyber-dojo is not an IDE, an Individual Development Environment
- cyber-dojo is an IDE, an Interactive Dojo Environment!
- 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 can I contribute to developing cyber-dojo?
- Running a server
- Versioning
- Overriding the default...
Follow these instructions
to install the cyber-dojo bash script and to prepare your server.
$ cyber-dojo up
...
$ cyber-dojo version
Version: 0.1.19
Type: public
...This is currently in beta!
Follow these instructions
to install the cyber-dojo bash script and to prepare your server.
$ export CYBER_DOJO_SWARM=true
$ cyber-dojo up$ cyber-dojo version
Version: 0.1.23
Type: publicFrom 0.1.50 onwards:
$ cyber-dojo version ls
0.1.49 2019-11-21 21:31:09 +0000 UTC
0.1.48 2019-11-20 12:52:04 +0000 UTC
...
0.1.21 2019-08-07 11:51:48 +0000 UTC
...$ cyber-dojo update latest
$ cyber-dojo version
Version: 0.1.49
Type: public
...
# Now make it live...
$ cyber-dojo up
Using version=0.1.49 (public)
...$ cyber-dojo update 0.1.21
$ cyber-dojo version
Version: 0.1.21
Type: public
...
# Now make it live...
$ cyber-dojo up
Using version=0.1.21 (public)
...By default your cyber-dojo server will be on port 80.
- Override this port using the command-line argument
--port. Eg$ cyber-dojo up --port=8000 ... Using port=8000 ...
- The
cyber-dojo upcommand uses three default start-point images (tagged appropriately)- --custom=cyberdojo/custom-start-points
- --exercises=cyberdojo/exercises-start-points
- --languages=cyberdojo/languages-start-points-common
- You can create and use your own alternative start-point images in place of these defaults if you wish.
- Read how to create them by running:
cyber-dojo start-point create --help - Read how to use them by running:
cyber-dojo up --help
- Read how to create them by running:
- By default your cyber-dojo server will use cyberdojo/nginx as its nginx service image (tagged appropriately).
- From 0.1.47 onwards you can override this by exporting two
environment variables. Eg
$ export CYBER_DOJO_NGINX_IMAGE=cucumber/nginx $ export CYBER_DOJO_NGINX_TAG=efd7e37 $ cyber-dojo up ... ... Using nginx=cucumber/nginx:efd7e37 ...
- By default your cyber-dojo server will use cyberdojo/web as its web service image (tagged appropriately).
- From 0.1.28 onwards you can override this by exporting two
environment variables. Eg
$ export CYBER_DOJO_WEB_IMAGE=turtlesec/web $ export CYBER_DOJO_WEB_TAG=84d6d0e $ cyber-dojo up ... ... Using web=turtlesec/web:84d6d0e ...
- There are default .env files for the
webandnginxservices. - You can override these by exporting two environment variables
set to the absolute path of your own .env file. Eg
$ export CYBER_DOJO_NGINX_ENV=/home/fred/my_nginx.env $ export CYBER_DOJO_WEB_ENV=/home/fred/my_web.env $ cyber-dojo up ... Using nginx.env=/home/fred/my_nginx.env (custom) Using web.env=/home/fred/my_web.env (custom) ...
From 0.1.131 onwards, when an exercise starts a welcome dialog displays
traffic-light information. You can turn off this dialog with
the following web.env entry:
STARTING_INFO_DIALOG=off
From 0.1.137 onwards, there is an experimental REPL service for Python.
You can turn this on with the following web.env entry:
REPL=on
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.
creator - creates exercises (group and individual) with unique ids.
differ - diffs two sets of files.
nginx - web-proxy, security, images (jpg) cache, and service routing.
runner - runs the tests and returns a
[stdout,stderr,status,timed_out,colour]tuple.puller - pulls start-point images onto nodes..
saver - persists group/individual exercises + code/test files (in a host dir volume-mounted to
/cyber-dojo).web - rails web-server (a monolith slowly being Strangler Figged).
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