Skip to content

Commit c1d4e67

Browse files
committed
Pull out Multi Juicer chapter
(as basis for juice-shop/multi-juicer#176)
1 parent 9a7dc95 commit c1d4e67

File tree

5 files changed

+48
-38
lines changed

5 files changed

+48
-38
lines changed

docs/modules/ROOT/book.adoc

+2
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ include::pages/part4/customization.adoc[Customization]
123123

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

126+
include::pages/part4/multi-juicer.adoc[Hosting platform for multiple users]
127+
126128
include::pages/part4/trainers.adoc[Trainer's guide]
127129

128130
include::pages/part4/integration.adoc[Integration]

docs/modules/ROOT/nav.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
** xref:part4/troubleshooting.adoc[Troubleshooting]
4848
** xref:part4/customization.adoc[Customization]
4949
** xref:part4/ctf.adoc[Hosting a CTF event]
50+
** xref:part4/multi-juicer.adoc[Hosting platform for multiple users]
5051
** xref:part4/trainers.adoc[Trainer's guide]
5152
** xref:part4/integration.adoc[Integration]
5253
** xref:part4/monitoring.adoc[Monitoring]

docs/modules/ROOT/pages/attributes.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
:rtbVersion: 3.3 or higher
44
:juiceShopVersion: v15.1.1-SNAPSHOT
55
:juiceShopCtfVersion: v10.0.0
6+
:multiJuicerVersion: v6.1.0
67
:juiceShopNumberOfChallenges: 106
78
:nodeVersions: 16.x, 18.x and 20.x (but smaller 20.6.0)
89
:recommendedNodeVersion: 18.x
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
= Hosting platform for multiple users[[_multi_juicer]]
2+
include::../attributes.adoc[]
3+
4+
image::appendix/multi-juicer_cover.svg[MultiJuicer cover]
5+
6+
A solution to host and manage individual Juice Shop instances for
7+
multiple users is
8+
https://github.com/iteratec/multi-juicer/[MultiJuicer]. MultiJuicer is
9+
a Kubernetes based system to start up the required Juice Shop instances
10+
on demand. It will also clean up unused instances after a configured
11+
period of inactivity.
12+
13+
MultiJuicer {multiJuicerVersion} comes with a custom-built load balancer. It allows every
14+
participant (or a CTF team) to use the same URL, but their traffic will
15+
always be sent to their own personal instance.
16+
17+
image::appendix/multi-juicer_high-level-architecture.png[MultiJuicer high level architecture]
18+
19+
Registration at MultiJuicer is very straightforward for the users/teams.
20+
Messing with other instances is prevented by assigning a passcode to
21+
each of them which should only be shared among team members - or not at
22+
all for individuals.
23+
24+
image::appendix/multi-juicer_register.png[MultiJuicer registration]
25+
26+
MultiJuicer comes with a rudimentary Score Board of its own, which allows teams to compare their progress through
27+
the Juice Shop challenges.
28+
29+
image::appendix/multi-juicer_scoreboard.png[MultiJuicer score board]
30+
31+
Another helpful feature for the trainer MultiJuicer is the https://github.com/iteratec/multi-juicer/blob/master/guides/monitoring-setup/monitoring.adoc[optional
32+
dashboard which automatically consumes and displays metrics] from each of
33+
its Juice Shop instances. It shows individual challenge progress along with other
34+
functional and technical stats and can be very helpful in
35+
troubleshooting as well.
36+
37+
image:appendix/multi-juicer_dashboard.png[MultiJuicer dashboard with technical metrics]
38+
image:appendix/multi-juicer_dashboard1.png[MultiJuicer dashboard with business metrics]
39+
40+
The MultiJuicer repository offers guidance on https://github.com/iteratec/multi-juicer#installation-guides-for-specific-cloud-providers[how to set up the
41+
system on different cloud provider platforms],
42+
such as Digital Ocean, OpenShift, AWS or Azure.

docs/modules/ROOT/pages/part4/trainers.adoc

+2-38
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ that coupon codes were actually tweeted by your customer's company.
4444

4545
== Classroom hints
4646

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

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

67-
A solution to host and manage individual Juice Shop instances for
68-
multiple users is
69-
https://github.com/iteratec/multi-juicer/[MultiJuicer]. MultiJuicer is
70-
a Kubernetes based system to start up the required Juice Shop instances
71-
on demand. It will also clean up unused instances after a configured
72-
period of inactivity.
73-
74-
MultiJuicer comes with a custom-built load balancer. It allows every
75-
participant (or a CTF team) to use the same URL, but their traffic will
76-
always be sent to their own personal instance.
77-
78-
image::appendix/multi-juicer_high-level-architecture.png[MultiJuicer high level architecture]
79-
80-
Registration at MultiJuicer is very straightforward for the users/teams.
81-
Messing with other instances is prevented by assigning a passcode to
82-
each of them which should only be shared among team members - or not at
83-
all for individuals.
84-
85-
image::appendix/multi-juicer_register.png[MultiJuicer registration]
86-
87-
MultiJuicer comes with a rudimentary Score Board of its own, which allows teams to compare their progress through
88-
the Juice Shop challenges.
89-
90-
image::appendix/multi-juicer_scoreboard.png[MultiJuicer score board]
91-
92-
Another helpful feature for the trainer MultiJuicer is the https://github.com/iteratec/multi-juicer/blob/master/guides/monitoring-setup/monitoring.adoc[optional
93-
dashboard which automatically consumes and displays metrics] from each of
94-
its Juice Shop instances. It shows individual challenge progress along with other
95-
functional and technical stats and can be very helpful in
96-
troubleshooting as well.
97-
98-
image:appendix/multi-juicer_dashboard.png[MultiJuicer dashboard with technical metrics]
99-
image:appendix/multi-juicer_dashboard1.png[MultiJuicer dashboard with business metrics]
100-
101-
The MultiJuicer repository offers guidance on https://github.com/iteratec/multi-juicer#installation-guides-for-specific-cloud-providers[how to set up the
102-
system on different cloud provider platforms],
103-
such as Digital Ocean, OpenShift, AWS or Azure.
67+
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].
10468

10569
== Existing trainings
10670

0 commit comments

Comments
 (0)