GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menghosting Sendiri Jitsi Bertemu Dengan Docker

Jitsi Meet adalah perangkat lunak konferensi video open source yang dapat Anda hosting sendiri. Ini adalah alternatif yang baik untuk layanan eksklusif seperti Google Meet atau Zoom.

Jitsi Meet dapat diintegrasikan dengan alat sumber terbuka lainnya seperti Nextcloud, Rocket.Chat, atau Synapse (implementasi Matriks) untuk memberi Anda solusi yang komprehensif.

Dengan beberapa batasan, Jitsi Meet dapat digunakan secara gratis di server mereka. Untuk fitur premium, Anda dapat memilih Jitsi sebagai Layanan dari pengembang Jitsi. Anda juga dapat menyebarkannya di server Anda sendiri? Saya akan membantu Anda dengan bagian hosting sendiri.

Men-deploy Jitsi Meet dengan Docker

Menyebarkan Jitsi sangat mudah dengan Docker. Saya akan menunjukkan langkah-langkah untuk penyebaran Jitsi. Saya akan membahas proxy terbalik dan metode biasa.

Cara Menggunakan Nginx Reverse Proxy Dengan Beberapa Aplikasi DockerPelajari bagaimana Anda dapat menerapkan beberapa layanan web di server yang sama menggunakan proxy terbalik Nginx dan wadah buruh pelabuhan. Linux HandbookDebdut Chakraborty

Prasyarat

Ada beberapa hal yang perlu diperhatikan sebelum melanjutkan.

Pengetahuan dasar tentang Docker dan container: Ini bukan keharusan, seperti semua tutorial kami, tapi bagus untuk dimiliki.

Domain khusus: Penerapan ini tidak akan dilayani IP, yaitu saya akan memandu Anda melalui penerapan di bawah domain (atau subdomain) yang sebenarnya dengan HTTPS. Deployment seperti HTTP://[some IP]:[some port] baik untuk pengujian, tetapi tidak ada gunanya dalam panduan ini.

Server Linux baik yang fisik atau di awan: Saya sarankan menggunakan Linode tetapi Anda dapat menggunakan penyedia lain seperti DigitalOcean, Vultr atau UpCloud. Menerapkan di bawah AWS bisa sangat spesifik platform dan saya tidak akan membicarakannya di sini.

Sesuai rekomendasi resmi, server dengan memori 4 GB dengan prosesor dual-core akan cocok untuk sekitar 10-20 pengguna.

Linode | Awan Terbuka Independen untuk PengembangMisi kami adalah mempercepat inovasi dengan membuat komputasi awan menjadi sederhana, terjangkau, dan dapat diakses oleh semua orang. Linode DigitalOcean – Awan pengembangMembantu jutaan pengembang dengan mudah membangun, menguji, mengelola, dan menskalakan aplikasi dari berbagai ukuran – lebih cepat daripada sebelumnya.

Secara opsional, penyiapan proxy terbalik kami: Jika Anda ingin meletakkannya di belakang proxy terbalik sehingga Anda dapat menggunakan beberapa layanan web di server yang sama. Jika Jitsi adalah satu-satunya aplikasi yang akan berjalan di server, Anda tidak memerlukan proxy terbalik.

Mengubah data DNS

Memiliki nama domain saja tidak cukup. Anda perlu memastikan catatan DNS juga ada. Untuk tutorial ini, saya akan menggunakan domain openexperiment.di mana saya telah berbaring cukup lama.

Pastikan Anda mengubah semua instance domain dari contoh ke domain Anda.

Setelah Anda memiliki domain dan menggunakan server (bukan dengan Jitsi, hanya server), kumpulkan alamat IP server (keduanya IPv4 &IPv6), dan tambahkan catatan A dan AAAA untuk masing-masing. Setelah selesai, Anda juga perlu menambahkan data CNAME. Anda dapat menambahkan subdomain tertentu atau seperti saya, menambahkan entri wildcard (jika Anda menghostingnya di domain utama).

Lihat screenshot di bawah jika Anda masih bingung. Saya mengaburkan alamat IP yang sebenarnya (saya sangat tertutup ... ssst).

Anda mungkin harus menunggu beberapa saat agar perubahan DNS diterapkan. Anda dapat memeriksanya menggunakan perintah ping.

ping domain sampai Anda melihat alamat IP server Anda seperti ini -

❯ 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

Anda juga dapat menggunakan perintah dig untuk memeriksa catatan DNS.

dig openexperiment.in +nocmd +nocomments

Anda akan melihat sesuatu seperti berikut

❯ 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

Memahami komponen Jitsi Meet

Sebelum melanjutkan, saya yakin akan sangat membantu jika mengetahui apa saja komponen ini, dan mengapa komponen itu penting, serta komponen mana yang akan Anda gunakan untuk penerapan ini.

