From 93b446f6f441e8e772cce21db82ad2250334978e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 26 Mar 2018 21:28:54 +0200 Subject: [PATCH] doc: add diagram --- README.md | 8 ++++++-- resources/docker-jitsi-meet.png | Bin 0 -> 23397 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 resources/docker-jitsi-meet.png diff --git a/README.md b/README.md index a378774..274ccc8 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,15 @@ A Jitsi Meet installation can be broken down into the following components: * A conference focus component * A video router (could be more than one) +![](resources/docker-jitsi-meet.png) + +The diagram shows a typical deployment in a host running Docker, with a separate container +(not included in this project) which acts as a reverse proxy and SSL terminator, then +passing the traffic to the web container serving Jitsi Meet. + This project separates each of the components above into interlinked containers. To this end, several container images are provided. -TODO: image. - ### Images * **base**: Debian stable base image with the [S6 Overlay] for process control and the diff --git a/resources/docker-jitsi-meet.png b/resources/docker-jitsi-meet.png new file mode 100644 index 0000000000000000000000000000000000000000..7f385015fbd41af0e0fd3ced3eeff6ee995111d1 GIT binary patch literal 23397 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 Oy27nbT9J