Skip to content

Commit

Permalink
Pull out Multi Juicer chapter
Browse files Browse the repository at this point in the history
  • Loading branch information
bkimminich committed Sep 13, 2023
1 parent efee1a8 commit 997af76
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 38 deletions.
2 changes: 2 additions & 0 deletions docs/modules/ROOT/book.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@ include::pages/part4/customization.adoc[Customization]

include::pages/part4/ctf.adoc[Hosting a CTF event]

include::pages/part4/multi-juicer.adoc[Hosting platform for multiple users]

include::pages/part4/trainers.adoc[Trainer's guide]

include::pages/part4/integration.adoc[Integration]
Expand Down
1 change: 1 addition & 0 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
** xref:part4/troubleshooting.adoc[Troubleshooting]
** xref:part4/customization.adoc[Customization]
** xref:part4/ctf.adoc[Hosting a CTF event]
** xref:part4/multi-juicer.adoc[Hosting platform for multiple users]
** xref:part4/trainers.adoc[Trainer's guide]
** xref:part4/integration.adoc[Integration]
** xref:part4/monitoring.adoc[Monitoring]
Expand Down
1 change: 1 addition & 0 deletions docs/modules/ROOT/pages/attributes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
:rtbVersion: 3.3 or higher
:juiceShopVersion: v15.1.1-SNAPSHOT
:juiceShopCtfVersion: v10.0.0
:multiJuicerVersion: v6.1.0
:juiceShopNumberOfChallenges: 106
:nodeVersions: 16.x, 18.x and 20.x (but smaller 20.6.0)
:recommendedNodeVersion: 18.x
Expand Down
42 changes: 42 additions & 0 deletions docs/modules/ROOT/pages/part4/multi-juicer.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
= Hosting platform for multiple users[[_multi_juicer]]
include::../attributes.adoc[]

image::appendix/multi-juicer_cover.svg[MultiJuicer cover]

A solution to host and manage individual Juice Shop instances for
multiple users is
https://github.com/iteratec/multi-juicer/[MultiJuicer]. MultiJuicer is
a Kubernetes based system to start up the required Juice Shop instances
on demand. It will also clean up unused instances after a configured
period of inactivity.

MultiJuicer {multiJuicerVersion} comes with a custom-built load balancer. It allows every
participant (or a CTF team) to use the same URL, but their traffic will
always be sent to their own personal instance.

image::appendix/multi-juicer_high-level-architecture.png[MultiJuicer high level architecture]

Registration at MultiJuicer is very straightforward for the users/teams.
Messing with other instances is prevented by assigning a passcode to
each of them which should only be shared among team members - or not at
all for individuals.

image::appendix/multi-juicer_register.png[MultiJuicer registration]

MultiJuicer comes with a rudimentary Score Board of its own, which allows teams to compare their progress through
the Juice Shop challenges.

image::appendix/multi-juicer_scoreboard.png[MultiJuicer score board]

Another helpful feature for the trainer MultiJuicer is the https://github.com/iteratec/multi-juicer/blob/master/guides/monitoring-setup/monitoring.adoc[optional
dashboard which automatically consumes and displays metrics] from each of
its Juice Shop instances. It shows individual challenge progress along with other
functional and technical stats and can be very helpful in
troubleshooting as well.

image:appendix/multi-juicer_dashboard.png[MultiJuicer dashboard with technical metrics]
image:appendix/multi-juicer_dashboard1.png[MultiJuicer dashboard with business metrics]

The MultiJuicer repository offers guidance on https://github.com/iteratec/multi-juicer#installation-guides-for-specific-cloud-providers[how to set up the
system on different cloud provider platforms],
such as Digital Ocean, OpenShift, AWS or Azure.
40 changes: 2 additions & 38 deletions docs/modules/ROOT/pages/part4/trainers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ that coupon codes were actually tweeted by your customer's company.

== Classroom hints

In a class room setup you have to find a way to distribute the URL of
In a classroom setup you have to find a way to distribute the URL of
each instance to the participants. For small groups, it is probably fine
to just spin up a number of containers and tell all participants which
URL they have to use. An example to spin up 10 Docker containers on a
Expand All @@ -64,43 +64,7 @@ want to encourage the students to hack very competitively.

image::appendix/multi-juicer_cover.svg[MultiJuicer cover]

A solution to host and manage individual Juice Shop instances for
multiple users is
https://github.com/iteratec/multi-juicer/[MultiJuicer]. MultiJuicer is
a Kubernetes based system to start up the required Juice Shop instances
on demand. It will also clean up unused instances after a configured
period of inactivity.

MultiJuicer comes with a custom-built load balancer. It allows every
participant (or a CTF team) to use the same URL, but their traffic will
always be sent to their own personal instance.

image::appendix/multi-juicer_high-level-architecture.png[MultiJuicer high level architecture]

Registration at MultiJuicer is very straightforward for the users/teams.
Messing with other instances is prevented by assigning a passcode to
each of them which should only be shared among team members - or not at
all for individuals.

image::appendix/multi-juicer_register.png[MultiJuicer registration]

MultiJuicer comes with a rudimentary Score Board of its own, which allows teams to compare their progress through
the Juice Shop challenges.

image::appendix/multi-juicer_scoreboard.png[MultiJuicer score board]

Another helpful feature for the trainer MultiJuicer is the https://github.com/iteratec/multi-juicer/blob/master/guides/monitoring-setup/monitoring.adoc[optional
dashboard which automatically consumes and displays metrics] from each of
its Juice Shop instances. It shows individual challenge progress along with other
functional and technical stats and can be very helpful in
troubleshooting as well.

image:appendix/multi-juicer_dashboard.png[MultiJuicer dashboard with technical metrics]
image:appendix/multi-juicer_dashboard1.png[MultiJuicer dashboard with business metrics]

The MultiJuicer repository offers guidance on https://github.com/iteratec/multi-juicer#installation-guides-for-specific-cloud-providers[how to set up the
system on different cloud provider platforms],
such as Digital Ocean, OpenShift, AWS or Azure.
For a more sophisticated way to host and manage multiple Juice Shop instances we recommend https://github.com/iteratec/multi-juicer/[MultiJuicer]. Learn all about this official platform of Juice Shop xref:part4/multi-juicer.adoc[in this dedicated chapter].

== Existing trainings

Expand Down

0 comments on commit 997af76

Please sign in to comment.