Jitsi Meet je open source software pro videokonference, který můžete hostovat sami. Je to dobrá alternativa k proprietárním službám, jako je Google Meet nebo Zoom.
Jitsi Meet lze integrovat s dalšími open source nástroji, jako je Nextcloud, Rocket.Chat nebo Synapse (implementace Matrix), a poskytnout vám tak komplexní řešení.
S určitými omezeními lze Jitsi Meet používat na jejich serveru zdarma. Pro prémiové funkce se můžete rozhodnout pro Jitsi jako službu od vývojářů Jitsi. Můžete jej také nasadit na svůj vlastní server? Pomohu vám s částí vlastního hostování.
Nasazení Jitsi Meet s Docker
Nasazení Jitsi je s Dockerem neuvěřitelně snadné. Ukážu vám kroky pro nasazení Jitsi. Budu se zabývat jak reverzní proxy, tak běžnou metodou.
Jak používat Nginx Reverse Proxy s více Docker AppsZjistěte, jak můžete nasadit více webových služeb na stejném serveru pomocí Nginx reverzního proxy a kontejnerů dockeru.

Předpoklady
Než budete pokračovat, je třeba se postarat o několik věcí.
Základní znalost Dockeru a kontejnerů: Není to nutnost, jako všechny naše výukové programy, ale je hezké to mít.
Vlastní doména: Toto nasazení nebude obsluhované IP, to znamená, že vás provedu nasazením pod skutečnou doménou (nebo subdoménou) s HTTPS. Nasazení jako HTTP://[nějaká IP]:[nějaký port] jsou pro testování v pořádku, ale v těchto příručkách neslouží žádnému účelu.
Linuxový server buď fyzický, nebo v cloudu: Doporučuji používat Linode, ale můžete použít jakéhokoli jiného poskytovatele, jako je DigitalOcean, Vultr nebo UpCloud. Nasazení pod AWS může být velmi specifické pro platformu a o tom zde nebudu mluvit.
Podle oficiálního doporučení by server se 4 GB paměti s dvoujádrovým procesorem byl vhodný pro zhruba 10-20 uživatelů.
Linode | Nezávislý otevřený cloud pro vývojářeNaším posláním je urychlit inovace tím, že bude cloud computing jednoduchý, cenově dostupný a dostupný pro všechny.


Volitelně naše reverzní nastavení proxy: Pokud jej chcete umístit za reverzní proxy, abyste mohli nasadit několik webových služeb na stejném serveru. Pokud je Jitsi jedinou aplikací, která poběží na serveru, nepotřebujete reverzní proxy.
Změna záznamů DNS
Mít doménové jméno nestačí. Musíte se také ujistit, že jsou na svém místě záznamy DNS. Pro tento tutoriál použiji doménu openexperiment.ve které se už nějakou dobu povaluji.
Ujistěte se, že jste změnili všechny instance domény z příkladů na svou doménu.
Jakmile budete mít doménu a nasazený server (nikoli s Jitsi, pouze server), shromážděte IP adresy serveru (oba IPv4 a IPv6) a přidejte pro každý záznam A a AAAA. Poté budete muset přidat záznam CNAME. Můžete přidat konkrétní subdoménu nebo jako já přidat zástupný znak (pokud ji hostujete na hlavní doméně).
Pokud jste stále zmatení, podívejte se na snímek obrazovky níže. Rozmazal jsem skutečné IP adresy (jsem velmi tajnůstkářský ... pšššt).

