GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak samostatně hostit Jitsi Meet with Docker

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. Linux HandbookDebdut Chakraborty

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. Linode DigitalOcean – Cloud pro vývojáře, který pomáhá milionům vývojářů snadno vytvářet, testovat, spravovat a škálovat aplikace jakékoli velikosti – rychleji než kdy předtím.

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. Linux HandbookDebdut Chakraborty

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 :)


Docker
  1. Jak nainstalovat a hostovat server OpenVPN pomocí Dockeru

  2. Jak nasadit mikroslužby s Dockerem

  3. Jak sdílet obrázky Docker s ostatními

  1. Jak nainstalovat Jenkins pomocí Docker

  2. Jak nasadit aplikace s Rancherem

  3. Jak nasadit kontejner nginx s Dockerem na Linode

  1. Jak spustit Jenkins Container jako službu Systemd pomocí Dockeru

  2. Jak a proč používat vzdáleného hostitele dockeru

  3. Jak připojit hostitelský adresář do kontejneru Docker