summaryrefslogtreecommitdiff
path: root/jitsi.html
blob: 442f6fde42db644478ae78634af3b23317f3be7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!-- <!DOCTYPE html> -->
<html lang="en">
  <head>
    <title>Jitsi Video Chat &ndash; LandChad.net</title>
    <meta charset="utf-8" />
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="alternate" type="application/rss+xml" title="Land Chad RSS" href="/rss.xml" />
  </head>
  <body>
    <header><h1>Jitsi Video Chat</h1></header>
    <nav></nav>
    <main>
        <img src="pix/jitsi.svg" alt="Jitsi" class=titleimg>
      <p>
      <dfn>Jitsi</dfn> is a set of open-source projects that allows you to easily build and deploy secure video conferencing solutions.
      </p>
      <p>
        Is really easy to install, and also a really good private, federated and libre alternative to Zoom or other video conferencing software.
        You can create calls just by typing the URL, and loging-in is not necessary.
      </p>

      <h2>Dependencies and Installation</h2>

      <p>First, install some dependencies:</p>

      <pre><code>apt install gpg apt-transport-https nginx python3-certbot-nginx</code></pre>

      <p>Jitsi has its own package repository, so let's add it.</p>

      <pre class=wide><code>curl https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmor &#62; /usr/share/keyrings/jitsi-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list
apt update -y</code></pre>

      <p>
        Ok. So now we can install Jitsi, but before we do that, let's setup the firewall <code>ufw</code>, in case you
        have it enabled, and the SSL certificate.
      </p>

      <h2>Enable Required Ports</h2>

      <p>If you are using <a href="ufw.html">ufw</a> or another firewall, there are several ports we need to ensure are open:</p>
      <pre><code>ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10000/udp
ufw allow 3478/udp
ufw allow 5349/tcp
ufw enable</code></pre>

      <p>For your information, these allow the following:</p>

      <ul>
        <li>80 TCP &ndash; Certbot.</li>
        <li>443 TCP &ndash; General access to Jitsi Meet.</li>
        <li>10000 UDP &ndash; General network video/audio communications.</li>
        <li>3478 UDP &ndash; Quering the stun server (coturn, optional, needs config.js change to enable it).</li>
        <li>
          5349 TCP &ndash; Fallback network video/audio communications over TCP (when UDP is blocked for example), served by coturn.
        </li>
      </ul>

      <h2>SSL certificate</h2>

      <p>
        I'll be using <a href="./certbot.html" target="blank">certbot</a> and
        <a href="./nginx.html" target="blank">Nginx</a> to generate a certificate
        for the Jitsi subdomain to allow encrypted connections.
      </p>

      <pre><code>certbot --nginx certonly -d <strong>meet.example.org</strong></code></pre>

      <p>
      We will not create an Nginx config file for Jitsi because the Jitsi package we will be installing will do that automatically.
      </p>

      <h2>Installation</h2>

      <p>To begin the installation process, just run:</p>
      <pre><code>apt install jitsi-meet</code></pre>

      <p>
        It will ask you for your <code><strong>hostname</strong></code
        >; there you'll need to input the subdomain you have just added to Nginx, like
        <code><strong>meet.example.org</strong></code>.
      </p>

      <p>For the SSL certificate, choose <code>I want to use my own certificate</code>.</p>

      <p>
        When it ask you for the certification key and cert files, input
        <code>/etc/letsencrypt/live/<strong>meet.example.org</strong>/privkey.pem</code> and
        <code>/etc/letsencrypt/live/<strong>meet.example.org</strong>/fullchain.pem</code> respectively.
      </p>

      <h2>Using Jitsi</h2>

      <img src="pix/jitsi-01.webp" alt="Jitsi once installed">

      <p>Jitsi can be used in a browser by then just going to <code>meet.example.org</code>.</p>

      <p>Note that there are also Jitsi clients for all major platforms:</p>

      <ul>
          <li><a href="https://desktop.jitsi.org/Main/Download.html">Desktop</a> (Windows, MacOS, GNU/Linux)</li>
          <li>Android (<a href="https://f-droid.org/en/packages/org.jitsi.meet/">F-Droid</a> and <a href="https://play.google.com/store/apps/details?id=org.jitsi.meet">Google Play</a>)</li>
          <li><a href="https://apps.apple.com/us/app/jitsi-meet/id1165103905">iPhone/iOS</a></li>
      </ul>

      <p>
      <strong>When using a Jitsi app for the first time, remember to go to the "Settings" menu and change your server name to the Jitsi site you just created.</strong>
      </p>

      <p>When you create a video chatroom, its address will appear as <code><strong>meet.example.org/yourvideochatname</strong></code> and can be shared as such.</p>

      <h3>Security</h3>
      <p>
        The default Jitsi configuration will allow anyone accessing your site to create a video chatroom. If you want to only allow certain people to create rooms, you can check out how to add authentication <a href="https://jitsi.github.io/handbook/docs/devops-guide/secure-domain" target="blank">here in the original documentation</a>.
      </p>
      
      <h2>More info</h2>

      <p>
        This article is based on <a href="https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart" target="blank">the original documentation</a>. There you can find more details and configurations.
      </p>

      <ul>
        <li>Written by <a href="https://josefabio.com" target="blank">Jose Fabio.</a> Donate Monero: <code class="crypto">484RLdsXQCDGSthNatGApRPTyqcCbM3PkM97axXezEuPZppimXmwWegiF3Et4BHBgjWR7sVXuEUoAeVNpBiVznhoDLqLV7j</code> <a href="https://josefabio.com/figures/monero.jpg" class="crypto" target="blank">[QR]</a></li>
        <li>Edited and revised by <a href="https://lukesmith.xyz">Luke</a>.</li>
      </ul>
    </main>

    <footer><a href="https://landchad.net">LandChad.net</a></br>Because Everyone should be an Internet LandChad.</br><a href="index.html"><li><img src="pix/chad.gif" alt="chad"></li></a><a href="rss.xml"><li><img src="pix/rss.svg" alt="RSS"></li></a><a href="donate-bitcoin.html"><li><img src="pix/btc.svg" alt="BTC"></li></a><a href="donate-monero.html"><li><img src="pix/xmr.svg" alt="XMR"></li></a><a href="https://github.com/lukesmithxyz/landchad"><li><img src="pix/git.svg" alt="Github"></li></a></footer>
  </body>
</html>