- cyber-dojo is where programmers meet to practice programming, either individually, or in a group.
- 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
- this video explains how to use it for individual TDD practice: https://youtu.be/lIRF8MgyXho
- this video explains how to use it for group TDD practice: https://youtu.be/OGGk-iFVOPQ
- 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...
- Misc
Follow these instructions
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 exploratory only and may be dropped without notice.
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: public
From 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 up
command 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
web
andnginx
services. - 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
From 0.1.291 onwards, you can turn off the review page's [fork] button
with the following web.env
entry:
FORK_BUTTON=off
From 0.1.319 onwards, you can turn off the [dashboard] button from the
info toolbar with the following web.env
entry:
DASHBOARD_BUTTON=off
From 0.1.320 onwards, you can turn off traffic-light prediction with the
following web.env
entry:
PREDICT=off
Each repo in the github cyber-dojo organization builds a single docker image.
The main Amazon ECS 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. - differ
diffs two sets of files. - nginx
web-proxy, security, images (jpg) cache, and service routing. - runner
runs the tests and returns[stdout,stderr,status,timed_out,colour]
. - saver
API to GET/POST group/kata data, e.g., for individual traffic-lights. - creator Gitlab
UI to configure and create (or re-enter) a group-exercise or an individual-exercise. - dashboard
UX for a group session dashboard of all traffic-lights. - web
main UX for coding, testing, and reviewing.
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