summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.footer.html4
-rw-r--r--404.html2
-rw-r--r--auth.html2
-rw-r--r--bat.html4
-rw-r--r--bitcoin.html2
-rw-r--r--calibre.html2
-rw-r--r--certbot.html2
-rw-r--r--cgi.html2
-rw-r--r--cgit.html28
-rw-r--r--coturn.html93
-rw-r--r--cron.html2
-rw-r--r--crypto.html2
-rw-r--r--dns.html2
-rw-r--r--domain.html2
-rw-r--r--donate-bitcoin.html23
-rw-r--r--donate-monero.html23
-rw-r--r--ejabberd.html188
-rw-r--r--federation.html2
-rw-r--r--gemini.html2
-rw-r--r--git.html2
-rw-r--r--gitea.html2
-rw-r--r--html.html2
-rw-r--r--html2.html2
-rw-r--r--html4.html2
-rw-r--r--i2p.html2
-rw-r--r--imgcompress.html74
-rw-r--r--index.html25
-rw-r--r--irc.html2
-rw-r--r--jitsi.html2
-rw-r--r--maintenance.html2
-rw-r--r--matrix.html4
-rw-r--r--monero.html2
-rw-r--r--nextcloud.html4
-rw-r--r--nginx.html4
-rw-r--r--openalias.html10
-rw-r--r--page-quality.html185
-rw-r--r--peertube.html5
-rw-r--r--pix/ejabberd-admin.jpgbin0 -> 22266 bytes
-rw-r--r--pix/ejabberd-login.jpgbin0 -> 18399 bytes
-rw-r--r--pix/element.svg6
-rw-r--r--pix/imgcompress-cat.pngbin0 -> 252836 bytes
-rw-r--r--pix/imgcompress-network.pngbin0 -> 59431 bytes
-rw-r--r--pix/matrix.svg48
-rw-r--r--pix/pleroma.svg2
-rw-r--r--pix/prosody.svg9
-rw-r--r--pix/webrtc.svg16
-rw-r--r--pleroma.html2
-rw-r--r--prosody.html257
-rw-r--r--rss-bridge.html2
-rw-r--r--rsync.html4
-rw-r--r--selfhosting.html2
-rw-r--r--server.html2
-rw-r--r--sshkeys.html2
-rw-r--r--standalone.html2
-rw-r--r--template.html2
-rw-r--r--tor.html24
-rw-r--r--ufw.html4
l---------[-rw-r--r--]xmpp.html193
58 files changed, 1005 insertions, 290 deletions
diff --git a/.footer.html b/.footer.html
index 2edcf80..2d33ffb 100644
--- a/.footer.html
+++ b/.footer.html
@@ -2,6 +2,6 @@
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="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>
diff --git a/404.html b/404.html
index 05cbe39..5e42dee 100644
--- a/404.html
+++ b/404.html
@@ -22,6 +22,6 @@
will feature all new pages and significant changes.
</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>
+ <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>
diff --git a/auth.html b/auth.html
index 49ee445..5bf686f 100644
--- a/auth.html
+++ b/auth.html
@@ -117,6 +117,6 @@
<strong>Contributor</strong> - <a href="https://tomfasano.co" target="_blank">tomfasano.co</a>
</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>
+ <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>
diff --git a/bat.html b/bat.html
index be0f5a2..4b67e56 100644
--- a/bat.html
+++ b/bat.html
@@ -57,7 +57,7 @@
<img src="pix/brave-02.png" alt="channel choices">
<p>
Once you select what to add, you will have to verify that you own that website/channel via various methods.
- You can add DNS settings to Epik/your registrar for a website, which is generally the most consistent way for websites.
+ You can add DNS settings to your registrar for a website, which is generally the most consistent way for websites.
</p>
<h2>Using Uphold or Gemini for payouts</h2>
<p>
@@ -87,6 +87,6 @@
Tip buttons will appear on many other social media sites, for example Github commits, projects and comments by users.
</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>
+ <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>
diff --git a/bitcoin.html b/bitcoin.html
index 81fc641..7872291 100644
--- a/bitcoin.html
+++ b/bitcoin.html
@@ -97,6 +97,6 @@
Bitcoin users will know how to scan and use them.
</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>
+ <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>
diff --git a/calibre.html b/calibre.html
index 2251917..7f4a6c6 100644
--- a/calibre.html
+++ b/calibre.html
@@ -126,6 +126,6 @@ systemctl start calibre-server</code></pre>
<li>Author: rflx &ndash; <a href="https://rflx.xyz">website</a> -- XMR: <code class=crypto>48T5XpHTXAZ5Nn8YCypA4aWn1ffQLHJkFGDArXQB6cmrP6cqLY72cu7CR2iq2MmL5Ndu3d47e5MKjGpL4prYgdrTCFAHD9c</code>
</li>
</main>
-<footer><a href="https://landchad.net">LandChad.net</a></br>Because Everyone should be an Internet LandChad.</br><li><a href="index.html"><img src="pix/chad.gif" alt="chad"></a></li><li><a href="rss.xml"><img src="pix/rss.svg" alt="RSS"></a></li><li><a href="pix/btc.png"><img src="pix/btc.svg" alt="BTC"></a></li><li><a href="pix/xmr.png"><img src="pix/xmr.svg" alt="XMR"></a></li><li><a href="https://github.com/lukesmithxyz/landchad"><img src="pix/git.svg" alt="Github"></a></footer>
+<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>
diff --git a/certbot.html b/certbot.html
index 7b5545a..72351f2 100644
--- a/certbot.html
+++ b/certbot.html
@@ -144,6 +144,6 @@ ufw allow 443</code></pre>
and many more improvements, tweaks and bonuses.
</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>
+ <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>
diff --git a/cgi.html b/cgi.html
index ef1526a..e1c210b 100644
--- a/cgi.html
+++ b/cgi.html
@@ -263,6 +263,6 @@ end</code></pre>
href="https://m-chrzan.xyz">website</a>, <a href="https://m-chrzan.xyz/donate.html">donate</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="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>
+ <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>
diff --git a/cgit.html b/cgit.html
index 2ca026d..b750a48 100644
--- a/cgit.html
+++ b/cgit.html
@@ -42,13 +42,12 @@
You should have an NGINX server running with a TLS certificate by now. Add the following configuration
to your server to pass the requests to Cgit, while serving static files directly:</p>
- <pre><code>
-server {
+ <pre><code>server {
listen 443 ssl;
listen [::]:443 ssl;
- ssl_certificate /etc/ssl/nginx/<strong>git.example.org</strong>.crt;
- ssl_certificate_key /etc/ssl/nginx/<strong>git.example.org</strong>.key;
- server_name <strong>git.example.org</strong>;
+ ssl_certificate /etc/ssl/nginx/<strong>git.example.org</strong>.crt;
+ ssl_certificate_key /etc/ssl/nginx/<strong>git.example.org</strong>.key;
+ server_name <strong>git.example.org</strong>;
root /usr/share/cgit ;
try_files $uri @cgit ;
@@ -60,8 +59,7 @@ server {
fastcgi_param QUERY_STRING $query_string;
fastcgi_pass unix:/run/fcgiwrap.socket;
}
-}
- </code></pre>
+}</code></pre>
<p>Then get NGINX to reload your configuration.</p>
@@ -70,8 +68,7 @@ server {
To change this, we need to configure Cgit to our liking, by editing <code>/etc/cgitrc</code>.
</p>
- <pre><code>
-css=/cgit.css
+ <pre><code>css=/cgit.css
logo=/cgit.svg
virtual-root=/
@@ -80,8 +77,7 @@ root-title=<strong>Chad's git server</strong>
root-desc=<strong>A web interface to LandChad's git repositories, powered by Cgit</strong>
# The location where git repos are stored on the server
-scan-path=/srv/git/
- </code></pre>
+scan-path=/srv/git/</code></pre>
<p>This configuration assumes you followed the <a href="/git">git hosting guide</a> and store your repositories
on the <code>/srv/git/</code> directory.</p>
@@ -96,9 +92,7 @@ scan-path=/srv/git/
user
to give it your name:</p>
- <pre><code>
-usermod -c "<strong>Your Name</strong>" git
- </code></pre>
+ <pre><code>usermod -c "<strong>Your Name</strong>" git</code></pre>
<h3>Changing the repository description</h3>
@@ -110,8 +104,7 @@ usermod -c "<strong>Your Name</strong>" git
to determine the idle time. Inside your repository, create a file <code>hooks/post-receive</code> and add
the following contents:</p>
- <pre><code>
-#!/bin/sh
+ <pre><code>#!/bin/sh
agefile="$(git rev-parse --git-dir)"/info/web/last-modified
@@ -119,8 +112,7 @@ mkdir -p "$(dirname "$agefile")" &&
git for-each-ref \
--sort=-authordate --count=1 \
--format='%(authordate:iso8601)' \
- >"$agefile"
- </code></pre>
+ >"$agefile"</code></pre>
<p>And give it execution permissions with:</p>
diff --git a/coturn.html b/coturn.html
new file mode 100644
index 0000000..6bbd89e
--- /dev/null
+++ b/coturn.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Coturn &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>Coturn</h1></header>
+ <nav></nav>
+ <main>
+
+ <img class=titleimg src="pix/webrtc.svg" alt="WebRTC logo">
+
+ <p><a href="https://github.com/coturn/coturn">Coturn</a> is a libre <strong>STUN</strong> and <strong>TURN</strong> server software that allows users of chat protcols (Such as <a href="xmpp.html">XMPP</a> and <a href="matrix.html">Matrix</a>) to perform WebRTC <strong>voice and video calls</strong> despite them being behind NATs.</p>
+
+ <p>Almost every self-hosted voice and video conferencing program (such as <a href="jitsi.html">Jitsi</a> and <a href="nextcloud.html">Nextcloud's</a> Talk app) will <strong>require</strong> Coturn or some other equivalent turnserver to function properly.</p>
+
+ <h2>Installation</h2>
+
+ <p>Coturn is available in the Debian repositories:</p>
+
+ <pre><code>apt install coturn</code></pre>
+
+ <h2>Configuration</h2>
+
+ <h3>Base configuration</h3>
+
+ <p>Coturn's configuration file is <code>/etc/turnserver.conf</code>. There are a few aspects that need to be changed in order to get a fully-functioning turnserver.</p>
+
+ <p>Here is an example of some sane defaults:</p>
+
+ <pre><code>server-name=<strong>turn.example.org</strong>
+realm=<strong>turn.example.org</strong>
+listening-ip=<strong>your_public_ip</strong>
+
+listening-port=3478
+min-port=10000
+max-port=20000
+
+## The "verbose" option is useful for debugging issues
+verbose</code></pre>
+
+ <h3>Authentication</h3>
+
+ <p>There are two options for authentication on a turnserver:</p>
+ <ol>
+ <li><strong>Usernames</strong> and <strong>passwords,</strong></li>
+ <li>or <strong>authentication secrets.</strong></li>
+ </ol>
+
+ <p>Depending on what self-hosted service is being used in conjunction with Coturn, you may need one or the other of these two options.</p>
+
+ <h4>Usernames and Passwords</h4>
+
+ <p>To utilize username and password authentication with Coturn, add the following configuration in <code>turnserver.conf</code>:</p>
+
+ <pre><code>lt-cred-mech
+user=<strong>username</strong>:<strong>password</strong></code></pre>
+
+ <h4>Authentication Secrets</h4>
+
+ <p>To utilize authentication secrets with Coturn, add the following configuration in <code>turnserver.conf</code>:</p>
+
+ <pre><code>use-auth-secret
+static-auth-secret=<strong>your_auth_secret</strong></code></pre>
+
+ <h2>TURNS (TLS Encryption)</h2>
+
+ <p>Some self-hosted services (such as Matrix and XMPP) may support the use of <strong>TURNS:</strong> An encrypted version of TURN, which allows for WebRTC connections to be established with the use of an encrypted TLS tunnel, just like HTTPS allows for encrypted viewing of websites.</p>
+
+ <p>To utilize TURNS, certificates need to be declared for <strong>turn.example.org</strong> in <code>turnserver.conf</code>:
+ <pre><code>cert=/etc/letsencrypt/live/<strong>turn.example.org</strong>/fullchain.pem
+pkey=/etc/letsencrypt/live/<strong>turn.example.org</strong>/privkey.pem</pre></code>
+
+ <h2>Starting Coturn</h2>
+
+ <p>After all configuration changes are complete, Coturn can be started with its systemd daemon:</p>
+
+ <pre><code>systemctl restart coturn</code></pre>
+
+ <p>Congratulations! You've successfully setup a Coturn server!</p>
+
+ <hr>
+ <p><em>Written by <a href="https://denshi.org">Denshi.</a> Donate Monero <a href="https://denshi.org/donate.html">here</a> <a href="https://denshi.org/images/monero.jpg">[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>
diff --git a/cron.html b/cron.html
index 645dc03..d3c2c1d 100644
--- a/cron.html
+++ b/cron.html
@@ -169,6 +169,6 @@
</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>
+ <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>
diff --git a/crypto.html b/crypto.html
index b3c314f..9302e56 100644
--- a/crypto.html
+++ b/crypto.html
@@ -82,5 +82,5 @@
</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="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>
+ <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>
diff --git a/dns.html b/dns.html
index 0130f6d..9dc09c4 100644
--- a/dns.html
+++ b/dns.html
@@ -124,6 +124,6 @@
<span class=prev><a href="server.html">Previous: Get a server.</a></span>
<span class=next><a href="nginx.html">Next: Setting up the Webserver</a></span>
</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>
+ <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>
diff --git a/domain.html b/domain.html
index 429c790..a246c2e 100644
--- a/domain.html
+++ b/domain.html
@@ -141,6 +141,6 @@
<span class=next><a href="server.html">Next: Get a Server.</a></span>
</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>
+ <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>
diff --git a/donate-bitcoin.html b/donate-bitcoin.html
new file mode 100644
index 0000000..a5bc901
--- /dev/null
+++ b/donate-bitcoin.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Donate Bitcoin &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>Donate Bitcoin</h1></header>
+ <nav></nav>
+ <main>
+ <p>Donate Bitcoin to LandChad.net at the address below:</p>
+ <p><code>bc1q78m8m73pxdxl6fsup3ywexhjuq3rtclhmxdr5h</code></p>
+ <p>You may also simply type in <code>landchad.net</code> in most wallets and it will resolve to this address as well.</p>
+ <p>Here is a QR code for the address:</p>
+ <img style="max-height:250px" src="pix/btc.png" alt="Bitcoin QR Code">
+ </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>
diff --git a/donate-monero.html b/donate-monero.html
new file mode 100644
index 0000000..6e0ae35
--- /dev/null
+++ b/donate-monero.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Donate Monero &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>Donate Monero</h1></header>
+ <nav></nav>
+ <main>
+ <p>Donate Monero to LandChad.net at the address below:</p>
+ <p><code>84RXmrsE7ffCe1ADprxLMHRpmyhZuWYScDR4YghE8pFRFSyLtiZFYwD6EPijVzD3aZiEpg57MfHEr1pGJNPXyJgENMnWrSh</code></p>
+ <p>You may also simply type in <code>landchad.net</code> in most wallets and it will resolve to this address as well.</p>
+ <p>Here is a QR code for the address:</p>
+ <img style="max-height:250px" src="pix/xmr.png" alt="Monero QR Code">
+ </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>
diff --git a/ejabberd.html b/ejabberd.html
new file mode 100644
index 0000000..910db7b
--- /dev/null
+++ b/ejabberd.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>ejabberd (an XMPP Server) &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>ejabberd (an XMPP Server)</h1></header>
+ <nav></nav>
+ <main>
+
+ <img class=titleimg src="pix/xmpp.svg" alt="XMPP logo and icon">
+
+ <p>
+ <a href="https://ejabberd.im">Ejabberd</a> is a server for the XMPP protocol written in Erlang.
+ It's easier to configure and setup than <a href="xmpp.html">Prosody</a> due to having most of its modules built-in and pre-configured by default.
+ </p>
+
+ <h2>Prerequisites</h2>
+ <h3>Subdomains</h3>
+ <p>
+ Ejabberd presumes that you have already created all the <strong>required and optional subdomains</strong> for its operation prior to running it.
+ </p>
+
+ <p>Depending on the usecase, you may need any or all of the following domains for XMPP functionality:<p>
+ <ul>
+ <li><strong>example.org</strong> - Your XMPP hostname</li>
+ <li><strong>conference.example.org</strong> - For Multi User Chats (MUCs)</li>
+ <li><strong>upload.example.org</strong> - For file upload support</li>
+ <li><strong>proxy.example.org</strong> - For SOCKS5 proxy support</li>
+ <li><strong>pubsub.example.org</strong> - For publish-subscribe support</li>
+ </ul>
+
+ <p>This guide will assume <strong>all these subdomains</strong> have been created.</p>
+
+ <h2>Installation</h2>
+ <p>Ejabberd is available in the Debian repositories:</p>
+ <pre><code>apt install ejabberd</code></pre>
+
+ <h2>Configuration</h2>
+ <p>The ejabberd server is configured in <code>/etc/ejabberd/ejabberd.yml</code>. Changes are only applied by restarting the ejabberd daemon in systemd:</p>
+ <pre><code>systemctl restart ejabberd</code></pre>
+
+ <h3>Hostnames</h3>
+ <p>The <strong>XMPP hostname</strong> is specified in the <code>hosts</code> section of <code>ejabberd.yml</code>:</p>
+
+ <pre><code>hosts:
+ - <strong>example.org</strong></code></pre>
+
+ <h3>Certificates</h3>
+ <p>Unlike <a href="https://prosody.im">Prosody,</a> ejabberd doesn't come equipped with a script that can automatically copy over the relevant certificates to a directory where the ejabberd user can read them.</p>
+
+ <p>One way of organizing certificates for ejabberd is to have them stored in <code>/etc/ejabberd/certs</code>, with each domain having a separate directory for both the fullchain cert and private key.</p>
+
+ <p>Using certbot, this process can be easily automated with this one-liner:</p>
+ <pre><code>$DOMAIN=<strong>subdomain.example.org</strong>
+certbot --nginx -d $DOMAIN certonly; mkdir /etc/ejabberd/certs/$DOMAIN; cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/ejabberd/certs/$DOMAIN; cp /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/ejabberd/certs/$DOMAIN</code></pre>
+
+ <p>This should be ran with your XMPP hostname <strong>(example.org)</strong> and repeated for all your desired subdomains.</p>
+
+ <p>To enable the use of all these certificates in ejabberd, the following configuration is necessary:</p>
+
+ <pre><code>certfiles:
+ - "/etc/ejabberd/certs/*/*.pem"</code></pre>
+
+ <h3>Admin User</h3>
+
+ <p>The <strong>admin user</strong> can be specified in <code>ejabberd.yml</code> under the <code>acl</code> section:</p>
+
+ <pre><code>acl:
+ admin:
+ user: <strong>admin</strong></code></pre>
+
+ <p>This would make <strong>admin@example.org</strong> the user with administrator privileges.</p>
+
+ <h3>Message Archives</h3>
+
+ <p>The ejabberd server supports keeping archives of messages through its <code>mod_mam</code> module. This can be enabled by uncommenting the following lines:</p>
+
+ <pre><code>mod_mam:
+ assume_mam_usage: true
+ default: always</code></pre>
+
+ <h2>Database</h2>
+ <h3>Why use a database?</h3>
+ <p>In the <code>mod_mam</code> section of the ejabberd config file, the following message is in comments:</p>
+
+ <pre><code>mod_mam:
+ ## Mnesia is limited to 2GB, better to use an <strong>SQL backend</strong>
+ ## For small servers SQLite is a good fit and is very easy
+ ## to configure. Uncomment this when you have SQL configured:
+ ## <strong>db_type: sql</strong></code></pre>
+
+ <p>As these comments imply, an <strong>SQL backend</strong> is strongly recommended if you wish to use your ejabberd server for anything more than just testing. Ejabberd supports <strong>MySQL, SQLite</strong> and <strong>PostgreSQL.</strong></p>
+
+ <p>While all of those are suitable choices, the best database system to use is PostgreSQL. It's the same database backend used by <a href="peertube.html">PeerTube</a> and <a href="matrix.html">Matrix,</a> making it the most convenient option if you're already running those too.</p>
+
+ <h3>Installing PostgreSQL</h3>
+
+ <p>PostgreSQL is available in the Debian repositories:</p>
+ <pre><code>apt install postgresql</code></pre>
+
+ <p>Start the PostgreSQL daemon to begin using it:</p>
+ <pre><code>systemctl start postgresql</code></pre>
+
+ <h3>Creating the Database</h3>
+ <p>To create the database, first create a PostgreSQL user for ejabberd:</p>
+
+ <pre><code>su -c "createuser --pwprompt ejabberd" postgres</code></pre>
+
+ <p>Then, create the database and make <code>ejabberd</code> its owner:</p>
+
+ <pre><code>su -c "psql -c 'CREATE DATABASE ejabberd OWNER ejabberd;'" postgres</code></pre>
+
+ <h3>Importing Database Scheme</h3>
+
+ <p>Ejabberd doesn't create the database scheme by default; It has to be imported into the database before use.</p>
+
+ <pre><code>su -c "curl -s https://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sql | psql ejabberd" postgres</code></pre>
+
+ <h3>Configuring ejabberd to use PostgreSQL</h3>
+ <p>Finally, add the following configuration to <code>ejabberd.yml</code>:</p>
+
+ <pre><code>sql_type: pgsql
+sql_server: "localhost"
+sql_database: <strong>"ejabberd"</strong>
+sql_username: <strong>"ejabberd"</strong>
+sql_password: <strong>"psql_password"</strong></code></pre>
+
+ <p>Once you've ensured your database name, username and password are all correct, enable SQL storage for <code>mod_mam</code>:</p>
+
+ <pre><code>mod_mam:
+ ## (Other parameters)
+ db_type: <strong>sql</strong></code></pre>
+
+ <h2>Using ejabberd</h2>
+ <h3>Registering the Admin User</h3>
+ <p>To begin using ejabberd, firstly start the ejabberd daemon:</p>
+
+ <pre><code>systemctl restart ejabberd</code></pre>
+
+ <p>Then, using <code>ejabberdctl</code> as the ejabberd user, register the admin user which is set in <code>ejabberd.yml</code>:</p>
+
+ <pre><code>su -c "ejabberdctl register <strong>admin example.org password</strong>" ejabberd</code></pre>
+
+ <p>This will create the user <strong>admin@example.org.</strong></p>
+
+ <h3>Using the Web Interface</h3>
+
+ <p>By default, ejabberd has a web interface accessible from <strong>http://example.org:5280/admin</strong>. When accessing this interface, you will be prompted for the admin credentials:</p>
+
+ <img src="pix/ejabberd-login.jpg" height="260px">
+
+ <p>After signing in with the admin credentials, you will be able to manage your ejabberd server from this web interface:</p>
+
+ <img src="pix/ejabberd-admin.jpg" height="300px">
+
+ <h2>TURN & STUN for Calls</h2>
+
+ <p>Ejabberd supports the <strong>TURN</strong> and <strong>STUN</strong> protocols to allow internet users behind NATs to perform voice and video calls with other XMPP users.</p>
+
+ <p>Firstly, setup a TURN and STUN server with <a href="coturn.html">Coturn,</a> using an <strong>authentication secret.</strong></p>
+
+ <p>Then, edit <code>mod_stun_disco</code> to contain the appropriate information for your turnserver:</p>
+
+ <pre><code> mod_stun_disco:
+ secret: <strong>"your_auth_secret"</strong>
+ services:
+ -
+ host: <strong>turn.example.org</strong>
+ type: stun
+ -
+ host: <strong>turn.example.org</strong>
+ type: turn</code></pre>
+
+<p>And with that, you've successfully setup your ejabberd XMPP server!</p>
+
+ <hr>
+ <p><em>Written by <a href="https://denshi.org">Denshi.</a> Donate Monero <a href="https://denshi.org/donate.html">here</a> <a href="https://denshi.org/images/monero.jpg">[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>
diff --git a/federation.html b/federation.html
index e60614a..0d4ec94 100644
--- a/federation.html
+++ b/federation.html
@@ -66,6 +66,6 @@
This is also used by other software like <a href="https://joinpeertube.org/">PeerTube</a> (which is a self-hosted YouTube-equivalent), <a href="https://friendi.ca/">Friendica</a> (Facebook equivalent)
</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>
+ <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>
diff --git a/gemini.html b/gemini.html
index 6bfbe75..923a454 100644
--- a/gemini.html
+++ b/gemini.html
@@ -98,6 +98,6 @@ systemctl start agate</code></pre>
<p><em>Written by <a href="https://nihar.page">nihar.page</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>
+ <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>
diff --git a/git.html b/git.html
index 67ea0a3..c304eb9 100644
--- a/git.html
+++ b/git.html
@@ -185,6 +185,6 @@ mkdir git</code></pre>
href="https://m-chrzan.xyz">website</a>, <a href="https://m-chrzan.xyz/donate.html">donate</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="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>
+ <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>
diff --git a/gitea.html b/gitea.html
index 2b9b588..647d603 100644
--- a/gitea.html
+++ b/gitea.html
@@ -104,6 +104,6 @@ server {
<li><a href="https://phire.cc">phire</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="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>
+ <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>
diff --git a/html.html b/html.html
index 6ff3f73..2b5beee 100644
--- a/html.html
+++ b/html.html
@@ -195,6 +195,6 @@ We can make bold, italic, underlined or struck through text with more HTML tags:
<span class=next><a href="html2.html">Next: Images and Links in HTML</a></span>
</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>
+ <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>
diff --git a/html2.html b/html2.html
index 4d5873a..e263676 100644
--- a/html2.html
+++ b/html2.html
@@ -22,6 +22,6 @@
&lt;<++>&gt;
<span class=next><a href="<++>">Next:<++></a></span>
</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>
+ <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>
diff --git a/html4.html b/html4.html
index 32c5639..5653ddc 100644
--- a/html4.html
+++ b/html4.html
@@ -94,6 +94,6 @@
<span class=next><a href="css.html">Next: Styling with CSS</a></span>
</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>
+ <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>
diff --git a/i2p.html b/i2p.html
index bff7b38..775bea1 100644
--- a/i2p.html
+++ b/i2p.html
@@ -96,6 +96,6 @@ index index.html ;
<p><strong>Contributor</strong> - <a href="https://qorg11.net" target="_blank">qorg11</a></p>
</main>
- <footer><a href="https://landchad.net">LandChad.net</a></br>Because Everyone should be an Internet LandChad.</br><li><a href="index.html"><img src="pix/chad.gif" alt="chad"></a></li><li><a href="rss.xml"><img src="pix/rss.svg" alt="RSS"></a></li><li><a href="pix/btc.png"><img src="pix/btc.svg" alt="BTC"></a></li><li><a href="pix/xmr.png"><img src="pix/xmr.svg" alt="XMR"></a></li><li><a href="https://github.com/lukesmithxyz/landchad"><img src="pix/git.svg" alt="Github"></a></footer>
+ <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>
diff --git a/imgcompress.html b/imgcompress.html
new file mode 100644
index 0000000..320392d
--- /dev/null
+++ b/imgcompress.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Image compression &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'>
+<style>
+th, td {
+ padding: 0.3em;
+}
+</style>
+ </head>
+ <body>
+ <header><h1>Image compression</h1></header>
+ <nav></nav>
+ <main>
+ <p>
+ Image files will usually have the most impact on the
+ speed of your websites (aside from Ad/tracker scripts).
+ Learn to slim down your images using the ubiquitous
+ <em>ImageMagick</em> to make your websites faster on
+ slow internet connections.
+ </p>
+ <img src="pix/imgcompress-network.png" alt="Image network speed">
+ <p>
+ For the examples, I decided to use
+ <a href="https://commons.wikimedia.org/wiki/File:Tabby_cat_with_blue_eyes-3336579.jpg">this</a>
+ public domain image.
+ </p>
+ <img src="pix/imgcompress-cat.png" style="width: 50%;" alt="Compressed image of a cat">
+ <p> There are many ways to decrease image size using
+ ImageMagick, the simplest is to use the
+ <code>-quality</code> option, which will compress the
+ image without changing the resolution. This option
+ takes the value you want to compress by (between 1 and
+ 100, the lower the value, the lower the file size). For
+ example:</p>
+ <pre><code>convert in.jpg -quality 50 out.jpg</code></pre>
+ <p>
+ Compressing the example image above results in the
+ following file size changes:
+ </p>
+ <center>
+ <table style="border: solid;">
+ <tr><th>Quality</th><th>Size</th></tr>
+ <tr><td>Original</td><td>2.1M</td></tr>
+ <tr><td>90</td><td>1.7M</td></tr>
+ <tr><td>80</td><td>844K</td></tr>
+ <tr><td>70</td><td>588K</td></tr>
+ <tr><td>60</td><td>448K</td></tr>
+ <tr><td>50</td><td>368K</td></tr>
+ <tr><td>40</td><td>308K</td></tr>
+ <tr><td>30</td><td>248K</td></tr>
+ <tr><td>20</td><td>184K</td></tr>
+ <tr><td>10</td><td>116K</td></tr>
+ </table>
+ </center>
+ <p>
+ Due to the images high resolution, it is usable in this
+ website even when highly compressed (30% quality, still
+ looks decent in my opinion).
+ </p>
+ <h2>Contribution</h2>
+ <ul>
+ <li><a href="https://na20a.neocities.org/">Musse</a></li>
+ <li>Monero: <code class="crypto">83is3y69Xv4fkFsTpZhw5c3bfxtimupfgTdpERHM1WtMNAwSqFjTCJm3VabyBKXKnL873dWPmqj4bRcgkm9oCktgQrzmhHd</code></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="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>
diff --git a/index.html b/index.html
index f7bb287..090f204 100644
--- a/index.html
+++ b/index.html
@@ -68,8 +68,9 @@ img { border: none ;}
<p>Host your own services, social media and more.</p>
<dl class=ll>
- <dt><a href="xmpp.html"><img src="pix/xmpp.svg" alt="xmpp logo"> XMPP</a></dt><dd>Minimalist and federated chat server</dd>
- <dt><a href="pleroma.html">Pleroma</a></dt><dd>A federated Twitter-like microblogging site</dd>
+ <dt><a href="prosody.html"><img src="pix/prosody.svg" alt="prosody logo"> Prosody</a></dt><dd>Minimalist and federated chat server</dd>
+ <dt><a href="ejabberd.html"><img src="pix/xmpp.svg" alt="xmpp logo"> ejabberd</a></dt><dd>Another option for an XMPP server</dd>
+ <dt><a href="pleroma.html"><img src="pix/pleroma.svg" alt="Pleroma logo"> Pleroma</a></dt><dd>A federated Twitter-like microblogging site</dd>
<dt><a href="peertube.html"><img src="pix/peertube.svg" alt="peertube logo"> PeerTube</a></dt><dd>A federated YouTube-like video site</dd>
<dt><a href="nextcloud.html"><img src="pix/nextcloud.svg"> Nextcloud</a></dt><dd>Setting up a Nextcloud Instance (file hosting and more)</dd>
<dt><a href="jitsi.html"><img src="pix/jitsi.svg" alt="Jitsi logo"> Jitsi</a></dt><dd>Free and easy video conferencing</dd>
@@ -78,7 +79,8 @@ img { border: none ;}
<dt><a href="gitea.html"><img src="pix/gitea.svg"> Gitea</a></dt><dd>A fully-featured git and issue tracking site</dd>
<dt><a href="radicale.html"><img src="pix/radicale.svg"> Radicale</a></dt><dd>A small but powerful calDav and cardDav server</dd>
<dt><a href="irc.html"><img src="pix/irc.svg"> IRC</a></dt><dd>Installing and managing a classic internet relay chat server</dd>
- <dt><a href="rss-bridge.html">RSS Bridge</a></dt><dd>Creating RSS feeds for social media sites</dd>
+ <dt><a href="rss-bridge.html"> RSS Bridge</a></dt><dd>Creating RSS feeds for social media sites</dd>
+ <dt><a href="matrix.html"><img src="pix/element.svg" alt="Element logo"> Matrix</a></dt><dd>An easy-to-use, free and federated chat and channel server.</dd>
<dt><a href="calibre.html"><img src="pix/calibre.png"> Calibre</a></dt><dd>A library server</dd>
<dt><a href="i2p.html"><img src="pix/itoopie.svg" alt="Itoopie">I2P</a></dt><dd>Host your site on a private and peer-to-peer internet layer.</dd>
<dt><a href="tor.html"><img src="pix/tor.svg">Tor</a></dt><dd>Host your site on private onion-routing.</dd>
@@ -100,31 +102,20 @@ img { border: none ;}
Subscribe to our <a href="rss.xml"><img src="pix/rss.svg">RSS feed</a> for updates.
</p>
- <h3>Articles and Tutorials in Progress...</h3>
-
- <ul>
- <li>Full HTML tutorial</li>
- <li>Full CSS tutorial</li>
- <li>RSS feeds</li>
- <li>Matrix (federated chat)</li>
- <li>SearX (search engine)</li>
- </ul>
-
<h3>On the look out for...</h3>
<p>
There are other articles not currently under construction which we would like to add the LandChad.net.
If you have experience with any of these, you may submit an article for review on <a href="https://github.com/lukesmithxyz/landchad">the Github</a>.
- Please include directions for Debian 10 as default.
+ Please include directions for Debian 11 as default.
Abstain from using containerization (Docker, etc.).
Attempt to follow the same settings as other articles here.
</p>
<ul>
- <li><a href="https://btcpayserver.org/">BTCPay</a></li>
+ <li><a href="https://btcpayserver.org/">BTCPay</a> (Docker install permitted only in this case.)</li>
<li>Email webclients</li>
<li>Simple static site generators</li>
- <li><a href="https://www.ejabberd.im/">XMPP ejabberd</a></li>
<li><a href="https://movim.eu/">Movim for XMPP</a></li>
<li>Nitter</li>
</ul>
@@ -167,6 +158,6 @@ img { border: none ;}
<!--TAGLIST-->
</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> -->
+ <!-- <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>
diff --git a/irc.html b/irc.html
index 2b5f704..2d156f8 100644
--- a/irc.html
+++ b/irc.html
@@ -796,6 +796,6 @@ systemctl start ergo</code></pre>
<p><i>Written by <a href="https://termer.net/">Termer</a></i></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>
+ <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>
diff --git a/jitsi.html b/jitsi.html
index 948b592..3fd42e0 100644
--- a/jitsi.html
+++ b/jitsi.html
@@ -125,6 +125,6 @@ ufw enable</code></pre>
</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="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>
+ <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>
diff --git a/maintenance.html b/maintenance.html
index 579c375..328f0a8 100644
--- a/maintenance.html
+++ b/maintenance.html
@@ -120,6 +120,6 @@ nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man
<p>
</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>
+ <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>
diff --git a/matrix.html b/matrix.html
index d9e59bb..ed0126d 100644
--- a/matrix.html
+++ b/matrix.html
@@ -59,7 +59,7 @@ apt install matrix-synapse-py3</code></pre>
}</code></pre>
<aside>
- <p>Note the <code>client_max_body_size</code> variable. By default, Nginx caps the size of files it can transfer. We increase that to 50M if needed by Matrix. (Note however that both Matrix and Nginx have seperate settings for this and to raise it to something much larger, you will have to increase the value in both congfiguration files.)
+ <p>Note the <code>client_max_body_size</code> variable. By default, Nginx caps the size of files it can transfer. We increase that to 50M if needed by Matrix. (Note however that both Matrix and Nginx have seperate settings for this and to raise it to something much larger, you will have to increase the value in both configuration files.)
</p>
</aside>
@@ -126,6 +126,6 @@ systemctl reload nginx</code></pre>
</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>
+ <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>
diff --git a/monero.html b/monero.html
index 498a28e..1cc086f 100644
--- a/monero.html
+++ b/monero.html
@@ -106,6 +106,6 @@
</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>
+ <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>
diff --git a/nextcloud.html b/nextcloud.html
index fbbe605..274d854 100644
--- a/nextcloud.html
+++ b/nextcloud.html
@@ -57,7 +57,7 @@ server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <strong>example.org</strong>;
- ssl_certificate /etc/letsencrypt/live/<strong>example.org</strong>/cert.pem ;
+ ssl_certificate /etc/letsencrypt/live/<strong>example.org</strong>/fullchain.pem ;
ssl_certificate_key /etc/letsencrypt/live/<strong>example.org</strong>/privkey.pem ;
root /var/www;
@@ -202,6 +202,6 @@ systemctl start mariadb</code></pre>
<p><em>Written by <a href="https://github.com/MattMadness">Matthew "Madness" Evan</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>
+ <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>
diff --git a/nginx.html b/nginx.html
index 0cca5b8..d0a4cfc 100644
--- a/nginx.html
+++ b/nginx.html
@@ -48,7 +48,7 @@
</p>
</aside>
- <h2>Installing the Webserver: Ngninx</h2>
+ <h2>Installing the Webserver: Nginx</h2>
<p>
If the program runs without an error, <code>ssh</code> has now logged you into your server.
@@ -244,6 +244,6 @@ The next brief step is securing encrypted connections to your website.
<span class=next><a href="certbot.html">Next: Enabling Encrypted Connections.</a></span>
</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>
+ <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>
diff --git a/openalias.html b/openalias.html
index dd11629..b78bdfd 100644
--- a/openalias.html
+++ b/openalias.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang=en>
<head>
- <title>Open Alias &ndash; LandChad.net</title>
+ <title>OpenAlias &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'>
@@ -9,7 +9,7 @@
<link rel='alternate' type='application/rss+xml' title='Land Chad RSS' href='/rss.xml'>
</head>
<body>
- <header><h1>Open Alias</h1></header>
+ <header><h1>OpenAlias</h1></header>
<nav></nav>
<main>
@@ -47,9 +47,7 @@
<h2>Let's do it.</h2>
- <p>
- Open up your domain registar (<a href="https://www.epik.com/?affid=we2ro7sa6">Epik</a>, if you have religiously followed our tutorials) and open up your DNS settings for the website you would like to add.
- </p>
+ <p>Open up your domain registar and open up your DNS settings for the website you would like to add.</p>
<p>
Open the <strong>TXT record</strong> section.
@@ -118,6 +116,6 @@
</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>
+ <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>
diff --git a/page-quality.html b/page-quality.html
new file mode 100644
index 0000000..c3f26d1
--- /dev/null
+++ b/page-quality.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Page Quality &ndash; example.org</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>Page Quality</h1></header>
+ <nav></nav>
+ <main>
+ <p>
+ After you've deployed your website, you may want to consider improving its performance, accessibility, and search-engine optimization (SEO).
+ Doing so can help make your website more user-friendly and increase its page rank in search results.
+ Luckily, Google provides a <a href="https://web.dev/measure" target="_blank" rel="noopener noreferrer">measurement tool</a> to help you improve these aspects.
+ Start by entering your website's URL and click the <em>Run Audit</em> button (it will take 5-10 seconds to generate the report).
+ </p>
+
+ <p>
+ Once the report has finished, you'll be greeted by a score for four different categories: <em>Performance</em>, <em>Accessibility</em>, <em>Best Practices</em>, and <em>SEO</em>.
+ A lot of the tests listed are self-explanatory, and Google provides you with articles to help you pass them.
+ Below are some easy ways to improve your scores, some specific to the nginx configuration used in the <a href="nginx.html">landchad website tutorial.</a>
+ </p>
+
+ <h2>Performance</h2>
+
+ <h3>Serving static assets with an efficient cache policy</h3>
+
+ <p>
+ Serving your files with an efficient cache policy will allow the user's browser to cache files such as pictures and CSS so that the browser doesn't need to fetch these files each time the page is visited.
+ It's very easy to set this up in nginx.
+ Just paste the following within the server block of your website's configuration file:
+ </p>
+
+ <pre><code># Media: images, icons, video, audio, HTC
+location ~* \.(?:jpg|jpeg|gif|png|ico|svg|webp)$ {
+ expires 1M;
+ access_log off;
+ # max-age must be in seconds
+ add_header Cache-Control "max-age=2629746, public";
+}
+
+# CSS and Javascript
+location ~* \.(?:css|js)$ {
+ expires 1y;
+ access_log off;
+ add_header Cache-Control "max-age=31556952, public";
+}</code></pre>
+
+ <p>
+ You can add more types of file extensions (mp3, mp4, ogg) as you see fit.
+ </p>
+
+ <p>
+ If you're changing your CSS files a lot, caching could keep repeat users from getting the most up-to-date stylesheet.
+ To combat this, you can version your stylesheets like so:
+ </p>
+
+ <pre><code>&lt;link rel="stylesheet" type="text/css" href="style.css<strong>?v=1.0.0</strong>"&gt;</code></pre>
+
+ <p>
+ Just increase the version number whenever you update your stylesheet, and the browser will re-update its cache.
+ </p>
+
+ <h3>Enable text compression</h3>
+
+ <p>
+ Another easy addition to your websites configuration file.
+ Enabling text compression is easy and will save bandwidth for users.
+ Simply paste the following within the server block of your website's configuration file:
+ </p>
+
+<pre><code>gzip on;
+gzip_min_length 1100;
+gzip_buffers 4 32k;
+gzip_types text/plain application/x-javascript text/xml text/css;
+gzip_vary on;
+</code></pre>
+
+ <p>
+ After reloading nginx, you can test if compression is working by opening your browsers developer tools and going to the network tab.
+ Refresh your website with the network tab, click on the item with your URL and look at the response headers.
+ You should see <code>Content-Encoding: gzip</code> as one of the headers displayed.
+ </p>
+
+ <h3>Properly sizing images</h3>
+
+ <p>
+ If you've put images on your webpage, you've most definitely gotten this warning.
+ To pass this audit, you'll need to scale your images down using a tool like gimp or imagemagick to a size appropriate for your website.
+ It doesn't make much sense to serve a high-res image for images that are rendered much smaller on a webpage.
+ </p>
+
+ <p>
+ Once you've scaled your image down, you can use a tool like <code>cwebp</code> to convert your images into the .webp format, a format specifically created for serving bandwidth concious images.
+ </p>
+
+ <p>
+ First, you'll have to install the webp package:
+ </p>
+
+ <pre><code>apt install webp</code></pre>
+
+ <p>
+ Now you can easily convert your images to webp (keep in mind that it's much more effective to first size your images appropriately before this).
+ Using the below command, you can specify the quality of the photo with the <code>q</code> option.
+ I typically shoot for a quality in the range of 60-80, depending on the image and how large it will be displayed on the webpage.
+ </p>
+
+ <pre><code>cwebp -q 80 your-photo.png -o your-photo.webp</code></pre>
+
+ <p>
+ You can now check the difference in size of the images using <code>ls</code>.
+ </p>
+
+ <pre><code>ls -lh your-photo*</code></pre>
+
+ <p>
+ After utilizing webp images, the audit typically goes away, but if you didn't scale your image properly before hand, it may still linger.
+ </p>
+
+ <h2>Accessibility</h2>
+
+ <h3>Image elements do not have [alt] attributes</h3>
+
+ <p>
+ It may seem silly to add <code>alt</code> attributes to images, but it helps screen readers convey images to users and can help page rank as a result.
+ The <code>alt</code> attribute should simply describe the image being displayed.
+ </p>
+
+ <pre><code>&lt;img src="img/cabin.webp" <strong>alt="A cabin nestled between pine trees"</strong>&gt;</code></pre>
+
+ <h2>SEO</h2>
+
+ <h3>Document does not have a meta description</h3>
+
+ <p>
+ Adding meta descriptions to your webpage allow for web-crawlers and bots to easily determine what content your website contains.
+ Just like on other online platforms, you can give your webpage a long list of keywords to help increase the chance someone stumbles upon your site from a search engine.
+ You don't need to add all of the below meta tags to pass the audit, only add what's necessary.
+ </p>
+
+ <pre><code>
+// Instructions for web scrapers
+&lt;meta name="robots" content="index, follow"&gt;
+
+&lt;meta name="description" content="<strong>your website description</strong>>"&gt;
+&lt;meta name="keywords" content="<strong>your, keywords, here</strong>"&gt;
+&lt;meta name="author" content="<strong>your name</strong>>"&gt;
+
+// Facebook specific standard, but many websites use this so it has become almost standard to include
+&lt;meta property="og:site_name" content="<strong>Site Name</strong>"&gt;
+&lt;meta name="twitter:domain" property="twitter:domain" content="<strong>example.org</strong>"&gt;
+&lt;meta name="og:title" property="og:title" content="<strong>Site Name</strong>"&gt;
+&lt;meta property="og:description" content="<strong>your website description</strong>"&gt;
+&lt;meta name="twitter:description" property="twitter:description" content="<strong>your website description</strong>"&gt;
+&lt;meta name="og:image" content="<strong>https://link-to-an-image-that-represents-your-site</strong>"&gt;
+
+// below is for twitter sharing previews, you can test this at:
+// cards-dev.twitter.com
+&lt;meta property="twitter:card" content="<strong>https://link-to-an-image-that-represents-your-site</strong>"&gt;
+&lt;meta name="twitter:image:src" property="twitter:image:src" content="<strong>https://link-to-an-image-that-represents-your-site</strong>"&gt;
+&lt;meta name="twitter:image" property="twitter:image" content="<strong>https://link-to-an-image-that-represents-your-site</strong>"&gt;
+&lt;meta name="og:image:alt" property="og:image:alt" content="<strong>alt text for your image</strong>>"&gt;
+
+&lt;meta property="og:url" content="<strong>example.org</strong>"&gt;
+&lt;meta property="og:type" content="website"&gt;
+
+// If you have accounts on twitter or facebook that are relevant to your site
+&lt;meta property="fb:admins" content="<strong>facebook group</strong>" &gt;
+&lt;meta name="twitter:site" property="twitter:site" content="<strong>@yourTwitterHandle</strong>"&gt;
+&lt;meta name="twitter:creator" property="twitter:creator" content="<strong>@yourTwitterHandle</strong>>"&gt;
+ </code></pre>
+ <hr>
+
+ <p>
+ <em>Written by <a href="https://mccor.xyz">Jacob.</a> Donate Monero <a href="https://mccor.xyz">here.</a></em>
+ </p>
+ </main>
+ <footer><a href="https://example.org">example.org</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>
diff --git a/peertube.html b/peertube.html
index 7939636..1921821 100644
--- a/peertube.html
+++ b/peertube.html
@@ -215,9 +215,8 @@ NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-passw
</p>
<hr>
- <p><em>Written by <a href="https://denshi.live">Denshi.</a> Donate Monero <a href="https://denshi.live/donate.html">here</a> <a href="https://denshi.live/images/monero.png">[QR]</a></em></p>
-
+ <p><em>Written by <a href="https://denshi.org">Denshi.</a> Donate Monero <a href="https://denshi.org/donate.html">here</a> <a href="https://denshi.org/images/monero.jpg">[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>
+ <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>
diff --git a/pix/ejabberd-admin.jpg b/pix/ejabberd-admin.jpg
new file mode 100644
index 0000000..9bbd4ed
--- /dev/null
+++ b/pix/ejabberd-admin.jpg
Binary files differ
diff --git a/pix/ejabberd-login.jpg b/pix/ejabberd-login.jpg
new file mode 100644
index 0000000..8904aaf
--- /dev/null
+++ b/pix/ejabberd-login.jpg
Binary files differ
diff --git a/pix/element.svg b/pix/element.svg
new file mode 100644
index 0000000..d29423e
--- /dev/null
+++ b/pix/element.svg
@@ -0,0 +1,6 @@
+<svg width="54" height="54" viewBox="0 0 54 54" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M19.4414 3.24C19.4414 1.4506 20.892 0 22.6814 0C34.6108 0 44.2814 9.67065 44.2814 21.6C44.2814 23.3894 42.8308 24.84 41.0414 24.84C39.252 24.84 37.8014 23.3894 37.8014 21.6C37.8014 13.2494 31.032 6.48 22.6814 6.48C20.892 6.48 19.4414 5.0294 19.4414 3.24Z" fill="#0DBD8B"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M34.5586 50.76C34.5586 52.5494 33.108 54 31.3186 54C19.3893 54 9.71861 44.3294 9.71861 32.4C9.71861 30.6106 11.1692 29.16 12.9586 29.16C14.748 29.16 16.1986 30.6106 16.1986 32.4C16.1986 40.7505 22.9681 47.52 31.3186 47.52C33.108 47.52 34.5586 48.9706 34.5586 50.76Z" fill="#0DBD8B"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.24 34.5601C1.4506 34.5601 -6.34076e-08 33.1095 -1.41625e-07 31.3201C-6.63074e-07 19.3907 9.67065 9.72007 21.6 9.72007C23.3894 9.72007 24.84 11.1707 24.84 12.9601C24.84 14.7495 23.3894 16.2001 21.6 16.2001C13.2495 16.2001 6.48 22.9695 6.48 31.3201C6.48 33.1095 5.0294 34.5601 3.24 34.5601Z" fill="#0DBD8B"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.76 19.4399C52.5494 19.4399 54 20.8905 54 22.6799C54 34.6093 44.3294 44.2799 32.4 44.2799C30.6106 44.2799 29.16 42.8293 29.16 41.0399C29.16 39.2505 30.6106 37.7999 32.4 37.7999C40.7505 37.7999 47.52 31.0305 47.52 22.6799C47.52 20.8905 48.9706 19.4399 50.76 19.4399Z" fill="#0DBD8B"/>
+</svg> \ No newline at end of file
diff --git a/pix/imgcompress-cat.png b/pix/imgcompress-cat.png
new file mode 100644
index 0000000..7243ae8
--- /dev/null
+++ b/pix/imgcompress-cat.png
Binary files differ
diff --git a/pix/imgcompress-network.png b/pix/imgcompress-network.png
new file mode 100644
index 0000000..09bc401
--- /dev/null
+++ b/pix/imgcompress-network.png
Binary files differ
diff --git a/pix/matrix.svg b/pix/matrix.svg
new file mode 100644
index 0000000..9a8b8dd
--- /dev/null
+++ b/pix/matrix.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="793.322px" height="340.809px" viewBox="0 0 793.322 340.809" fill="#fff" enable-background="new 0 0 793.322 340.809"
+ xml:space="preserve">
+<path d="M10.875,9.711v321.386h23.13v7.711H1.999V2.001h32.006v7.71H10.875z"/>
+<path d="M99.988,111.595v16.264h0.463c4.338-6.191,9.563-10.998,15.684-14.406c6.117-3.402,13.129-5.11,21.027-5.11
+ c7.588,0,14.521,1.475,20.793,4.415c6.274,2.945,11.038,8.131,14.291,15.567c3.56-5.265,8.4-9.913,14.521-13.94
+ c6.117-4.025,13.358-6.042,21.724-6.042c6.351,0,12.234,0.776,17.66,2.325c5.418,1.549,10.065,4.027,13.938,7.434
+ c3.869,3.41,6.889,7.863,9.062,13.357c2.167,5.504,3.253,12.122,3.253,19.869v80.385H219.41v-68.074
+ c0-4.025-0.154-7.82-0.465-11.385c-0.313-3.56-1.161-6.656-2.555-9.293c-1.395-2.631-3.45-4.724-6.157-6.274
+ c-2.711-1.543-6.391-2.322-11.037-2.322s-8.403,0.896-11.269,2.671c-2.868,1.784-5.112,4.109-6.737,6.971
+ c-1.626,2.869-2.711,6.12-3.252,9.762c-0.545,3.638-0.814,7.318-0.814,11.035v66.91h-32.991v-67.375c0-3.562-0.081-7.087-0.23-10.57
+ c-0.158-3.487-0.814-6.7-1.978-9.645c-1.162-2.94-3.099-5.304-5.809-7.088c-2.711-1.775-6.699-2.671-11.965-2.671
+ c-1.551,0-3.603,0.349-6.156,1.048c-2.556,0.697-5.036,2.016-7.435,3.949c-2.404,1.938-4.454,4.726-6.158,8.363
+ c-1.705,3.642-2.556,8.402-2.556,14.287v69.701h-32.99V111.595H99.988z"/>
+<path d="M273.544,129.255c3.405-5.113,7.744-9.215,13.012-12.316c5.264-3.097,11.186-5.303,17.771-6.621
+ c6.582-1.315,13.205-1.976,19.865-1.976c6.042,0,12.158,0.428,18.354,1.277c6.195,0.855,11.85,2.522,16.962,4.997
+ c5.111,2.477,9.292,5.926,12.546,10.338c3.253,4.414,4.879,10.262,4.879,17.543v62.494c0,5.428,0.31,10.611,0.931,15.567
+ c0.615,4.959,1.701,8.676,3.251,11.153H347.66c-0.621-1.86-1.126-3.755-1.511-5.693c-0.39-1.933-0.661-3.908-0.813-5.923
+ c-5.267,5.422-11.465,9.217-18.585,11.386c-7.127,2.163-14.407,3.251-21.842,3.251c-5.733,0-11.077-0.698-16.033-2.09
+ c-4.958-1.395-9.293-3.562-13.01-6.51c-3.718-2.938-6.622-6.656-8.713-11.147s-3.138-9.84-3.138-16.033
+ c0-6.813,1.199-12.43,3.604-16.84c2.399-4.417,5.495-7.939,9.295-10.575c3.793-2.632,8.129-4.607,13.01-5.923
+ c4.878-1.315,9.795-2.358,14.752-3.137c4.957-0.772,9.835-1.393,14.638-1.857c4.801-0.466,9.062-1.164,12.779-2.093
+ c3.718-0.929,6.658-2.282,8.829-4.065c2.165-1.781,3.172-4.375,3.02-7.785c0-3.56-0.58-6.389-1.742-8.479
+ c-1.161-2.09-2.711-3.719-4.646-4.88c-1.937-1.161-4.183-1.936-6.737-2.325c-2.557-0.382-5.309-0.58-8.248-0.58
+ c-6.506,0-11.617,1.395-15.335,4.183c-3.716,2.788-5.889,7.437-6.506,13.94h-32.991
+ C268.199,140.794,270.132,134.363,273.544,129.255z M338.713,175.838c-2.09,0.696-4.337,1.275-6.736,1.741
+ c-2.402,0.465-4.918,0.853-7.551,1.161c-2.635,0.313-5.268,0.698-7.899,1.163c-2.48,0.461-4.919,1.086-7.317,1.857
+ c-2.404,0.779-4.495,1.822-6.274,3.138c-1.784,1.317-3.216,2.985-4.3,4.994c-1.085,2.014-1.626,4.571-1.626,7.668
+ c0,2.94,0.541,5.422,1.626,7.431c1.084,2.017,2.558,3.604,4.416,4.765s4.025,1.976,6.507,2.438c2.475,0.466,5.031,0.698,7.665,0.698
+ c6.505,0,11.537-1.082,15.103-3.253c3.561-2.166,6.192-4.762,7.899-7.785c1.702-3.019,2.749-6.072,3.137-9.174
+ c0.384-3.097,0.58-5.576,0.58-7.434v-12.316C342.547,174.173,340.805,175.14,338.713,175.838z"/>
+<path d="M463.825,111.595v22.072h-24.161v59.479c0,5.573,0.928,9.292,2.788,11.149c1.856,1.859,5.576,2.788,11.152,2.788
+ c1.859,0,3.638-0.076,5.343-0.232c1.703-0.152,3.33-0.388,4.878-0.696v25.557c-2.788,0.465-5.887,0.773-9.293,0.931
+ c-3.407,0.149-6.737,0.23-9.99,0.23c-5.111,0-9.953-0.35-14.521-1.048c-4.571-0.695-8.597-2.047-12.081-4.063
+ c-3.486-2.011-6.236-4.88-8.248-8.597c-2.016-3.714-3.021-8.595-3.021-14.639v-70.859h-19.98v-22.072h19.98V75.583h32.992v36.012
+ H463.825z"/>
+<path d="M510.988,111.595V133.9h0.465c1.546-3.72,3.636-7.163,6.272-10.341c2.634-3.172,5.652-5.885,9.06-8.131
+ c3.405-2.242,7.047-3.985,10.923-5.228c3.868-1.237,7.898-1.859,12.081-1.859c2.168,0,4.566,0.39,7.202,1.163v30.67
+ c-1.551-0.312-3.41-0.584-5.576-0.814c-2.17-0.233-4.26-0.35-6.274-0.35c-6.041,0-11.152,1.01-15.332,3.021
+ c-4.182,2.014-7.55,4.761-10.107,8.247c-2.555,3.487-4.379,7.55-5.462,12.198c-1.083,4.645-1.625,9.682-1.625,15.102v54.133h-32.991
+ V111.595H510.988z"/>
+<path d="M570.93,93.007V65.824h32.994v27.183H570.93z M603.924,111.595v120.117H570.93V111.595H603.924z"/>
+<path d="M621.115,111.595h37.637l21.144,31.365l20.911-31.365h36.476l-39.496,56.226l44.377,63.892h-37.64l-25.093-37.87
+ l-25.094,37.87h-36.938l43.213-63.193L621.115,111.595z"/>
+<path d="M782.443,331.097V9.711h-23.13v-7.71h32.008v336.807h-32.008v-7.711H782.443z"/>
+</svg>
diff --git a/pix/pleroma.svg b/pix/pleroma.svg
new file mode 100644
index 0000000..c92da7c
--- /dev/null
+++ b/pix/pleroma.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.1014 0 0 .1014 -9.0749 -9.0242)"><g fill="#fba457" stroke-width="0"><path transform="matrix(2.6094 0 0 2.6094 89.5 89)" d="m33.916 0a9.9641 9.9641 0 0 0-9.9648 9.9648v118.04h31.809v-128h-21.844z"/><path transform="matrix(2.6094 0 0 2.6094 89.5 89)" d="m71.855 0v64h22.229a9.9641 9.9641 0 0 0 9.9648-9.9648v-54.035h-32.193z"/><path transform="matrix(2.6094 0 0 2.6094 89.5 89)" d="m71.855 96.191v31.809h22.229a9.9641 9.9641 0 0 0 9.9648-9.9648v-21.844h-32.193z"/></g></g></svg>
diff --git a/pix/prosody.svg b/pix/prosody.svg
new file mode 100644
index 0000000..9edae9b
--- /dev/null
+++ b/pix/prosody.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="64" viewBox="0 0 480 480" width="64">
+ <g>
+ <title>Prosody Logo</title>
+ <rect fill="#6197df" height="220" id="svg_1" rx="60" ry="60" width="220" x="10" y="10"/>
+ <rect fill="#f29b00" height="220" id="svg_2" rx="60" ry="60" width="220" x="10" y="240"/>
+ <rect fill="#f29b00" height="220" id="svg_3" rx="60" ry="60" width="220" x="240" y="10"/>
+ <rect fill="#6197df" height="220" id="svg_4" rx="60" ry="60" width="220" x="240" y="240"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/pix/webrtc.svg b/pix/webrtc.svg
new file mode 100644
index 0000000..582a506
--- /dev/null
+++ b/pix/webrtc.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="256px" height="249px" viewBox="0 0 256 249" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
+ <g>
+ <path d="M142.076578,191.086817 C142.076578,159.280656 116.294759,133.494615 84.4885969,133.494615 C52.6782136,133.494615 26.896394,159.280656 26.896394,191.086817 C26.896394,222.892979 52.6782136,248.67902 84.4885969,248.67902 C116.294759,248.67902 142.076578,222.892979 142.076578,191.086817" fill="#FF6600" transform="translate(84.486486, 191.086817) scale(1, -1) translate(-84.486486, -191.086817) "></path>
+ <path d="M255.979703,110.454356 C255.979703,78.652416 230.197884,52.862153 198.391722,52.862153 C166.581339,52.862153 140.799519,78.652416 140.799519,110.454356 C140.799519,142.260518 166.581339,168.050781 198.391722,168.050781 C230.197884,168.050781 255.979703,142.260518 255.979703,110.454356" fill="#FFCC00" transform="translate(198.389611, 110.456467) scale(1, -1) translate(-198.389611, -110.456467) "></path>
+ <path d="M115.200498,109.176452 C115.200498,77.3745125 89.4186786,51.5842495 57.6082953,51.5842495 C25.8063553,51.5842495 0.0203140271,77.3745125 0.0203140271,109.176452 C0.0203140271,140.982614 25.8063553,166.772877 57.6082953,166.772877 C89.4186786,166.772877 115.200498,140.982614 115.200498,109.176452" fill="#0089CC" transform="translate(57.610406, 109.178563) scale(1, -1) translate(-57.610406, -109.178563) "></path>
+ <path d="M230.385749,191.086817 C230.385749,159.280656 204.603929,133.494615 172.789324,133.494615 C140.987384,133.494615 115.201343,159.280656 115.201343,191.086817 C115.201343,222.892979 140.987384,248.67902 172.789324,248.67902 C204.603929,248.67902 230.385749,222.892979 230.385749,191.086817" fill="#009939" transform="translate(172.793546, 191.086817) scale(1, -1) translate(-172.793546, -191.086817) "></path>
+ <path d="M185.592001,57.9843213 C185.592001,26.1781597 159.805959,0.392118349 127.999798,0.392118349 C96.1936359,0.392118349 70.4075946,26.1781597 70.4075946,57.9843213 C70.4075946,89.790483 96.1936359,115.576524 127.999798,115.576524 C159.805959,115.576524 185.592001,89.790483 185.592001,57.9843213" fill="#BF0000" transform="translate(127.999798, 57.984321) scale(1, -1) translate(-127.999798, -57.984321) "></path>
+ <path d="M140.798675,57.9788331 C140.798675,56.76721 140.904217,55.580917 140.980207,54.3861807 C166.525612,60.2796505 185.590734,83.1189569 185.590734,110.454356 C185.590734,111.665979 185.485192,112.856494 185.409202,114.05123 C159.863796,108.153539 140.798675,85.3142322 140.798675,57.9788331" fill="#FC0007" transform="translate(163.194704, 84.218705) scale(1, -1) translate(-163.194704, -84.218705) "></path>
+ <path d="M148.39686,162.570614 C158.322038,145.219495 176.973434,133.495881 198.394255,133.495881 C207.124696,133.495881 215.369643,135.496959 222.787141,138.975626 C212.866185,156.326744 194.214789,168.050358 172.789746,168.050358 C164.059305,168.050358 155.814358,166.049281 148.39686,162.570614" fill="#1CD306" transform="translate(185.592001, 150.773120) scale(1, -1) translate(-185.592001, -150.773120) "></path>
+ <path d="M115.200498,191.086817 C115.200498,177.015947 120.258075,164.139813 128.642338,154.138646 C137.018157,164.139813 142.075734,177.015947 142.075734,191.086817 C142.075734,205.157688 137.018157,218.033822 128.642338,228.034989 C120.258075,218.033822 115.200498,205.157688 115.200498,191.086817" fill="#0F7504" transform="translate(128.638116, 191.086817) scale(1, -1) translate(-128.638116, -191.086817) "></path>
+ <path d="M34.806984,138.212768 C41.8023132,135.190043 49.5026635,133.497148 57.6082953,133.497148 C78.818032,133.497148 97.2963396,144.992791 107.293286,162.061056 C100.297956,165.083782 92.5933844,166.772455 84.4919743,166.772455 C63.2822376,166.772455 44.7997083,155.276811 34.806984,138.212768" fill="#0C5E87" transform="translate(71.050135, 150.134801) scale(1, -1) translate(-71.050135, -150.134801) "></path>
+ <path d="M70.6545631,114.036032 C70.5194692,112.431792 70.4054838,110.819109 70.4054838,109.176875 C70.4054838,81.862584 89.4410536,59.044386 114.956907,53.1255861 C115.087779,54.7298257 115.201765,56.3425087 115.201765,57.9805218 C115.201765,85.2948125 96.1704167,108.121454 70.6545631,114.036032" fill="#6B0001" transform="translate(92.803624, 83.580809) scale(1, -1) translate(-92.803624, -83.580809) "></path>
+ <path d="M76.0304545,111.503866 L67.0213825,111.503866 C59.0677312,111.503866 52.6001125,117.950377 52.6001125,125.88292 L52.6001125,207.428953 C52.6001125,215.361496 59.0677312,221.812228 67.0213825,221.812228 L179.989405,221.812228 C187.943056,221.812228 194.406453,215.361496 194.406453,207.428953 L194.406453,125.88292 C194.406453,117.950377 187.943056,111.503866 179.989405,111.503866 L141.50454,111.503866 L64.2899534,73.6522544 L76.0304545,111.503866 L76.0304545,111.503866 Z" fill="#FFFFFF" transform="translate(123.503283, 147.732241) scale(1, -1) translate(-123.503283, -147.732241) "></path>
+ </g>
+</svg> \ No newline at end of file
diff --git a/pleroma.html b/pleroma.html
index b7e149e..755692a 100644
--- a/pleroma.html
+++ b/pleroma.html
@@ -164,6 +164,6 @@ If you run into any issues then <a href="https://docs-develop.pleroma.social/bac
</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="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>
+ <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>
diff --git a/prosody.html b/prosody.html
new file mode 100644
index 0000000..e5ca89d
--- /dev/null
+++ b/prosody.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Prosody (an XMPP Server) &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>Prosody (an XMPP Server)</h1></header>
+ <nav></nav>
+ <main>
+
+ <img class=titleimg src="pix/xmpp.svg" alt="XMPP Logo and Icon">
+
+ <p>XMPP is a fantastically simple protocol that's usually used as a messenger.
+ It's highly extensible,
+ better than IRC,
+ lighter and more decentralized and Matrix
+ and Telegram and normie social media can't hold a candle to it.
+ </p>
+
+ <p>
+ XMPP is so decentralized and extensible that there are many <em>different</em> XMPP servers.
+ Here, let's set up an <a href="https://prosody.im/">Prosody</a> XMPP server.
+ </p>
+
+ <h2>Installation</h2>
+
+ <p>
+ Prosody is in the Debian repositories, so we can easily install it on our server with the following command:
+ </p>
+
+ <pre><code>apt install prosody</code></pre>
+
+
+<h2>Configuration</h2>
+
+<p>
+The Prosody configuration file is in <code>/etc/prosody/prosody.cfg.lua</code>.
+To set it all up, we will be changing several things.
+</p>
+
+<h3>Setting Admins</h3>
+
+<p>
+Let's go ahead and set who our admin(s) will be.
+Find the line that says <code>admins = { }</code> and to this we can specify one or more server admins.
+</p>
+
+<pre><code># To add one admin:
+admins = { "<strong>chad@example.org</strong>" }
+
+# We can add more than one by separating them by commas. (This file is written in Lua.)
+admins = { "<strong>chad@example.org</strong>", "<strong>chadmin@example.org</strong>" }</code></pre>
+
+<p>
+Note that we have not created these accounts yet, we will do this <a href=#user>below</a>.
+</p>
+
+<h3>Set the Server URL</h3>
+
+<p>
+Find the line <code>VirtualHost "localhost"</code> and replace <code>localhost</code> with your domain.
+In our case, we will have <code>VirtualHost "example.org"</code>
+</p>
+
+<h3>Multi-User Chats</h3>
+
+<p>
+Most people will probably want the ability to have chats with more than two users.
+This is easily enough to enable.
+In the config file, add the following:
+</p>
+
+<pre><code>Component "<strong>chat.example.org</strong>" "muc"
+ modules_enabled = { "muc_mam" }
+ restrict_room_creation = "admin"</code></pre>
+
+<p>
+On the first line, you must have a separate subdomain for your multi-user chats.
+I use the <code>chat.</code> subdomain, but some use <code>muc.</code>.
+Anything if possible.
+</p>
+
+<p>
+The second line is important because it prevents non-admins from creating and squatting rooms on your server.
+The only situation where you might not want that is if you indend to open a general public chat system for people you don't know.
+</p>
+
+<aside>
+<p>
+Read more about the <code>muc</code> plugin on the Prosody documentation page <a href="https://prosody.im/doc/modules/mod_muc">here</a>.
+</p>
+</aside>
+
+<h3>Enabling chat histories</h3>
+
+<p>
+By default, Prosody will send out messages received only to the first available clients.
+That means that if you have your desktop client turned off and your cell phone receives a message, it will <em>not</em> be available to the desktop client when you start it.
+</p>
+
+<p>While this may be preferred in some cases, enable the MAM module (Message Archive Management) to have the server hold on messages and sync them to all clients.</p>
+
+<p>
+Within the <code>modules_enabled</code> block, you can uncomment the <code>mam</code> line to enable it.
+You can see other settings for this module <a href="https://prosody.im/doc/modules/mod_mam">here</a> like, for example, how long a server should hold on to message histories for synching.
+</p>
+
+<p>
+Note also that Prosody comes with the <code>carbons</code> activated module by default, which is related. This will send received messages to <em>all</em> active clients (your phone and desktop), although it will not save messages like MAM for clients not online or to be added later.
+</p>
+
+<h3>File sharing</h3>
+
+<p>With this we can bring XMPP to the level of other popular instant messaging applications like Matrix and whatsapp. It is extremely easy to setup. This part is optional, but it can make XMPP more normie-friendly if you plan on moving family members and friends over to XMPP.</p>
+
+<p>First we need to install extra prosody modules. Run the following command: </p>
+<pre><code>apt install prosody-modules</code></pre>
+
+<p>Then we can add the following line to you prosody config file to enable file uploads: </p>
+<pre><code>Component "<strong>uploads.example.org</strong>" "http_upload"</code></pre>
+
+<p>As you will notice, you need another subdomain for this. We will add an ssl certficate for this later.</p>
+
+<p>You will also need to go back to <code>modules_enabled</code> and uncomment the <code>http_files</code> module. This is used to actually serve the files to users.</p>
+
+<p>And the last part of the setup is to enable the built in proxy server. This helps with file transfers for devices behind a NAT, and unless you are using XMPP in a LAN, you probably need this. Enable the proxy by adding the following line to the config: </p>
+
+<pre><code>Component "<strong>proxy.example.org</strong>" "proxy65"</code></pre>
+
+<p>As you can see, another subdomain is needed. We will add ssl certificates for this later.</p>
+
+<p>At this point, file sharing is now setup and ready to be used. Although there are some concerns that should be addressed.</p>
+
+<p>A big concern with file sharing is large files, seeing as all files shared over XMPP will be stored on your server. This can become a problem when many (and large) files are being shared. We can put a cap on large files by adding the following line to our config:</p>
+<pre><code>http_upload_file_size_limit = 20971520</code></pre>
+
+<p>This puts a 20MB cap on all files being shared. The value is specified in bytes. You can also specify after how long files should be deleted by adding the following line:</p>
+<pre><code>http_upload_expire_after = 60 * 60 * 24 * 7</code></pre>
+
+<p>The value is specified in seconds. The above line will make prosody delete files after a week.</p>
+
+<p>If it is for some reason neccessary, you can also manually invoke expiry with the following command:</p>
+
+<pre><code>prosodyctl mod_http_upload expire</code></pre>
+
+<h3>Other things to check</h3>
+
+<p>Check the config file for other settings you might want to change.
+For example, if you want to run a general public XMPP server, you can allow anyone to create an account by changing <code>allow_registration</code> to <code>true</code>.
+</p>
+
+<p>Another thing you can do is enable the <code>csi_simple</code> module, which will add some optimizations for mobile devices.</p>
+
+<p>Another thing worth noting is the <code>archive_expires_after = "1w"</code> line. This specifies after how long message archives will be deleted.</p>
+
+<p>Also the <code>smacks</code> module helps a lot with slow internet connections.</p>
+
+<h2>Certificates</h2>
+
+<p>
+Obviously, we want to have client-to-server and server-to-server encryption.
+Nowadays, use can use Certbot to generate certificates and use a convenient command below <code>prosodyctl</code> to import them.
+</p>
+
+<p>
+<strong>If you have multi-user chat enabled, be sure to get a certificate for that subdomain as well.</strong>
+Include the <code>--nginx</code> option assuming you have an Nginx server running.
+</p>
+
+<pre><code>certbot -d <strong>chat.example.org</strong> --nginx</code></pre>
+
+<p>
+<strong>If you have file sharing enabled, be sure to get a certificate for those subdomains as well.</strong>
+</p>
+<pre><code>certbot -d <strong>uploads.example.org</strong> --nginx
+certbot -d <strong>proxy.example.org</strong> --nginx
+</code></pre>
+
+<p>
+Once you have the certificates for encryption, run the following to import them into Prosody.
+</p>
+
+<pre><code>prosodyctl --root cert import /etc/letsencrypt/live/</code></pre>
+
+<p>
+Note that you might get an error that a certificate has not been found if your <code>muc</code> subdomain and your main domain share a certificate.
+It should still work, this is just notifying you that no specific certificate for the subdomain.
+</p>
+
+<p><strong>Note:</strong> The above command will need to be rerun when certificates are renewed.
+You may want to create a <a href="cron.html">cronjob</a> to have this done automatically.</p>
+
+
+
+<h2 id=user>Creating users/admins manually</h2>
+
+<p>
+Let's manually create the admin user we prepared for above.
+Note that you can indeed do this in your XMPP client if you have not disabled registration, but this is how it is done on the command line:
+</p>
+
+<pre><code>prosodyctl adduser <strong>chad@example.org</strong></code></pre>
+
+<p>This will prompt you to create a password as well.</p>
+
+
+<h2>Make changes active</h2>
+
+<p>
+With any system service, use <code>systemctl reload</code> or <code>systemctl restart</code> to make the new settings active:
+</p>
+
+<pre><code>systemctl restart prosody</code></pre>
+
+<h2>Using your Server!</h2>
+
+<p>
+Once your server is set up, you just need an XMPP client to use your new and secure chat system.
+</p>
+
+<ul>
+ <li>GNU/Linux: <a href="https://dino.im/">Dino</a> or <a href="https://gajim.org/">Gajim</a></li>
+ <li>Windows: <a href="https://gajim.org/">Gajim</a> also runs on Windows.</li>
+ <li>Android: <a href="https://conversations.im/">Conversations.im</a> or <a href="https://snikket.org/">snikket</a></li>
+ <li>Mac/iOS: <a href="https://monal.im/">Monal IM</a> or <a href="https://siskin.im/">Siskin</a> for iOS alone</li>
+ <li>command-line (GNU/Linux, MacOS, Windows): <a href="https://profanity-im.github.io/">Profanity</a></li>
+ <li><a href="https://xmpp.org/software/clients.html">See a more complete list kept by XMPP</a></li>
+</ul>
+
+<p>
+Install whichever of these clients you want on your computer or phone and you can log into your new XMPP server with the account you made.
+Note that if you enabled public registration, anyone can create an account on your server through one of these clients.
+</p>
+
+<h3>Account addresses</h3>
+
+<p>
+XMPP account addressed look just like email addresses: <code><strong>username@example.org</strong></code>.
+You can message any account on any XMPP server on the internet with that format.
+</p>
+
+<h3>Note on MUCs (multi-user chats)</h3>
+
+<p>
+Remember that MUCs are kept on a separate subdomain that we created and should've gotten a certificate for above, for example, <code><strong>chat.example.org</strong></code>.
+Chatrooms are created and referred to in the following format: <code><strong>#chatroomname@chat.example.org</strong></code>.
+</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="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>
diff --git a/rss-bridge.html b/rss-bridge.html
index 59f51c0..3fea0ff 100644
--- a/rss-bridge.html
+++ b/rss-bridge.html
@@ -93,6 +93,6 @@ systemctl reload nginx
</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="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>
+ <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>
diff --git a/rsync.html b/rsync.html
index a02d17f..965ddbc 100644
--- a/rsync.html
+++ b/rsync.html
@@ -48,8 +48,8 @@
<p>You may just as easily download files and directories from your server with rsync:</p>
<pre><code>rsync -rtvzP <strong>root@example.org:/path/to/file</strong> <strong>/path/to/file</strong></code></pre>
<h2 id="contribution">Contribution</h2>
-<ul><li>el3ctr0lyte: <a href="https://github.com/el3ctr0lyte">github</a>, XMR: <code class=crypto>86DBJdiG83ZDea6kJgsbVN5tMae5ScfuhJ3PihEMTHatCrGEw2gctyUB92V2fz4R4YhwRaQeAGL5M4gPRXvVvtkULJi4ayk</code></li><li>Substantial revisions by <a href="https://lukesmith.xyz">Luke</a></li></ul>
+<a href="https://lukesmith.xyz">Luke</a>
</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>
+<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>
diff --git a/selfhosting.html b/selfhosting.html
index 60afbf7..d4596fd 100644
--- a/selfhosting.html
+++ b/selfhosting.html
@@ -115,6 +115,6 @@
<hr>
<p><em>Written by <a href="https://github.com/hidde-j">hiddej</a></em>
</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>
+ <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>
diff --git a/server.html b/server.html
index aaf007f..fb5d6d5 100644
--- a/server.html
+++ b/server.html
@@ -141,6 +141,6 @@
There's a low chance of their whole system collapsing or something, but I say it's a good idea to be hyper-precautious.
</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>
+ <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>
diff --git a/sshkeys.html b/sshkeys.html
index 33aabe0..dc0160f 100644
--- a/sshkeys.html
+++ b/sshkeys.html
@@ -167,6 +167,6 @@ UsePAM <strong>no</strong></code></pre>
</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>
+ <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>
diff --git a/standalone.html b/standalone.html
index 2336b2f..c9204d8 100644
--- a/standalone.html
+++ b/standalone.html
@@ -27,6 +27,6 @@ systemctl start nginx</code></pre>
<p>The reason we deactivate Nginx is that it uses the ports that Certbot will want to bind to, and thus we must temporarily turn Nginx off to let Certbot use those ports. (What it actually does is spin up a dummy webserver that doesn't need to think about the Nginx configuration.)</p>
<p>This is just a little note of something that might confuse people, but the three commands above should suffice. If your site is still managed by Nginx, it should still be able to renew with simple <code>certbot renew --nginx</code> without a problem.</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>
+ <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>
diff --git a/template.html b/template.html
index 576995d..b7485fc 100644
--- a/template.html
+++ b/template.html
@@ -15,6 +15,6 @@
<++>
<span class=next><a href="<++>">Next:<++></a></span>
</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>
+ <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>
diff --git a/tor.html b/tor.html
index 87c34ac..594c70c 100644
--- a/tor.html
+++ b/tor.html
@@ -22,19 +22,21 @@
<h3>Installing Tor</h3>
- <p>Firstly we need to add the Tor repos to our system to get the latest version of Tor:</p>
+ <p>First, we need to ensure that our CPU architecture is supported. Ensure that it is either amd64, arm64, or i386:</p>
+ <pre><code>dpkg --print-architecture</code></pre>
+
+ <p>We need to <a href="https://support.torproject.org/apt/tor-deb-repo/">add the Tor repos to our system</a> to get the latest version of Tor:</p>
<pre><code>apt install -y apt-transport-https gpg
-echo "deb https://deb.torproject.org/torproject.org buster main
-deb-src https://deb.torproject.org/torproject.org buster main" > /etc/apt/sources.list.d/tor.list</code></pre>
+echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main
+deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" > /etc/apt/sources.list.d/tor.list</code></pre>
- <p>Then we need to add the gpg keys to our keyring:</p>
+ <p>Then we need to add the GPG keys to our keyring:</p>
- <pre><code>curl -s https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
-gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -</code></pre>
+ <pre><code>curl -s https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor > /usr/share/keyrings/tor-archive-keyring.gpg</code></pre>
- <p>Now update and install Tor:</p>
+ <p>Now install Tor:</p>
- <pre><code>apt update
+ <pre><code>apt update
apt install tor deb.torproject.org-keyring</code></pre>
<h3>Enabling Tor</h3>
@@ -56,8 +58,8 @@ HiddenServicePort 80 127.0.0.1:80</code></pre>
<p>If the next command outputs <q>active</q> in green you're golden!</p>
<pre><code> systemctl status tor</code></pre>
-
- <p>Now your server is on the dark web. The following command will give you your onion address:</p>
+
+ <p>Now your server is on the dark web. The following command will give you your onion address:</p>
<pre><code> cat /var/lib/tor/hidden_service/hostname</code></pre>
<h2>Adding the Nginx Config</h2>
@@ -104,6 +106,6 @@ apt install tor</code></pre>
<p><strong>Contributor</strong> - <a href="https://tomfasano.co" target="_blank">tomfasano.co</a></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>
+ <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>
diff --git a/ufw.html b/ufw.html
index 61c77a1..721be4d 100644
--- a/ufw.html
+++ b/ufw.html
@@ -59,7 +59,7 @@ ufw enable</code></pre>
</aside>
<p>
- With the firewall enabled and allowing only SSH in, all other ports are prortected from incoming requests.
+ With the firewall enabled and allowing only SSH in, all other ports are protected from incoming requests.
To view all your rules, run:
</p>
@@ -188,6 +188,6 @@ ufw status verbose</code></pre>
<strong>Contributor</strong> - <a href="https://shunter.xyz">shunter.xyz</a>
</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>
+ <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>
diff --git a/xmpp.html b/xmpp.html
index 71fdbd4..0796663 100644..120000
--- a/xmpp.html
+++ b/xmpp.html
@@ -1,192 +1 @@
-<!DOCTYPE html>
-<html lang=en>
- <head>
- <title>XMPP Server (Prosody) &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>XMPP Server (Prosody)</h1></header>
- <nav></nav>
- <main>
-
- <img class=titleimg src="pix/xmpp.svg" alt="XMPP Logo and Icon">
-
- <p>XMPP is a fantastically simple protocol that's usually used as a messenger.
- It's highly extensible,
- better than IRC,
- lighter and more decentralized and Matrix
- and Telegram and normie social media can't hold a candle to it.
- </p>
-
- <p>
- XMPP is so decentralized and extensible that there are many <em>different</em> XMPP servers.
- Here, let's set up an <a href="https://prosody.im/">Prosody</a> XMPP server.
- </p>
-
- <h2>Installation</h2>
-
- <p>
- Prosody is in the Debian repositories, so we can easily install it on our server with the following command:
- </p>
-
- <pre><code>apt install prosody</code></pre>
-
-
-<h2>Configuration</h2>
-
-<p>
-The Prosody configuration file is in <code>/etc/prosody/prosody.cfg.lua</code>.
-To set it all up, we will be changing several things.
-</p>
-
-<h3>Setting Admins</h3>
-
-<p>
-Let's go ahead and set who our admin(s) will be.
-Find the line that says <code>admins = { }</code> and to this we can specify one or more server admins.
-</p>
-
-<pre><code># To add one admin:
-admins = { "<strong>chad@example.org</strong>" }
-
-# We can add more than one by separating them by commas. (This file is written in Lua.)
-admins = { "<strong>chad@example.org</strong>", "<strong>chadmin@example.org</strong>" }</code></pre>
-
-<p>
-Note that we have not created these accounts yet, we will do this <a href=#user>below</a>.
-</p>
-
-<h3>Set the Server URL</h3>
-
-<p>
-Find the line <code>VirtualHost "localhost"</code> and replace <code>localhost</code> with your domain.
-In our case, we will have <code>VirtualHost "example.org"</code>
-</p>
-
-<h3>Multi-User Chats</h3>
-
-<p>
-Most people will probably want the ability to have chats with more than two users.
-This is easily enough to enable.
-In the config file, add the following:
-</p>
-
-<pre><code>Component "<strong>chat.example.org</strong>" "muc"
- modules_enabled = { "muc_mam" }
- restrict_room_creation = "admin"</code></pre>
-
-<p>
-On the first line, you must have a separate subdomain for your multi-user chats.
-I use the <code>chat.</code> subdomain, but some use <code>muc.</code>.
-Anything if possible.
-</p>
-
-<p>
-The second line is important because it prevents non-admins from creating and squatting rooms on your server.
-The only situation where you might not want that is if you indend to open a general public chat system for people you don't know.
-</p>
-
-<aside>
-<p>
-Read more about the <code>muc</code> plugin on the Prosody documentation page <a href="https://prosody.im/doc/modules/mod_muc">here</a>.
-</p>
-</aside>
-
-<h3>Other things to check</h3>
-
-<p>Check the config file for other settings you might want to change.
-For example, if you want to run a general public XMPP server, you can allow anyone to create an account by changing <code>allow_registration</code> to <code>true</code>.
-</p>
-
-<h2>Certificates</h2>
-
-<p>
-Obviously, we want to have client-to-server and server-to-server encryption.
-Nowadays, use can use Certbot to generate certificates and use a convenient command below <code>prosodyctl</code> to import them.
-</p>
-
-<p>
-<strong>If you have multi-user chat enabled, be sure to get a certificate for that subdomain as well.</strong>
-Include the <code>--nginx</code> option assuming you have an Nginx server running.
-</p>
-
-<pre><code>certbot -d <strong>chat.example.org</strong> --nginx</code></pre>
-
-<p>
-Once you have the certificates for encryption, run the following to import them into Prosody.
-</p>
-
-<pre><code>prosodyctl --root cert import /etc/letsencrypt/live/</code></pre>
-
-<p>
-Note that you might get an error that a certificate has not been found if your <code>muc</code> subdomain and your main domain share a certificate.
-It should still work, this is just notifying you that no specific
-</p>
-
-
-<p>
-For user privacy, we will definitely want to install and enable encryption with OMEMO.
-</p>
-
-<h2 id=user>Creating users/admins manually</h2>
-
-<p>
-Let's manually create the admin user we prepared for above.
-Note that you can indeed do this in your XMPP client if you have not disabled registration, but this is how it is done on the command line:
-</p>
-
-<pre><code>prosodyctl adduser <strong>chad@example.org</strong></code></pre>
-
-<p>This will prompt you to create a password as well.</p>
-
-
-<h2>Make changes active</h2>
-
-<p>
-With any system service, use <code>systemctl reload</code> or <code>systemctl restart</code> to make the new settings active:
-</p>
-
-<pre><code>systemctl restart prosody</code></pre>
-
-<h2>Using your Server!</h2>
-
-<p>
-Once your server is set up, you just need an XMPP client to use your new and secure chat system.
-</p>
-
-<ul>
- <li>GNU/Linux: <a href="https://dino.im/">Dino</a> or <a href="https://gajim.org/">Gajim</a></li>
- <li>Windows: <a href="https://gajim.org/">Gajim</a> also runs on Windows.</li>
- <li>Android: <a href="https://conversations.im/">Conversations.im</a></li>
- <li>Mac/iOS: <a href="https://monal.im/">Monal IM</a> or <a href="https://siskin.im/">Siskin</a> for iOS alone</li>
- <li>command-line (GNU/Linux, MacOS, Windows): <a href="https://profanity-im.github.io/">Profanity</a></li>
- <li><a href="https://xmpp.org/software/clients.html">See a more complete list kept by XMPP</a></li>
-</ul>
-
-<p>
-Install whichever of these clients you want on your computer or phone and you can log into your new XMPP server with the account you made.
-Note that if you enabled public registration, anyone can create an account on your server through one of these clients.
-</p>
-
-<h3>Account addresses</h3>
-
-<p>
-XMPP account addressed look just like email addresses: <code><strong>username@example.org</strong></code>.
-You can message any account on any XMPP server on the internet with that format.
-</p>
-
-<h3>Note on MUCs (multi-user chats)</h3>
-
-<p>
-Remember that MUCs are kept on a separate subdomain that we created and should've gotten a certificate for above, for example, <code><strong>chat.example.org</strong></code>.
-Chatrooms are created and referred to in the following format: <code><strong>#chatroomname@chat.example.org</strong></code>.
-</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>
+prosody.html \ No newline at end of file