Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
README.md
build-all.sh
domain_model.png
env-var-repos.sh
git-clone-all.sh
image_dependency_graph.pdf
image_dependency_graph.png
rm-all.sh
test-all.sh

README.md

Building your own cyber-dojo server from source

Ensure docker is installed. If you are on a Windows/Mac note that these instructions specify to install DockerToolbox.

To get all the source:

mkdir src
cd src
git clone https://github.com/cyber-dojo/cyber-dojo.git
./cyber-dojo/dev/git-clone-all.sh
cd ..

This will create the following directory structure (each directory holds a git repo):

src/cyber-dojo
src/commander
src/differ
src/grafana
src/mapper
src/nginx
src/prometheus
src/runner-stateless
src/starter
src/saver
src/web
src/zipper

To build your server from these repos:

src/cyber-dojo/dev/build-all.sh

To bring up your server:

URL=https://raw.githubusercontent.com/cyber-dojo/start-points-languages/master/languages_list_common
src/commander/cyber-dojo start-point create common --list=${URL}
src/commander/cyber-dojo up --languages=common

To bring down your server:

src/commander/cyber-dojo down

Each repo in the github cyber-dojo organization builds a single docker image.

These are the main service images:

  • Build Status commander - receives commands from the cyber-dojo shell script
  • Build Status nginx - internet-facing web-server
  • Build Status web - simple rails web-server
  • Build Status runner-stateless - runs an avatar's code/tests
  • Build Status starter - serves the language+testFramework/exercise start-points
  • Build Status saver - saves groups/katas and code/test files in a host dir volume-mounted to /cyber-dojo
  • Build Status mapper - maps session ids ported from old architecture (storer) to new architecture (saver) by porter service.
  • Build Status differ - diffs two sets of files
  • Build Status zipper - creates tgz files for download

The main service repos each contain a pipe_build_up_test.sh script which:

  • rebuilds the service's docker image
  • starts a container from this server image
  • shells into the server container
  • runs the server tests (with coverage)
  • rebuilds a service client's docker image
  • starts a client container
  • shells into the client container
  • runs the client tests (with coverage)

Image dependencies

Image Dependency Graph


Domain model

Domain model