cyber-dojo / Cyber Dojo
Programming Languages
Labels
Projects that are alternatives of or similar to Cyber Dojo
Hi. Welcome to cyber-dojo :-)
- 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...
- Misc
running a server on Kubernetes
Follow these instructions
running a server on docker
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
...
running a server on docker swarm
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
listing the current version
$ cyber-dojo version
Version: 0.1.23
Type: public
listing installed versions
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
...
updating the server to the latest version
$ 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)
...
setting the server to a specific version
$ 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)
...
overriding the default port
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 ...
overriding the default start-point images
- 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:
overriding the default nginx image
- 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 ...
overriding the default rails web image
- 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 ...
overriding the default dot env files
- 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
Micro 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.
- creator - creates exercises (group and individual) with unique ids.
- dashboard - a group session dashboard.
- differ - diffs two sets of files.
- model - API to persist group/individual katas.
- nginx - web-proxy, security, images (jpg) cache, and service routing.
-
runner - runs the tests and returns a
[stdout,stderr,status,timed_out,colour]
tuple. - saver - a simple file-system API for volume-mounted host dir.
- web - rails web-server serving the core test and review pages.
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