# Jitsi Meet - prywatne wideokonferencje

## Dlaczego Jitsi Meet?

Obecnie nie brakuje dostawców platform oferujących możliwość realizowania wideokonferencji za pomocą przeglądarki internetowej. Jednak za każdym razem, gdy korzystamy aplikacji SaaS, pojawia się pytanie o poufność i prywatności takich spotkań. W rezultacie, często szukamy alternatyw, które mogą być instalowane tam gdzie chcemy. Narzędzie do wideokonferencji [Jitsi Meet](https://jitsi.org/jitsi-meet/) o otwartym kodzie źródłowym zyskuje coraz większą popularność, ponieważ można je zainstalować u preferowanego dostawcy chmury lub lokalnie.

Kluczowe zalety korzystania z wideokonferencji Jitsi:

* Rozwiązanie typu open-source dostarczane bezpłatnie i przy szerokim wsparciu społeczności
* Instalacja jednym kliknięciem i łatwa konfiguracja
* Przyjazny proces aranżowania połączeń wideo i audio oraz sal wielo-konferencyjnych
* Wysoki poziom prywatności i bezpieczeństwa dzięki wdrożeniu w izolowanych kontenerach z szyfrowanym ruchem
* Wsparcie wszystkich dostępnych klientów (Windows, Linux, Mac, iOS, Android)

Ponadto, Jitsi przyciąga kilkoma unikalnymi funkcjami dostępnymi z poziomu aplikacji:

* **Rozpocznij transmisję na żywo** - pozwala na strumieniowanie audio i wideo przez Youtube.
* **Rozpocznij nagrywanie** - umożliwia nagrywanie spotkań w postaci pliku MP4 i automatycznie zapisuje je w */root/.jitsi-meet-cfg/jibri/recordings,* czyli folderze pojemnika aplikacji.

![Repozytorium nagrań Jitsi w obrębie kontenera](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhnzE5P2D5OKTdTHgXf%2F-MhnzTKVLr7WA_k4QsxA%2Fobraz.png?alt=media\&token=15c7db6e-46bb-4d78-a9c0-7a4942a55901)

* **Udostępnij wideo z YouTube** - umożliwia odtwarzanie wideo z YouTube wszystkim uczestnikom spotkania.
* **Rozmyj moje tło** - wykrywa korpus i wyświetla go bez zniekształceń, ale rozmywa otaczające go tło.

![Podmiana tła lub efekty rozmycia w Jitsi](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhnzE5P2D5OKTdTHgXf%2F-Mho-Wfz9rVxxK8YMxNm%2FZrzut%20ekranu%202021-08-23%2019.13.06.png?alt=media\&token=5cd11780-bab8-4557-ad03-81a789b735e2)

Podobnie jak w innych systemach konferencyjnych możesz **udostępnić swój ekran** za pomocą przycisku w lewym dolnym rogu panelu aplikacj&#x69;**.** Pozwala na emisję ekranu do wszystkich uczestników:

* Cały ekran komputera
* Okno konkretnej aplikacji
* Konkretna karta przeglądarki internetowej

{% hint style="info" %}
**Bezpieczeństwo transmisji.** W przypadku spotkań 1 na 1 dźwięk i obraz są zawsze szyfrowane przy użyciu protokołu [DTLS-SRTP](https://datatracker.ietf.org/doc/html/rfc5763) od nadawcy do odbiorcy. W przypadku spotkań wielostronnych, cały ruch audio i wideo w sieci jest także szyfrowany. Dane są odszyfrowywane podczas przechodzenia przez mostek wideo, ale nigdy nie są przechowywane w trwałej pamięci masowej i pozostają tylko w pamięci operacyjnej, gdy są kierowane do innych uczestników spotkania. Ponadto, Jitsi uruchamiamy jako prywatną instancję w izolowanym kontenerze, jest ona pod Twoją pełną kontrolą i żadna osoba trzecia nie ma do niej dostępu!
{% endhint %}

W tym artykule przedstawimy, jak w kilka minut uruchomić Jitsi na [Cloudlets.Zone](https://cloudlets.zone), aby uzyskać pełną kontrolę nad danymi, bezpieczny hosting w centrum danych w Polsce oraz wyeliminować potrzebę ręcznej instalacji i konserwacji.&#x20;

## Instalacja Jitsi Meet

1. Zaloguj się do [Panelu Usługi Cloudlets.Zone](https://app.controller.cloudlets.zone/) i wyszukaj Jitsi na naszym **Marketplace**, następnie wciśnij **Instaluj.**

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhmcdMM0job2hmP6Qi0%2F-MhnkDfRros9bG6p8_gH%2FZrzut%20ekranu%202021-08-23%2018.01.19.png?alt=media\&token=0eed9228-2214-4521-87da-2a720a6b67d6)

2\. Wybierz tryb instalacji, czyli czy ma to być pojedynczy kontener, czy może instalacja w postaci klastra wysokiej dostępności (HA) i opcjonalnie nazwij tworzone środowisko.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhmMaZL3AlOQud88cS7%2F-MhmPh0edM0bQaWdiQhj%2Fobraz.png?alt=media\&token=5df96855-847e-4695-895a-70928ffec8bb)

3\. Po kilku minutach, po prawidłowej instalacji pojawi się okienko z poświadczeniami, które wysłane zostaną także na adres adres e-mail przypisany do Twojego konta.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhnkJVHpARcy5mqchTd%2F-MhnlAmUeIA1l2rlS3W4%2FSnip%20-%20Cloudlets.Zone%20Panel%20Mozilla%20Firefo%20\(14\).png?alt=media\&token=2bb0bc96-6922-4d1a-90ab-6f2589051ad3)

4\. Kliknij URL **serwera Jitsi** lub przycisk **Otwórz w przeglądarce**, aby uzyskać dostęp do panelu administracyjnego wideokonferencji.&#x20;

{% hint style="info" %}
**Certyfikat SSL**. Domyślnie dla domeny tymczasowej generowany jest [testowy certyfikat pośredni](https://letsencrypt.org/docs/staging-environment/) ( „[Fake LE Intermediate X1](https://letsencrypt.org/certs/fakeleintermediatex1.pem)” ). Nadaje się on wyłącznie do celów ewaluacyjnych lub testowych. Wiekszość przeglądarek będzie zgłaszało problem z certyfikatem i aby używać go mimo to, trzeba będzie dodawać wyjątek bezpieczeństwa.&#x20;

Do celów produkcyjnych, należy powiązać własną domenę do środowiska i uzyskać dla niej ważny certyfikat SSL.&#x20;
{% endhint %}

### Dodawanie własnej domeny do serwera Jitsi

A.Z poziomu środowiska wybierz **więcej** (dodatki) oraz **change** w rozszerzeniu **Domain Configuration**.&#x20;

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhmWXrHCo1leFz3cBti%2F-MhmXOwf3s1Hd-rigE5M%2FZrzut%20ekranu%202021-08-23%2012.20.37.png?alt=media\&token=320f548c-1c01-4385-a3d6-f1b13d6c4310)

B. Wpisz własną domenę niestandardową uprzednio dodając odpowiedni rekord A lub CNAME do DNS. W naszym przykładzie do DNS domeny *viability.pl* dodaliśmy następujący rekord:

```yaml
CNAME | jitsi | jitsi.node.cloudlets.zone
```

C. Sprawdź, czy domena odpowiada właściwie np. używając [DNS Checker](https://dnschecker.org/) - w naszym przykładzie domena *jitsi.viability.pl* powinna zwrócić adres 212.127.94.38

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhmWXrHCo1leFz3cBti%2F-MhmZLJxVpOBYjXuFIYi%2Fobraz.png?alt=media\&token=f9838e1b-66e1-4a95-80e4-c2d2093e5b0c)

i dopiero wówczas zatwierdź zmianę klikając przycisk **Zastosuj.**

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhmWXrHCo1leFz3cBti%2F-MhmYcJUpVBGYQ50FMEN%2Fobraz.png?alt=media\&token=45e7b95d-1eb7-474b-980b-d2d41a97cc21)

