summaryrefslogtreecommitdiff
path: root/jitsi.html
blob: c5cbea9b2a0d768f6798fbfaedd51baf8b5c262f (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!-- <!DOCTYPE html> -->
<html lang="en">
  <head>
    <title>Self-hosting Jitsi &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>Self-hosting Jitsi</h1></header>
    <nav></nav>
    <main>
      <!-- Intro -->
      <p>
        <i>
          Jitsi is a set of open-source projects that allows you to easily build and deploy secure video
          conferencing solutions.
        </i>
      </p>
      <p>
        Is really easy to install, and also a really good alternative to Zoom or other video conferencing software.
        You can create calls just by typing the URL, and loging-in is not necessary.
      </p>
      <p>
        In this tutorial I'm assuming you're running Devian 9 or newer on your server, although Jitsi is also
        supported out-of-the-box for Ubuntu, but that need some extra steps you can see
        <a href="https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart" target="blank">here</a
        >.
      </p>

      <h2>How to get</h2>

      <p>First of all, you'll need to make sure you have <code>apt-transport-https</code> installed, so run</p>

      <pre><code>apt update<br>apt install apt-transport-https</code></pre>

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

      <pre><code>curl https://download.jitsi.org/jitsi-key.gpg.key | sh -c 'gpg --dearmor &#62; /usr/share/keyrings/jitsi-keyring.gpg'<br><br>echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | tee /etc/apt/sources.list.d/jitsi-stable.list &#62; /dev/null</code></pre>

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

      <h2></h2>

      <h2>Setup and configure your firewall</h2>

      <p>The following ports need to be open in your firewall, to allow traffic to the Jitsi Meet server:</p>
      <ul>
        <li>443 TCP - for general access to Jitsi Meet.</li>
        <li>10000 UDP - for general network video/audio communications.</li>
        <li>3478 UDP - for quering the stun server (coturn, optional, needs config.js change to enable it).</li>
        <li>
          5349 TCP - for fallback network video/audio communications over TCP (when UDP is blocked for example),
          served by coturn.
        </li>
      </ul>
      <pre><code>ufw allow 443/tcp<br>ufw allow 10000/udp<br>ufw allow 3478/udp<br>ufw allow 5349/tcp<br>ufw enable</code></pre>

      <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 the certificate.
      </p>
      <p>
        Add the subdomain to your Nginx configuration file, wich for me is
        <code>/etc/nginx/sites-available/mywebsite</code>. Open it and add the following at the end:
      </p>

      <pre><code>server {
  server_name <strong>meet.example.com</strong> ;
  location / {
    try_files $uri $uri/ =404 ;
  }
}</code></pre>

      <p>
        Substitute <code>meet.example.com</code> accordingly, where <code>meet</code> can be any subdomain you
        want.
      </p>

      <p>Run <code>certbot</code> and reload nginx.</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>meet.example.com</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.com</strong>/privkey.pem</code> and
        <code>/etc/letsencrypt/live/<strong>meet.example.com</strong>/cert.pem</code> respectively.
      </p>

      <h3>Confirm that your installation is working</h3>

      <p>Just open a web browser and go to <code>meet.example.com</code>.</p>

      <h3>Enjoy Jitsi!</h3>

      <hr />

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

      <hr />
      <p>
        <em
          >Written by <a href="https://josefabio.com" target="blank">Jose Fabio.</a><br />Donate Monero
          <code class="crypto"
            >484RLdsXQCDGSthNatGApRPTyqcCbM3PkM97axXezEuPZppimXmwWegiF3Et4BHBgjWR7sVXuEUoAeVNpBiVznhoDLqLV7j</code
          >
          <a href="https://josefabio.com/figures/monero.jpg" class="crypto" target="blank">[QR]</a></em
        >
      </p>
    </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="pix/btc.png"
        ><li><img src="pix/btc.svg" alt="BTC" /></li></a
      ><a href="pix/xmr.png"
        ><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>