Jika Anda tidak peduli dengan hal ini, langsung saja ke bagian penerapan artikel ini.

jitsi/web:terbaru: UI web Jitsi Meet, yang Anda lihat di browser, ada di dalam gambar ini. Bersama dengan Nginx untuk server web.

jitsi/prosody:terbaru: Ini adalah server XMPP, inilah yang bertanggung jawab atas panggilan audio/video atau obrolan teks. Ini bisa dianggap sebagai jantung Jitsi.

jitsi/jicofo:terbaru: Komponen fokus dari server XMPP, bertanggung jawab untuk mengelola sesi video antara peserta dan jembatan video, dengan kata lain, inilah yang mengelola konferensi. Ini adalah komponen wajib lainnya dari Jitsi.

jitsi/jvb:terbaru: Jitsi Videobridge bertanggung jawab untuk menyampaikan saluran video yang masuk ke semua peserta.

Ini adalah bagian wajib dari penerapan Jitsi operasional, dan saya hanya akan menggunakannya untuk panduan ini. Ada komponen lain seperti Jibri, Jigasi, tetapi karena itu opsional, saya akan mengabaikannya untuk saat ini.

Cukup membaca, saatnya untuk beberapa pekerjaan langsung.

Jika Anda akan menerapkan ini bersama proxy terbalik, pastikan Anda telah menyiapkannya sebelum mendekati yang ini. Cara Menggunakan Proksi Terbalik Nginx Dengan Beberapa Aplikasi Docker Pelajari bagaimana Anda dapat menerapkan beberapa layanan web di server yang sama menggunakan proxy terbalik Nginx dan kontainer buruh pelabuhan. Linux HandbookDebdut Chakraborty

Klon repositori docker-jitsi-meet

Repositori ini berisi semua file yang akan kita perlukan untuk penerapan ini (dengan jelas beberapa modifikasi).

Kloning repositori dan ubah PWD ke direktori kloning.

git clone https://github.com/jitsi/docker-jitsi-meet jitsi
cd jitsi

Mulai memodifikasi variabel lingkungan

Karena Anda menggunakan Docker, Anda harus memodifikasi beberapa variabel lingkungan. Mulailah dengan menyalin file konfigurasi contoh.

cp env.example .env

Sekarang buka .env file, dan lihat 6 variabel lingkungan pertama.

Karena semua komponen ini pada dasarnya adalah semacam server yang berjalan dalam wadah, Anda memerlukan cara untuk memastikan server benar-benar seperti yang mereka katakan. Rahasia-rahasia ini ada karena alasan itu. Klien harus mengautentikasi terlebih dahulu sebelum membuat koneksi.

Anda tidak perlu mengatur rahasia ini sendiri. Sudah ada skrip di sana untuk membuat hidup Anda lebih mudah. Jalankan perintah berikut saat Anda berada di dalam direktori repositori

./gen-passwords.sh

Setelah dijalankan, Anda dapat membuka kembali .env file, dan rahasia harus diisi.

Anda tidak memerlukan semua rahasia itu untuk penerapan ini, tetapi biarkan saja, tidak perlu menghapus atau mengomentarinya.

Sekarang akan ada tiga subbagian di sini, satu untuk penugasan variabel umum (proksi terbalik atau tanpa proksi terbalik), satu lagi untuk proksi terbalik, dan yang terakhir tanpa proksi terbalik. Semuanya masuk ke file .env.

Variabel umum (untuk metode proxy terbalik dan non-reverse)

Berikut adalah variabel umum untuk kedua metode penerapan dan Anda menambahkannya di file .env.

CONFIG: Anda bisa mengubah nilai ini, tetapi itu tidak perlu. Nilai variabel ini adalah direktori di host Anda, yang akan dipasang di dalam wadah untuk menyimpan data persisten. Jadi memodifikasi ini sepenuhnya terserah Anda.

PUBLIC_URL: Domain Jitsi akan dihosting (dengan protokol). Dalam kasus saya, nilainya adalah https://meet.openexperiment.in

AKTIFKAN_AUTH: Apakah Anda ingin otentikasi? Dengan otentikasi, pengguna harus memasukkan nama pengguna dan kata sandi sebelum mereka dapat bergabung atau membuat rapat. Jika demikian, batalkan komentar pada baris ini dan pastikan disetel ke 1.

AUTH_TYPE: Jika Anda menyetel ENABLE_AUTH ke 1, setel yang ini ke "internal". Saya tidak akan membahas autentikasi LDAP atau JWT dalam artikel ini.

RESTART_POLICY: Mulai ulang kebijakan container. Standarnya adalah unless-stopped . Saya lebih suka always atau on-failure .

TZ: Setel ini ke zona waktu sistem Anda. Karena server saya berjalan di zona waktu UTC, saya tidak perlu mengubahnya.

Variabel untuk metode proxy non-terbalik

