Skip to content

DominikDary/cyber-dojo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

336 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hi. Welcome to cyber-dojo :-)



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 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

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

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 and nginx 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

Services

Each repo in the github cyber-dojo organization builds a single docker image. The main kubernetes backed https://cyber-dojo.org uses:

  • CircleCI custom-start-points - serves the custom start-points.
  • CircleCI exercises-start-points - serves the exercises start-points.
  • CircleCI languages-start-points - serves the languages start-points.
  • CircleCI avatars - serves the avatar names and images.
  • CircleCI creator - creates exercises (group and individual) with unique ids.
  • CircleCI differ - diffs two sets of files.
  • CircleCI nginx - web-proxy, security, images (jpg) cache, and service routing.
  • CircleCI runner - runs the tests and returns a [stdout,stderr,status,timed_out,colour] tuple.
  • CircleCI puller - pulls start-point images onto nodes..
  • CircleCI saver - persists group/individual exercises + code/test files (in a host dir volume-mounted to /cyber-dojo).
  • CircleCI web - rails web-server (a monolith slowly being Strangler Figged).

Locally running servers also use:

  • CircleCI commander - receives commands from the cyber-dojo shell script
  • CircleCI versioner - holds consistent sets of image tags for all cyber-dojo services

Image dependencies

Image Dependency Graph


Domain model

Domain model

cyber-dojo.org home page

About

home repo for the cyber-dojo organization

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 100.0%