Po kilku chwilach, nasza domena powinna prezentować się już z nowym certyfikatem SSL wystawcy Let's encrypt, który honorują najpopularniejsze przeglądarki.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-Mhm_UH8fmjePBvhLgp4%2F-Mhm_wMq56laubCzwVhB%2FZrzut%20ekranu%202021-08-23%2012.38.20.png?alt=media\&token=8943ee48-256b-4605-a349-f05a33898e1c)

5\. Możesz skorzystać z generatora nazw spotkań, aby uniknąć nadpisania wcześniejszych (o ile się zakończyły) lub dołączenia do jeszcze trwających o tej samej nazwie. Możesz też stworzyć własną nazwę, *np. SzybkieSpotkanieOtwierajace.* Kliknij **Start meeting**. Następnie naciśnij przycisk **Jestem gospodarzem** i wprowadź dane, które uzyskałeś podczas instalacji Jitsi, aby stać się administratorem wideokonferencji.

Spotkanie pojawia się, gdy pierwszy uczestnik dołącza do niego za pomocą adresu URL i jest usuwane zaraz po opuszczeniu go przez ostatniego uczestnika. Jeśli więc potrzebujesz cały czas utrzymywać jakąś salę z konkretnym spotkaniem, powinien tam zostać przynajmniej jeden uczestnik.&#x20;