Jika Anda tidak menggunakan proxy terbalik, Anda harus menambahkan variabel ini ke file .env:

HTTP_PORT , HTTPS_PORT: Ubah ini menjadi 80 dan 443 masing-masing. Ini adalah port tempat container Anda akan mengikatnya.

AKTIFKAN_LETSENCRYPT: Setel ini ke 1, Anda memerlukan HTTPS.

LETSENCRYPT_DOMAIN &LETSENCRYPT_EMAIL: Domain tempat instance Anda akan dihosting, dan id email Anda untuk pemberitahuan terkait sertifikat Anda.

AKTIFKAN_HTTP_REDIRECT: Setel ini ke 1, lalu lintas HTTP harus diteruskan ke HTTPS.

AKTIFKAN_HSTS: Ini akan, dengan cara tertentu, memaksa browser untuk menggunakan koneksi tepercaya. Setel ini ke 1.

Variabel yang diperlukan untuk proxy terbalik

Jika Anda telah memilih proxy terbalik, Anda harus menambahkan variabel ini ke file .env:

DISABLE_HTTPS: Karena HTTPS akan ditangani oleh server web proxy terbalik Anda, Anda tidak perlu mengaktifkan HTTPS dari Jitsi itu sendiri.

AKTIFKAN_HTTP_REDIRECT: Tidak perlu, setel ini ke 0. HTTP/HTTPS akan ditangani oleh proxy terbalik kami.

VIRTUAL_HOST &LETSENCRYPT_HOST: Variabel-variabel ini tidak ada secara default. Tambahkan ini, dan untuk nilainya, gunakan nama domain tempat instance Anda akan dihosting. Untuk informasi lebih lanjut, baca artikel proxy saya yang terhormat.

[HANYA JIKA MENGGUNAKAN REVERSE PROXY] Ubah file penulisan

Buka file docker-compose.yml di editor teks favorit Anda.

Satu-satunya definisi layanan yang perlu diedit adalah layanan web. Ubah sesuai dengan daftar berikut

  • Hapus bagian port. Anda tidak perlu lagi mengikat port apa pun dari penampung Anda ke host.
  • Tambahkan jaringan lain, jaringan yang sama yang digunakan dalam konfigurasi proxy terbalik Anda.
  • Tentukan jaringan di akhir file penulisan seperti ini
networks:
  net:
    external: true

Dengan asumsi nama jaringan adalah net , ubah ke apa pun yang Anda tetapkan.

  • Tambahkan variabel lingkungan VIRTUAL_HOST &LETSENCRYPT_HOST seperti itu
- VIRTUAL_HOST
- LETSENCRYPT_HOST

Menyebarkan kontainer

Setelah semua pengeditan selesai, Anda dapat menerapkan Jitsi dengan docker-compose up -d perintah.

Pastikan penampung proxy terbalik Anda berjalan JIKA Anda memilih metode proxy terbalik.

Anda hampir selesai dengan penerapan Jitsi Meet kecuali untuk langkah terakhir yaitu membuat pengguna yang diautentikasi untuk server Jitsi Anda.

Membuat pengguna yang diautentikasi

Jika Anda mengaktifkan otentikasi (dengan ENABLE_AUTH ), Anda harus mendaftarkan pengguna sebelum dapat menggunakan Jitsi.

Untuk melakukannya cukup sederhana. Buka direktori repositori yang dikloning dan jalankan perintah yang mirip dengan yang berikut

docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua register [USERNAME] meet.jitsi [PASSWORD]

Anda juga dapat menghapus pengguna menggunakan unregister perintah seperti yang saya tunjukkan di sini:

docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua unregister [USERNAME] meet.jitsi

Terakhir, Anda dapat melanjutkan dan memeriksa front end Jitsi Meet pada URL yang ditentukan di browser web:

Masih ada pertanyaan atau saran? Jangan ragu untuk memberikan komentar.

Jika Anda menyukai tutorial ini dan ingin melihat kami menghasilkan lebih banyak konten bermanfaat, harap pertimbangkan untuk memilih keanggotaan Pro atau berikan donasi satu kali untuk mendukung kami :)


Docker
  1. Cara menginstal dan menghosting server OpenVPN dengan Docker

  2. Cara Menginstal Jenkins dengan Docker

  3. Cara Menyebarkan Layanan Mikro dengan Docker

  1. Cara Menyebarkan Aplikasi dengan Rancher

  2. Cara Menyebarkan Wadah nginx dengan Docker di Linode

  3. Cara Berbagi Gambar Docker Dengan Orang Lain

  1. Cara Menjalankan Jenkins Container sebagai Layanan Systemd dengan Docker

  2. Bagaimana dan Mengapa Menggunakan Host Docker Jarak Jauh

  3. Cara Memasang Direktori Host Ke Wadah Docker