This repo holds the apps below, each one of the services behind https://cyber-dojo.org, and each built into its own docker image. The other services (eg saver, runner, differ) live in their own repos.
| App | CI | What it serves |
|---|---|---|
| web | the core edit+review pages | |
| creator | the pages that create (or re-enter) a group or individual exercise | |
| dashboard | the group-exercise dashboard |
Each app has the same shape:
- its own directory,
app-<app>/, holding itssource/,test/,bin/anddocs/ - its own Dockerfile stage,
<app>, and its own image - its own
app-<app>/<app>.env, loaded only by its own compose service - its own make targets, all named
<app>_<verb>(egmake dashboard_test_server) - its own workflow,
.github/workflows/main-<app>.yml, run only when its files, or the files every app shares, change - its own deployment, from
deployment/terraform-<app>/
The repo root holds only what every app shares: the Dockerfile, the
Makefile, the docker-compose*.yml files, .env (the ports of every
service), bin/write_dot_env.sh (the one script that writes .env),
bin/demo.sh (the one demo), and flow-templates/.
The demo (make demo) builds every app's image from the current commit and
serves them together through nginx on port 80, with one saver holding every
app's demo data, so one change shows up in every app at once and any page can
be compared with any other. See bin/demo.sh -h.