Jitsi może być używany do prowadzenia wielu spotkań jednocześnie z ograniczeniem do 75 klientów na spotkanie. Domyślnie, serwer Jitsi na [Cloudlets.Zone](https://cloudlets.zone) ma wystarczającą pojemność zasobów, aby obsłużyć duże obciążenie, ale w razie potrzeby [można go w locie skalować pionowo](https://kompendium.cloudlets.zone/konfiguracja/skalowanie-poziome-i-pionowe#automatyczne-skalowanie-pionowe).

6\. Następnym krokiem jest zabezpieczenie spotkania hasłem, aby mieć pewność, że nie dostanie się ktoś nieproszony,  np. poprzez zbieżność nazw.&#x20;

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhnuRd0uwoYo7p-VEFe%2F-MhnutVtESiOqyIRiKFA%2FZrzut%20ekranu%202021-08-23%2018.44.06.png?alt=media\&token=63c5d235-c348-4d0d-9415-5881a8203d39)

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhnuRd0uwoYo7p-VEFe%2F-Mhnv7OPU4QUByVP1z2i%2FZrzut%20ekranu%202021-08-23%2018.44.55.png?alt=media\&token=3162dbcb-a8e8-49fd-b979-a6625e76d2c9)

Teraz spotkanie jest gotowe do przyjmowania uczestników, którzy mają URL. Pamiętaj tylko by wysłać zaproszenia do nich z **linkiem** i **hasłem**.

{% hint style="info" %}
Każdorazowo, po opuszczeniu spotkania przez wszystkich uczestników, hasło jest resetowane. Tak więc, dołączając do nowego spotkania w tym samym pokoju, pamiętaj, że hasło powinno zostać ustawione ponownie.
{% endhint %}

### Jitsi Meet jako klaster wysokiej dostępności

Jeżeli zależy Ci na nadmiarowości i dużej wydajności systemu wideokonferencyjnego Jitsi, podczas instalacji pakietu możesz wybrać opcję **Cluster**. System wyskaluje aplikację Jitsi na określoną liczbę węzłów (pole **Shards Number** w ramce instalacyjnej).

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-Mho173sQbPH1nVGWw7F%2F-Mho2JQSW03KJDfOpioC%2Fobraz.png?alt=media\&token=5fd8bd27-9a89-4e3b-965a-4ce367bb6715)