Možná budete muset nějakou dobu počkat, než se změny DNS projeví. Můžete to zkontrolovat pomocí příkazu ping.
ping
doménu, dokud neuvidíte IP adresu vašeho serveru takto -
❯ ping openexperiment.in -4
PING openexperiment.in (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=55 time=36.6 ms
--- openexperiment.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 36.610/36.610/36.610/0.000 ms
Ke kontrole DNS záznamů můžete také použít příkaz dig.
dig openexperiment.in +nocmd +nocomments
Měli byste vidět něco jako následující
❯ dig openexperiment.in +nocmd +nocomments
;openexperiment.in. IN A
openexperiment.in. 2970 IN A xxx.xxx.xxx.xxx
;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 07 11:38:20 IST 2021
;; MSG SIZE rcvd: 62
Porozumění komponentám Jitsi Meet
Než se pustím dál, věřím, že je užitečné vědět, co tyto komponenty jsou a proč jsou důležité, spolu s tím, které z nich budete pro toto nasazení používat.
Pokud vás to nezajímá, zjevně přeskočte na sekci nasazení v tomto článku.
jitsi/web:latest: Webové uživatelské rozhraní Jitsi Meet, které vidíte ve svém prohlížeči, je uvnitř tohoto obrázku. Spolu s Nginx pro webový server.
jitsi/prosody:latest: Toto je server XMPP, ten je zodpovědný za audio/video hovory nebo textové chaty. To lze považovat za srdce Jitsi.
jitsi/jicofo:nejnovější: Součást fokusu serveru XMPP, zodpovědná za řízení video relací mezi účastníky a videomostem, jinými slovy, to je to, co spravuje konference. Toto je další povinná součást Jitsi.
jitsi/jvb:latest: Jitsi Videobridge je zodpovědný za přenos příchozích video kanálů všem účastníkům.
Toto jsou povinné součásti operačního nasazení Jitsi a budu je používat pouze pro tuto příručku. Existují další komponenty jako Jibri, Jigasi, ale protože jsou volitelné, zatím je vynechám.
Dost čtení, je čas na nějakou praktickou práci.
Pokud to hodláte nasadit vedle reverzního proxy, ujistěte se, že jste to nastavili, než přistoupíte k tomuto.Jak používat reverzní proxy Nginx s více aplikacemi DockerZjistěte, jak můžete nasadit více webových služeb na stejný server pomocí reverzního proxy Nginx a dokovací kontejnery.

Klonování úložiště docker-jitsi-meet
Toto úložiště obsahuje všechny soubory, které budeme potřebovat pro toto nasazení (samozřejmě s určitými úpravami).
Naklonujte úložiště a změňte PWD
do klonovaného adresáře.
git clone https://github.com/jitsi/docker-jitsi-meet jitsi
cd jitsi
Začněte upravovat proměnné prostředí
Protože používáte Docker, musíte upravit některé proměnné prostředí. Začněte zkopírováním příkladu konfiguračního souboru.
cp env.example .env
Nyní otevřete .env
a podívejte se na prvních 6 proměnných prostředí.
Protože všechny tyto komponenty jsou v podstatě jakési servery běžící v kontejnerech, potřebujete způsob, jak zajistit, aby servery byly skutečně tím, za koho se vydávají. Z tohoto důvodu jsou zde tato tajemství. Klienti se musí před navázáním připojení nejprve ověřit.
Tato tajemství nemusíte nastavovat sami. Už tam je scénář, který vám usnadní život. Spusťte následující příkaz, když jste v adresáři úložiště
./gen-passwords.sh
Po spuštění můžete znovu otevřít .env
a tajemství by měla být vyplněna.
Pro toto nasazení nebudete potřebovat všechna tato tajemství, ale nechte je být, není třeba je odstraňovat ani komentovat.
Nyní zde budou tři podsekce, jedna pro společné přiřazení proměnných (reverzní proxy nebo žádná reverzní proxy), další pro reverzní proxy a poslední pro bez reverzní proxy. Všechny jdou do souboru .env.
Běžné proměnné (pro reverzní proxy i nereverzní proxy metodu)
Zde jsou proměnné společné pro obě metody nasazení a přidáte je do souboru .env.
CONFIG: můžete změnit hodnotu, ale není to nutné. Hodnota této proměnné je adresář ve vašem hostiteli, který bude připojen k vazbě uvnitř kontejnerů, aby ukládal trvalá data. Úprava je tedy zcela na vás.
PUBLIC_URL: Doména Jitsi bude hostována (s protokolem). V mém případě je hodnota https://meet.openexperiment.in
ENABLE_AUTH: Chcete autentizaci? S ověřováním bude muset uživatel zadat uživatelské jméno a heslo, než se bude moci připojit nebo vytvořit schůzku. Pokud ano, odkomentujte tento řádek a ujistěte se, že je nastaven na 1.
AUTH_TYPE: Pokud byste nastavili ENABLE_AUTH na 1, nastavte toto na „interní“. V tomto článku se nebudu zabývat ověřováním LDAP nebo JWT.
RESTART_POLICY: Zásady restartování kontejnerů. Výchozí hodnota je unless-stopped
. Preferuji always
nebo on-failure
.
TZ: Nastavte toto časové pásmo vašeho systému. Protože moje servery běží v časovém pásmu UTC, nemusím to měnit.
Proměnné pro nereverzní proxy metodu
Pokud nepoužíváte reverzní proxy, měli byste do souboru .env přidat tyto proměnné:
HTTP_PORT , HTTPS_PORT: Změňte je na 80 a 443. Toto jsou porty, ke kterým se váš kontejner připojí.
ENABLE_LETSENCRYPT: Nastavte toto na 1, potřebujete HTTPS.
LETSENCRYPT_DOMAIN &LETSENCRYPT_EMAIL: Doména, na které bude vaše instance hostována, a vaše e-mailové ID pro oznámení související s certifikátem.
ENABLE_HTTP_REDIRECT: Nastavte toto na 1, HTTP provoz musí být přenášen na HTTPS.
ENABLE_HSTS: To určitým způsobem přinutí prohlížeče používat důvěryhodné připojení. Nastavte toto na 1.
Proměnné požadované pro reverzní proxy
Pokud jste se rozhodli pro reverzní proxy, měli byste do souboru .env přidat tyto proměnné:
DISABLE_HTTPS: Protože HTTPS bude zpracovávat webový server vašeho reverzního proxy, nemusíte mít HTTPS povoleno přímo od Jitsi.
ENABLE_HTTP_REDIRECT: Není nutné, nastavte toto na 0. HTTP/HTTPS bude obsluhovat náš reverzní proxy.
VIRTUAL_HOST &LETSENCRYPT_HOST: Tyto proměnné tam ve výchozím nastavení nejsou. Přidejte je a pro hodnoty použijte název domény, kde bude vaše instance hostována. Pro více informací si přečtěte můj článek o ctihodném proxy.
[POUZE POKUD POUŽÍVÁTE REVERZNÍ PROXY] Upravte nový soubor
Otevřete soubor docker-compose.yml
ve vašem oblíbeném textovém editoru.
Jedinou definicí služby, kterou je třeba upravit, je webová služba. Upravte jej podle následujícího seznamu
- Odeberte sekci portů. Již nemusíte vázat žádný port z vašeho kontejneru na hostitele.
- Přidejte další síť, stejnou síť, která se používá ve vaší konfiguraci reverzního proxy.
- Definujte síť na konci vytvářeného souboru takto
networks:
net:
external: true
Za předpokladu, že název sítě je net
, změňte jej na cokoliv, co si nastavíte.
- Přidejte proměnné prostředí
VIRTUAL_HOST
&LETSENCRYPT_HOST
takhle
- VIRTUAL_HOST
- LETSENCRYPT_HOST
Rozmístění kontejnerů
Po dokončení všech úprav můžete Jitsi nasadit pomocí docker-compose up -d
příkaz.
Ujistěte se, že vaše kontejnery reverzního proxy běží, POKUD jste zvolili metodu reverzního proxy.
S nasazením Jitsi Meet jste téměř hotovi, s výjimkou posledního kroku, kterým je vytvoření ověřených uživatelů pro váš server Jitsi.
Vytváření ověřených uživatelů
Pokud jste povolili ověřování (pomocí ENABLE_AUTH
), budete muset zaregistrovat uživatele, než budete moci používat Jitsi.
To je docela jednoduché. Přejděte do adresáře klonovaného úložiště a spusťte příkaz podobný následujícímu
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua register [USERNAME] meet.jitsi [PASSWORD]
Uživatele můžete také odebrat pomocí unregister
příkaz, jak jsem zde ukázal:
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua unregister [USERNAME] meet.jitsi
Nakonec můžete pokračovat a zkontrolovat frontend Jitsi Meet na určené adrese URL ve webovém prohlížeči:

Stále máte dotazy nebo návrhy? Neváhejte a napište komentář.
Pokud se vám tento tutoriál líbí a chtěli byste, abychom produkovali více takového užitečného obsahu, zvažte prosím, zda se nerozhodnete pro členství Pro nebo nás podpoříte jednorázovým darem :)