GithubHelp home page GithubHelp logo

cyber-dojo / creator Goto Github PK

View Code? Open in Web Editor NEW
0.0 7.0 2.0 4.91 MB

cyberdojo/creator microservice

Home Page: https://cyber-dojo.org

License: BSD 2-Clause "Simplified" License

Dockerfile 0.85% Ruby 44.71% Shell 24.65% CSS 0.01% HTML 19.07% JavaScript 1.99% SCSS 5.75% HCL 2.97%
kata tdd individual-practice team-practice

creator's Introduction

Hi. Welcome to cyber-dojo ๐Ÿ˜„



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

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

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

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

creator's People

Contributors

arstanaly avatar botchagalupe avatar diegopego avatar fayesgw avatar jonjagger avatar sami-alajrami avatar toremerkely avatar zhelezovartem avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

creator's Issues

split the choice of language and test-framework into two lists

This will reduce scrolling when selecting.
It will also make it easier to see which languages are supported.
It will also make it simpler to add version numbers to the display_names, so we can have multiple versions of the same language.
eg Java 14 -> Approval, Java-17 -> Approval

Dashboard showing multiple katas
Simply allow multiple kata IDs to be entered when specifying the dashboard

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.