All Projects → hpi-schul-cloud → Jitsi Deployment

hpi-schul-cloud / Jitsi Deployment

Licence: mit
Auto-scalable Jitsi Meet for Kubernetes

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Jitsi Deployment

Pluralsight Scraper
Pluralsight video downloader
Stars: ✭ 109 (-14.17%)
Mutual labels:  education
Godot tutorials
Code and examples for KidsCanCode Godot Tutorials.
Stars: ✭ 119 (-6.3%)
Mutual labels:  education
Uexam Mysql
学之思在线考试系统,支持多种题型:选择题、多选题、判断题、填空题、解答题以及数学公式,包含PC端、小程序端,扩展性强,部署方便、界面设计友好、代码结构清晰
Stars: ✭ 124 (-2.36%)
Mutual labels:  education
Spb
⚓️ Saint Petersburg, Russia
Stars: ✭ 113 (-11.02%)
Mutual labels:  education
Raspberry Pi Os
Learning operating system development using Linux kernel and Raspberry Pi
Stars: ✭ 11,000 (+8561.42%)
Mutual labels:  education
Studentinsights
We work within school communities to make open, secure, student-centered data systems. Say [email protected]!
Stars: ✭ 121 (-4.72%)
Mutual labels:  education
Freecodecamp.cn
FCC China open source codebase and curriculum. Learn to code and help nonprofits.
Stars: ✭ 36,576 (+28700%)
Mutual labels:  education
Pulsesensorplayground
A PulseSensor library (for Arduino) that collects our most popular projects in one place.
Stars: ✭ 126 (-0.79%)
Mutual labels:  education
O365 Moodle
Office 365 and Azure Active Directory plugins for Moodle
Stars: ✭ 117 (-7.87%)
Mutual labels:  education
Pypsy
psychometrics package, including MIRT(multidimension item response theory), IRT(item response theory),GRM(grade response theory),CAT(computerized adaptive testing), CDM(cognitive diagnostic model), FA(factor analysis), SEM(Structural Equation Modeling) .
Stars: ✭ 123 (-3.15%)
Mutual labels:  education
Seai
CMU Lecture: Machine Learning In Production / AI Engineering / Software Engineering for AI-Enabled Systems (SE4AI)
Stars: ✭ 114 (-10.24%)
Mutual labels:  education
Pointless
Pointless: a scripting language for learning and fun
Stars: ✭ 116 (-8.66%)
Mutual labels:  education
Robertalab
IMPORTANT: this repository statys for HISTORICAL reasons only. The actively supported repository is "openroberta-lab". In the "develop" branch of this repository please read the files "IMPORTANT_CHANGE.md" and "README.md". Thank you very much.
Stars: ✭ 121 (-4.72%)
Mutual labels:  education
Graphviz.it
Graphviz fiddling website
Stars: ✭ 109 (-14.17%)
Mutual labels:  education
Landgreen.github.io
Landgreen's public site: physics notes, n-gon
Stars: ✭ 125 (-1.57%)
Mutual labels:  education
Venus
RISC-V instruction set simulator built for education
Stars: ✭ 109 (-14.17%)
Mutual labels:  education
W3develops
The w3develops.org open source codebase - Learn, build, and meetup with other developers on DISCORD https://discord.gg/WphGvTT and YOUTUBE http://bit.ly/codingyt
Stars: ✭ 120 (-5.51%)
Mutual labels:  education
Edumips64
Free cross-platform educational MIPS64 CPU Simulator
Stars: ✭ 126 (-0.79%)
Mutual labels:  education
Relay Example
[READONLY] 💝 Examples of common Relay patterns used in real-world applications. This repository is automatically exported from https://github.com/adeira/universe via Shipit
Stars: ✭ 126 (-0.79%)
Mutual labels:  education
Onramp
Easing the onramp for new or non-PHP developers to become Laravel devs.
Stars: ✭ 123 (-3.15%)
Mutual labels:  education

Jitsi Meet

Scalable video conferencing on Kubernetes.

Structure

The whole setup is based on Kubernetes YAML files and patches for these files. It makes use of kustomize to customize the raw YAMLs for each environment.

(Almost) every directory in the directory tree (depicted below) contains a kustomize.yaml file which defines resources (and possibly patches).

|-- base
|   |-- jitsi
|   |-- jitsi-shard
|   |   `-- jvb
|   `-- ops
|       |-- cert-manager
|       |-- dashboard
|       |-- ingress-nginx
|       |-- loadbalancer
|       |-- logging
|       |-- metacontroller
|       |-- monitoring
|       `-- reflector
`-- overlays
    |-- development
    |   |-- jitsi-base
    |   |-- ops
    |   |-- shard-0
    |   `-- shard-1
    `-- production
        |-- jitsi-base
        |-- ops
        |-- shard-0
        `-- shard-1

Requirements

Install

To install the full setup go to either overlays/development or overlays/production and run

$ kustomize build . | kubectl apply -f -

This deploys a Jitsi setup consisting of two shards. A shard is a complete replica of a Jitsi setup that is used in parallel to other shards to load-balance and for high availability. More shards can be added following the documentation in docs/architecture/architecture.md. The setup was tested against a managed Kubernetes cluster (v1.17.2) running on IONOS Cloud.

Architecture

The Jitsi Kubernetes namespace has the following architecture:

Architecture Jitsi Meet

The setup shown above contains only a single shard (for visual clarity). Subsequent shards would be attached to the web service. A more detailed explanation of the system architecture with multiple shards can be found in docs/architecture/architecture.md.

Load Testing

Load testing is based on jitsi-meet-torture which is a Java application that connects to a Jitsi instance as a user and shows a predefined video along with an audio stream by using a Selenium Chrome instance. To run multiple test users in multiple conferences a Selenium hub set up with docker-compose is used.

Terraform scripts that set up the test servers with an existing image can be found under loadtest. An init script is used to provision the necessary tools to that image. This image also needs SSH access set up with public key authentication.

After starting a number of load test servers, the load test can be started by using the loadtest/run_loadtest.sh script (locally). Results can be found in docs/loadtests/loadtestresults.md.

Kubernetes Dashboard Access

To access the installed Kubernetes Dashboard execute

$ kubectl proxy

and then go to http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

The login token can be received by executing

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

Kibana Access

Kibana is not accessible from the Internet and must be forwarded to your local machine via kubectl by executing

$ kubectl port-forward -n logging svc/kibana-kb-http 5601:5601

After that you will be able to access Kibana via https://localhost:5601/. The default login password (user elastic) can be received with

$ kubectl get secret -n logging elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo

The same procedure can be used to access Prometheus or Alertmanager.

Relationship With Other Projects

The monitoring stack that is set up by this project is currently also used by an affiliated project for Big Blue Button. Therefore, some of the files here contain configurations to monitor that setup. To exclude them delete all files starting with bbb- and remove the file names from the respective kustomization.yaml files.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].