W rezultacie otrzymasz klaster wysokiej dostępności (HA) z systemem równoważenia obciążenia opartym na HAProxy i dedykowanym węzłem magazynowania, aby przechowywać wszystkie rekordy w tym samym miejscu.&#x20;

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-Mho4HkMJKHTc6l6tzFu%2F-Mho75WXnMib_75p05Bg%2FJitsi%20jako%20klaster%20wysokiej%20dost%C4%99pno%C5%9Bci.png?alt=media\&token=237b7175-213e-49b1-a301-0ca27ff3577f)

Klaster Jitsi Meet ma następujące cechy:

* Klienci są podzieleni według nazwy pokojów.
* Rozmiar pokoju (liczba jednoczesnych klientów) zależy od ilości zasobów przydzielonych na fragment (shard).
* Pojedynczy pokój nie może być współdzielony przez wiele fragmentów. Jednak wszystkie pokoje i ich klienci zostaną podzieleni między fragmenty.
* Poświadczenia administratora są takie same dla całego klastra.
* Nagrania są zapisywane w pamięci współdzielonej, dzięki czemu wszystkie pliki znajdują się w tym samym miejscu.
* Jeśli węzeł obsługujący pokój ulegnie awarii, wszyscy klienci zostaną automatycznie ponownie połączeni z nowym pokojem na innym fragmencie (po wprowadzeniu przez administratora danych uwierzytelniających dla nowej sesji Jitsi).
* W trybie klastrowym certyfikat SSL Let's Encrypt jest zarządzany przez nasz dodatek. W trybie autonomicznym jest zarządzany bezpośrednio przez aplikację Jitsi.

Po instalacji wersji klastrowej Jitsi postępuj zgodnie z tą samą sekwencją, co w przypadku pojedynczej instancji.

### Jak zmienić hasło administratora Jitsi?

W związku z tym, że na razie brakuje opcji zmiany hasła z poziomu aplikacji oraz zmiennych w Panelu Usługi [Cloudlets.Zone](https://app.controller.cloudlets.zone/), zamieszczamy jak to zrobić z poziomu linii komend.&#x20;

1.Z menu naszego środowiska Jitsi wybieramy **Web SSH** i wpisujemy komendę:

```bash
docker ps
```

i szukamy na liście identyfikatora kontenera o nazwie: *docker-jitsi-meet\_prosody\_1*

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MWnpSFLdAw8lYDKrSEr%2F-MhyFWMQ8alQ7sO1WR1C%2F-MhyH4eXwaesRJg59PoS%2FWebSSH%20na%20CloudletsZone.png?alt=media\&token=7a3a0676-8c83-4c68-bc1c-8fa015dfb6ef)

2\. Wpisujemy poniższą komendę, uprzednio kopiując do schowka identyfikator kontenera (Conteiner ID):

```bash
docker exec -it efb7de9c68b8 /bin/bash
```

3\. Teraz pozostaje "już" dokonać zmiany hasła używając poniższej komendy. Dla mniej spostrzegawczych, ostatnia fraza to hasło :)

```bash
prosodyctl --config /config/prosody.cfg.lua register admin meet.jitsi Trudn3Hasl0
```

Zrobione!

<figure><img src="https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2FI7Dg7BaG8ZelTeayovPJ%2FChmura%20(4).png?alt=media&#x26;token=f8fe7719-9dcc-409a-9749-80824302dc5e" alt=""><figcaption></figcaption></figure>

> \>>> [<mark style="color:yellow;">**Aktywuj konto na Cloudlets.Zone**</mark>](https://cloudlets.zone/rejestracja/?utm_source=kompendium\&utm_campaign=jitsi\&utm_medium=kompendium) <<<
