Skip to content

cyber-dojo/cyber-dojo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

458 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.462
   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

running a server on Kubernetes

Follow these instructions

listing the current version

$ cyber-dojo version
Version: 0.1.462
   Type: public

listing installed versions

$ cyber-dojo version ls
0.1.462      2026-02-15 20:27:03 +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.462
   Type: public
...
# Now make it live...
$ cyber-dojo up
Using version=0.1.462 (public)
...

setting the server to a specific version

$ cyber-dojo update 0.1.555
$ cyber-dojo version
Version: 0.1.555
   Type: public
...
# Now make it live...
$ cyber-dojo up
Using version=0.1.555 (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).
  • 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).
  • 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)
    ...

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

You can turn off the review page's [fork] button with the following web.env entry:

FORK_BUTTON=off

You can turn off the [dashboard] button from the info toolbar with the following web.env entry:

DASHBOARD_BUTTON=off

You can turn off traffic-light prediction with the following web.env entry:

PREDICT=off

Micro Services

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 Github Action
    serves the custom start-points.
  • exercises-start-points Github Action
    serves the exercises start-points.
  • languages-start-points Github Action
    serves the languages start-points.
  • differ Github Action
    diffs two sets of files.
  • nginx Github Action
    web-proxy, security, images (jpg) cache, and service routing.
  • runner Github Action
    runs the tests and returns [stdout,stderr,status,timed_out,colour].
  • saver Github Action
    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 Github Action
    UI for a group session dashboard of all traffic-lights.
  • web Github Action
    main UX for coding, testing, and reviewing.

Locally running servers also use:


Image Dependencies

Image Dependency Graph


Domain Model

Domain model


Screenshots

cyber-dojo.org home page

About

home repo for the cyber-dojo organization

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages