From 825282fea9102326ad2538e4a98329fbd38c899b Mon Sep 17 00:00:00 2001
From: Luke Smith
Date: Tue, 29 Jun 2021 08:30:52 -0400
Subject: firststuffs
---
.footer.html | 7 ++
404.html | 27 ++++++
README.md | 7 ++
barsup | 18 ++++
bat.html | 92 +++++++++++++++++++
bitcoin.html | 102 +++++++++++++++++++++
certbot.html | 133 +++++++++++++++++++++++++++
crypto.html | 86 ++++++++++++++++++
dns.html | 127 ++++++++++++++++++++++++++
domain.html | 145 +++++++++++++++++++++++++++++
favicon.ico | Bin 0 -> 8894 bytes
federation.html | 71 +++++++++++++++
html.html | 219 ++++++++++++++++++++++++++++++++++++++++++++
html2.html | 29 ++++++
html4.html | 99 ++++++++++++++++++++
index.html | 162 +++++++++++++++++++++++++++++++++
maintenance.html | 148 ++++++++++++++++++++++++++++++
monero.html | 111 +++++++++++++++++++++++
nginx.html | 237 ++++++++++++++++++++++++++++++++++++++++++++++++
openalias.html | 123 +++++++++++++++++++++++++
pix/bat.svg | 22 +++++
pix/bitcoin-01.png | Bin 0 -> 36149 bytes
pix/bitcoin-02.png | Bin 0 -> 27352 bytes
pix/bitcoin-03.png | Bin 0 -> 229921 bytes
pix/bitcoin-04.png | Bin 0 -> 47177 bytes
pix/brave-01.png | Bin 0 -> 2876 bytes
pix/brave-02.png | Bin 0 -> 68404 bytes
pix/brave-03.png | Bin 0 -> 62093 bytes
pix/brave-04.gif | Bin 0 -> 131546 bytes
pix/btc.png | Bin 0 -> 568 bytes
pix/btc.svg | 7 ++
pix/certbot-01.png | Bin 0 -> 89656 bytes
pix/certbot-02.png | Bin 0 -> 120319 bytes
pix/certbot-03.png | Bin 0 -> 22865 bytes
pix/chad.gif | Bin 0 -> 11085 bytes
pix/dns-epik.png | Bin 0 -> 82393 bytes
pix/dns-ipv4-done.png | Bin 0 -> 42611 bytes
pix/dns-ipv4.png | Bin 0 -> 25183 bytes
pix/dns-ipv6-done.png | Bin 0 -> 69558 bytes
pix/dns-ipv6.png | Bin 0 -> 97056 bytes
pix/dns-ping.png | Bin 0 -> 34174 bytes
pix/dns-vultr.png | Bin 0 -> 78372 bytes
pix/domain-cart.png | Bin 0 -> 91182 bytes
pix/domain-search.png | Bin 0 -> 112250 bytes
pix/git.svg | 15 +++
pix/github.svg | 3 +
pix/html-01.png | Bin 0 -> 19006 bytes
pix/html-02.png | Bin 0 -> 26468 bytes
pix/monero-01.png | Bin 0 -> 151173 bytes
pix/monero-02.png | Bin 0 -> 112885 bytes
pix/monero-03.png | Bin 0 -> 135404 bytes
pix/monero-04.png | Bin 0 -> 97964 bytes
pix/nginx-password.png | Bin 0 -> 34823 bytes
pix/nginx-website.png | Bin 0 -> 16651 bytes
pix/openalias-01.png | Bin 0 -> 23583 bytes
pix/openalias-02.png | Bin 0 -> 22211 bytes
pix/openalias-03.png | Bin 0 -> 28821 bytes
pix/openalias-04.png | Bin 0 -> 18936 bytes
pix/openalias-05.png | Bin 0 -> 13803 bytes
pix/rss.svg | 33 +++++++
pix/server-features.png | Bin 0 -> 22214 bytes
pix/server-location.png | Bin 0 -> 59268 bytes
pix/server-size.png | Bin 0 -> 77507 bytes
pix/server-type.png | Bin 0 -> 41632 bytes
pix/ssh-01.png | Bin 0 -> 31196 bytes
pix/xmpp.svg | 26 ++++++
pix/xmr.png | Bin 0 -> 768 bytes
pix/xmr.svg | 7 ++
rss.xml | 51 +++++++++++
server.html | 145 +++++++++++++++++++++++++++++
sshkeys.html | 157 ++++++++++++++++++++++++++++++++
style.css | 195 +++++++++++++++++++++++++++++++++++++++
template.html | 20 ++++
xmpp.html | 189 ++++++++++++++++++++++++++++++++++++++
74 files changed, 2813 insertions(+)
create mode 100644 .footer.html
create mode 100644 404.html
create mode 100644 README.md
create mode 100755 barsup
create mode 100644 bat.html
create mode 100644 bitcoin.html
create mode 100644 certbot.html
create mode 100644 crypto.html
create mode 100644 dns.html
create mode 100644 domain.html
create mode 100644 favicon.ico
create mode 100644 federation.html
create mode 100644 html.html
create mode 100644 html2.html
create mode 100644 html4.html
create mode 100644 index.html
create mode 100644 maintenance.html
create mode 100644 monero.html
create mode 100644 nginx.html
create mode 100644 openalias.html
create mode 100644 pix/bat.svg
create mode 100644 pix/bitcoin-01.png
create mode 100644 pix/bitcoin-02.png
create mode 100644 pix/bitcoin-03.png
create mode 100644 pix/bitcoin-04.png
create mode 100644 pix/brave-01.png
create mode 100644 pix/brave-02.png
create mode 100644 pix/brave-03.png
create mode 100644 pix/brave-04.gif
create mode 100644 pix/btc.png
create mode 100644 pix/btc.svg
create mode 100644 pix/certbot-01.png
create mode 100644 pix/certbot-02.png
create mode 100644 pix/certbot-03.png
create mode 100644 pix/chad.gif
create mode 100644 pix/dns-epik.png
create mode 100644 pix/dns-ipv4-done.png
create mode 100644 pix/dns-ipv4.png
create mode 100644 pix/dns-ipv6-done.png
create mode 100644 pix/dns-ipv6.png
create mode 100644 pix/dns-ping.png
create mode 100644 pix/dns-vultr.png
create mode 100644 pix/domain-cart.png
create mode 100644 pix/domain-search.png
create mode 100644 pix/git.svg
create mode 100644 pix/github.svg
create mode 100644 pix/html-01.png
create mode 100644 pix/html-02.png
create mode 100644 pix/monero-01.png
create mode 100644 pix/monero-02.png
create mode 100644 pix/monero-03.png
create mode 100644 pix/monero-04.png
create mode 100644 pix/nginx-password.png
create mode 100644 pix/nginx-website.png
create mode 100644 pix/openalias-01.png
create mode 100644 pix/openalias-02.png
create mode 100644 pix/openalias-03.png
create mode 100644 pix/openalias-04.png
create mode 100644 pix/openalias-05.png
create mode 100644 pix/rss.svg
create mode 100644 pix/server-features.png
create mode 100644 pix/server-location.png
create mode 100644 pix/server-size.png
create mode 100644 pix/server-type.png
create mode 100644 pix/ssh-01.png
create mode 100644 pix/xmpp.svg
create mode 100644 pix/xmr.png
create mode 100644 pix/xmr.svg
create mode 100644 rss.xml
create mode 100644 server.html
create mode 100644 sshkeys.html
create mode 100644 style.css
create mode 100644 template.html
create mode 100644 xmpp.html
diff --git a/.footer.html b/.footer.html
new file mode 100644
index 0000000..902f4eb
--- /dev/null
+++ b/.footer.html
@@ -0,0 +1,7 @@
+LandChad.net
+Because Everyone should be an Internet LandChad.
+
+
+
+
+
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..cc9933b
--- /dev/null
+++ b/404.html
@@ -0,0 +1,27 @@
+
+
+
+ 404 – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ This article linked is not yet finalized!
+
+
+ To keep tabs on what new articles are published, keep up with our RSS feed at
+
+ https://landchad.net/rss.xml which
+ will feature all new pages and significant changes.
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a66338f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# LandChad.net ([https://landchad.net](https://landchad.net))
+
+A site dedicated to turn web peasants into Internet LandChads.
+
+Simple step-by-step text and image-based tutorials for creating websites, email servers, chat servers, server administration and everything else.
+
+Suggestions welcome.
diff --git a/barsup b/barsup
new file mode 100755
index 0000000..71d21d4
--- /dev/null
+++ b/barsup
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Replace existing navs and footers with content of nav and footer files.
+
+navfile="/home/luke/.local/src/landchad/.nav.html"
+footerfile="/home/luke/.local/src/landchad/.footer.html"
+
+files="$(for x in $(find /home/luke/.local/src/landchad -type f -iname '*.html'); do
+ echo "$x"
+done)"
+
+escnav="$(sed "s|^\s\+||;s|/|\\\\/|g;s|\"|\\\\\"|g" "$navfile" 2>/dev/null | tr -d '\n')"
+escfooter="$(sed "s|^\s\+||;s|/|\\\\/|g;s|\"|\\\\\"|g" "$footerfile" 2>/dev/null | tr -d '\n')"
+
+sed -s -i "s/.*<\/nav>/$escnav<\/nav>/; s/.*<\/footer>/$escfooter<\/footer>/" $files
+
+# Multiline:
+# sed -n -s -i "1h; 1!H; \${ g; s/.*<\/nav>/\n$escnav\n\t<\/nav>/g; s/.*<\/footer>/\n$escfooter\n\t<\/footer>/p }" $files
diff --git a/bat.html b/bat.html
new file mode 100644
index 0000000..6d20124
--- /dev/null
+++ b/bat.html
@@ -0,0 +1,92 @@
+
+
+
+ Enrolling Your Site in the Basic Attention Token Project – LandChad.net
+
+
+
+
+
+
+
+ Enrolling in the Basic Attention Token Project
+
+
+ What is the Basic Attention Token?
+
+ The Basic Attention Token (BAT) is a cryptocurrency token associated with the Brave Browser .
+
+
+ You might want to consider enrolling any and all sites you have on the internet into their project which allows you to earn some of their token based on how many Brave users view your website.
+ It also enables Brave users to donate BAT directly to you.
+
+
+
+ You can receive these donations in BAT itself, or in another cryptocurreny of your choosing.
+
+ Explanation of the BAT system
+
+ In the Brave Browser, all ads are automatically blocked.
+ Brave users however, are given the choice to opt into an optional ads system to view occasional notification ads instead and if they do, they are paid some amount of BAT monthly for how many ads they view.
+ At the end of the month, depending on their settings, Brave users either have their BAT automatically donated to the sites/channels/accounts they spent the most time on, or they can hold onto their token to give away as they please.
+
+ Why you might not want to enroll...
+
+ Unlike Bitcoin and Monero , BAT is a token organized by a company, and as such, it has to comply with know-your-customer regulations.
+ What that means for you is that to get a payout in BAT, you must have an custodial cryptocurrency wallet with either Gemini or Uphold, the two services they are interfaced with.
+ You can move your payouts elsewhere when you want, but those sites require real-world identification.
+
+
+ Enrolling in BAT is thus not an option for people who want to be on the internet totally anonymously.
+ For those for which this is not an issue, however, enrolling your site in the Basic Attention Token system, even if you do not use Brave yourself,
+ is an easy, free and no risk thing that you can only gain from.
+
+ Enrolling in the System
+ Create a Publisher Account with BAT
+ Go to publishers.basicattentiontoken.org and sign up to create a publisher account.
+
+ Add a new website/channel
+
+ Once you log in, you can easily create a new Brave channel.
+
+
+
+ As this will show you, you can add your website to the system to receive donations there,
+ but you can also add a YouTube or Twitch channel, a Github profile or even a R*ddit or Tw*tter account.
+
+
+
+ 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.
+
+ Using Uphold or Gemini for payouts
+
+ In order to properly receive payouts, you will have to create an account either with Uphold or Gemini which again are custodial cryptocurrency wallets, meaning that while you have your money on their platform, it isn't really yours, so it's a good idea to transfer it off when you accumulate a decent amount.
+
+ Choose either Gemini or Uphold, create an account with them and follow the directions on the BAT site to link them.
+ Note that right now, Gemini might be the better choice here.
+ Uphold inexplicably can't send funds to a Segwit wallet as it is right now which is the type that Electrum uses.
+ So if you select to get your payouts in Bitcoin, this might be an issue.
+
+ What does this look like in Brave?
+ Donating to websites
+
+
+ Once you have your website connected, Brave users can click on the BAT icon ( ) by their URL bar to donate to you.
+ Here is how this looks:
+
+
+
+ Donating to individual accounts
+
+ Here is an example of what it looks like to have an individual social media site interfaced.
+ In the picture below, a "Tip" button appears in the bottom right of this image.
+
+
+
+ Tip buttons will appear on many other social media sites, for example Github commits, projects and comments by users.
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/bitcoin.html b/bitcoin.html
new file mode 100644
index 0000000..ce3206b
--- /dev/null
+++ b/bitcoin.html
@@ -0,0 +1,102 @@
+
+
+
+ Getting a Bitcoin Wallet – LandChad.net
+
+
+
+
+
+
+
+
+
+
+ Let's now get a Bitcoin wallet and become able to receive Bitcoin funds or donations.
+ Wallets
+
+ One of the classical choices for a Bitcoin wallet is Electrum.
+ Go to https://electrum.org to download and install it,
+ or if you are a Linux user, it is probably included in your distribution's package repository.
+
+ Mobile version?
+
+ Note also that there are mobile/cell phone versions of Electrum for Android and iOS.
+ I generally advise against using a wallet on a cell phone for security reasons, but if you would like, you can.
+
+
+ If you are okay with a mobile wallet,
+ I recommend getting Cake Wallet , which can use Electrum-style Bitcoin wallets,
+ but also Monero and Litecoin.
+
+ Generating a Wallet
+ Once you open Electrum (or Cake Wallet),
+ you can choose to create a new wallet.
+ Name it whatever you want and choose the "Standard Wallet" option.
+
+
+ I will also note that if you are paranoid, it is perfectly possible to generate a wallet without connection to the internet.
+
+ Your Seed is your money.
+
+ Now choose the "Create a new seed" option when creating the wallet.
+ That will randomly produce a "seed" of 12 words.
+
+
+
+ These words are your money.
+ Once you are shown them, immediately write them down on physical paper, and you will be storing this somewhere it will not be lost or found.
+ You can memorize these tweleve words if you trust your memory.
+
+
+ These tweleve words unlock all of the funds/addresses you will have on this wallet.
+ Whoever has your seed has the ability to spend your money.
+
+ Note obviously that I have included a picture of a seed phrase above in this tutorial.
+ I or anyone else would be stupid to ever send Bitcoin to the following addresses since the seed phrases are now public.
+
+
+ Once you have written down your seed, click "Next" and Electrum will have you input that seed again to ensure you've written it down.
+
+
+ You will also be asked to supply a password.
+ This password merely encrypts your wallet file on this computer so you don't have to retype your seed phrase each time you open Electrum.
+ Note that anyone with your seed phrase can still obtain your funds.
+ This password is only protection on your computer here.
+
+ Managing your Wallet
+
+ Once your wallet is generated and opened you will be at the wallet page.
+ First, I recommend opening the "View" menu and unhiding all the different tabs.
+
+
+ Addresses
+ The address tab contains all the many Bitcoin addresses generated by your seed phrase.
+ In fact, as you use these up, the wallet will automatically add more.
+
+
+ These addresses (which will all be generated with bc1 at the beginning can be used by others to send you Bitcoins.
+ Someone can just copy-and-paste the address into their wallet to send you funds.
+
+
+ Receive
+ Click on the "Receive" tab and then click "New Address."
+ That will pick your first unused address which will appear on the right side.
+ You could copy this from the "Addresses" tab, but this tab also generates a QR code which will appear to the right as well if you click on the "QR Code" subtab.
+
+
+ What is the QR code for?
+
+ In case you don't know, a QR code is a way of storing text information in a format that can be scanned by a phone.
+ If someone has a wallet program on a phone, then can easily scan the QR code on another screen to avoid having to copy your address over or even worse, write it manually.
+
+ Let's receive donations on our website.
+
+ Save the QR code and the wallet address it corresponds to (starting in bc1).
+ Now simply put these on your website and anyone can send Bitcoin to them.
+ Bitcoin users will know how to scan and use them.
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/certbot.html b/certbot.html
new file mode 100644
index 0000000..ed3d2b3
--- /dev/null
+++ b/certbot.html
@@ -0,0 +1,133 @@
+
+
+
+ Certbot and HTTPS – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Once you have a website, it is extremely important to enable encrypted connections over HTTPS/SSL.
+ You might have no idea what that means, but it's easy to do how we've already set our server up .
+
+
+
+ Certbot is a program that automatically creates and deploys the certificates that allow encrypted connections.
+ It used to be a pain (and often expensive) to do this, but now it's all free and automatic.
+
+
+ Why is encryption important?
+
+
+ With HTTPS, users' ISPs cannot snoop on what they are looking at on your website.
+ They know that they have connected, but the particular pages they visit are private as everything is encrypted. HTTPS increases user privacy.
+ If you later create usernames and passwords for any service on your site, lack of encryption can compromise that private data! Most well-designed software will automatically prevent any unencrypted connections over the internet.
+ Search engines like Google favor pages with HTTPS over unencrypted HTTP.
+ You get the official-looking green 🔒 symbol in the URL bar in most browsers which makes normies subtly trust your site more.
+
+
+ Let's do it!
+
+
+ Note in this picture that a browser accessing your site will say "Not secure" or something else to notify you that we are using and unencrypted HTTP connection rather than an encrypted HTTPS one.
+
+ Installation
+
+ Just run:
+
+ apt install python-certbot-nginx
+
+ And this will install certbot and its module for nginx.
+
+ Run
+
+
+ As I mentioned in the previous article, firewalls might interfere with certbot, so you will want to either disable your firewall or at least ensure that it allows connections on ports 80 and 443:
+
+
+ ufw allow 80
+ufw allow 443
+
+
+ Now let's run certbot:
+
+
+ certbot --nginx
+
+
+ The command will ask you for your email.
+ This is so when the certificates need to be renewed in three months, you will get a email about it.
+ You can set the certificates to renew automatically, but it's a good idea to check it the first time to ensure it renewed properly.
+ You can avoid giving your email by running the command with the --register-unsafely-without-email option as well.
+
+
+ Agree to the terms, and optionally consent to give your email to the EFF (I recommend against this obviously).
+
+
+
+ Once all that is done, it will ask you what domains you want a certificate for. You can just press enter to select all.
+
+
+
+
+ It will take a moment to create the certiticate, but afterwards, you will be asked if you want to automatically redirect all connections to be encrypted.
+ Since this is preferrable, choose 2 to Redirect.
+
+
+
+ Checking for success
+
+ You should now be able to go to your website and see that there is a lock icon or some other notification that you are now on an encrypted connection.
+
+
+
+
+ Setting up certificate renewal
+
+
+ As I mentioned in passing, the Certbot certificates last for 3 months.
+ To renew certificates, you just have to run certbot --nginx renew and it will renew any certificates close to expiry.
+
+
+
+ Of course, you don't want to have to remember to log in to renew them every three months, so it's easy to tell the server to automatically run this command.
+ We will use a cronjob for this. Run the following command:
+
+
+ crontab -e
+
+
+
+ There might be a little menu that pops up asking what text editor you prefer when you run this command.
+ If you don't know how to use vim, choose nano, the first option.
+
+
+
+
+ This crontab command will open up a file for editting.
+ A crontab is a list of commands that your operating system will run automatically at certain times.
+ We are going to tell it to automatically try to renew our certificates every month so we never have to.
+
+
+
+ Create a new line at the end of the file and add this content:
+
+
+ 0 0 1 * * certbot --nginx renew
+
+
+ Save the file and exit to activate this cronjob.
+ For more information about cronjobs, see the article on them .
+
+
+ Next: Use HTML to Make Simple Webpages
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/crypto.html b/crypto.html
new file mode 100644
index 0000000..f7b150c
--- /dev/null
+++ b/crypto.html
@@ -0,0 +1,86 @@
+
+
+
+ The Case for Crypto for Normal People – LandChad.net
+
+
+
+
+
+
+
+ The Case for Crypto for Normal People
+
+
+
+
+ A lot of people get nervous about cryptocurrency because it seems like a confusing world that requires risks.
+ I however, recommend that if you have your own website, you should absolutely allow people to send you tips/donations in the most important two currencies:
+ Bitcoin (the classic digital gold)
+ and Monero (the private and cheaper to use version of Bitcoin).
+
+
+
+ To accept donations costs you absolutely nothing.
+ It costs you nothing to hold this donations for years before you bother to figure out how it works.
+ You don't have to do anything now but create a wallet and put a public address up.
+
+
+ Cryptocurrency is the only open source and peer-to-peer currency
+
+
+ The whole point of being an Internet Landchad is that you do not have to rely on centralized platforms running privacy-violating proprietary software which can be used to censor you and others.
+
+
+
+ Cryptocurrency is the first every technology that secures digital scarcity and allows people to transact with one another digitally without any intermediary.
+
+
+
+ Cryptocurrency might be a wild west, but it is the monetary equivalent of free and open source software.
+
+
+
+ I will not give investment advice about it, but I will say this, independent of the possibility of a bitcoin being worth more than $1 million later this decade, it is a generally good idea for you to have a way to exchange value without some proprietary intermediary system.
+
+
+
+ It's a good idea for any person to put some spare money in Bitcoin and Monero and encourage their friends to do so for the mere fact that it can be used to exchange and store value you might owe someone.
+ It's easier than cash and Monero at least is cheap and easy to transact with.
+
+
+ Why Bitcoin and Monero?
+
+
+ Bitcoin obviously is the original cryptocurrency.
+ It is clunky, old, sometimes expensive to transact with for small amounts, but it is consistent and is coming to function as "digital gold":
+ a way of storing value over years.
+ As the Bitcoin network comes to be used by more and more people, companies, countries and others to store value, it also increases the price, which obviously has made many people very rich.
+ Bitcoin will surge and crash in cycles, but the long-term trend is unambiguously up and more people store value on the network.
+
+
+
+ Monero is a more recent cryptocurrency that better preserves privacy and fixes nearly all of Bitcoin's other flaws.
+ All Bitcoin transactions (and those of nearly all cryptocurrencies) are publicly visible on the blockchain.
+ That means that people can watch where wallets get and spend money, which can be a massive problem.
+ Monero, however, uses clever cryptography to avoid this.
+ This makes it the choice "dark web" currency, but because it has many other benefits (low transaction fees (unlike Bitcoin), ASIC resistance) it is now a staple of the internet.
+
+
+
+ There are many other coins and tokens used for technology projects, but Bitcoin and Monero are by far the most important.
+
+
+
+ Due to the difference in transaction fees (it is expensive to transact with Bitcoin), you are probably more likely to get more little tips via Monero.
+ Big donations might come in Bitcoin though.
+
+
+
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
diff --git a/dns.html b/dns.html
new file mode 100644
index 0000000..d14ea02
--- /dev/null
+++ b/dns.html
@@ -0,0 +1,127 @@
+
+
+
+ Connect Your Domain and Server with DNS Records – LandChad.net
+
+
+
+
+
+
+
+ Connect Your Domain and Server with DNS Records
+
+
+
+ The Gist
+ Now that we have a domain and a server , we can connect the two using DNS records.
+ DNS (domain name system) records are usually put into your registrar and direct people looking up your website to the server where your website and other things will be.
+
+
+
+ Get your IPv4/IPv6 addresses from Vultr and put them into A/AAAA records on Epik.
+ Simple process, takes a minute, but here's a guide with a million images just so you know.
+
+
+ Open up your Registrar
+
+
+ As before, we will be using Epik as a registrar and Vultr as a server host.
+ Go ahead and log into your accounts on both.
+ Open up Epik, or your registrar, and click on your domain and then a choice for "DNS records."
+ This is the screen you'll want to see on Epik.
+
+
+
+
+
+ Note that we are on the "External Hosts (A, AAAA)" tab by default.
+ Epik sometimes adds records to this page once you buy a domain.
+ If they did, you can go ahead and delete them so they look clean like the picture above.
+
+
+
+ All we have to do now is get our IP addresses from Vultr and add new DNS records that will send connections to our server.
+
+
+
+ Keep the Epik tab open and open Vultr and we will copy-and-paste our IP addresses in.
+
+
+ Find your server's IP addresses
+
+
+ Looking at your server in the Vultr menu, you should see a number next to it.
+ Mine here is 104.238.126.105 as you can see below the server name (which I have named landchad.net after the domain I will soon attach to it).
+ That is my IPv4 address.
+
+
+
+
+
+ Copy your IPv4 address and
+ on Epik, click the "Add Record" record button and add two A entries pasting in your IPv4 address like I've done for mine here.
+
+
+
+
+
+ I add two entries.
+ One has nothing written in the "Host" section. This will direct connections to landchad.net over IPv4 to our IP address.
+ The second has a * in the "Host" section.
+ This will direct connections to all possible subdomains to the right place too,
+ I mean mail.landchad.net or blog.landchad.net and any other subdomain we might want to add later.
+
+
+
+
+ Now let's get our IPv6 address, which is a little more hidden for some reason.
+ IPv6 are important because we are running our of IPv4 addresses so it is highly important to allow connections via IPv6 as it will be standard in the future.
+ Anyway, now back on Vultr, click on the server name.
+
+
+ On the server settings, click on settings
+ and we will see we are on a submenu labeled "IPv4" where we see our IPv4 address again.
+
+
+
+
+
+ Now just click on IPv6 submenu to reveal your IPv6 address.
+
+
+
+
+
+ That ugly looking sequence of numbers and letters with colons in between (2001:19f0:5:ccc:5400:03ff:fe58:324a) is my IPv6 address.
+ Yours will look something like it.
+ Now let's put it into Epik, this time, be sure to select to put in AAAA records as below:
+
+
+
+
+
+ Now just click "Save Changes."
+ It might take a minute for the DNS settings to propgate across the internet.
+
+
+ Test it out!
+
+
+ Now we should have our domain name directing to our new server.
+ We can check by pinging our domain name, check this out:
+
+
+
+
+
+ As you can see, our ping to landchad.net is now being directed to 104.238.126.105.
+ That means we have successfully set up our DNS records!
+ You can also run the command host if you have it, which will list both IPv4 and IPv6 addresses for a domain name.
+
+
+ Next: Setting up the Webserver
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/domain.html b/domain.html
new file mode 100644
index 0000000..3e60c68
--- /dev/null
+++ b/domain.html
@@ -0,0 +1,145 @@
+
+
+
+ Get a Domain Name – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Terms
+
+
+ Domain name The name of a website that you type in an address bar. This site's domain name is LandChad.net.
+ Top-level domain (TLD) The extension of a domain name, like .com, .net, .xyz, etc.
+ Registrar A service authorized to reserve a domain name for you.
+
+
+
+ When domain names first sell, they usually sell for very cheap, but once someone buys one, they have the rights to it until they decide to sell it, often for much, much more money.
+ Therefore, it's a good idea to reserve a domain name ASAP, even if you didn't intend on doing anything big with it.
+
+
+
+ So let's register your domain name!
+
+
+ How
+
+ Domains can be registered at any accredited registrar .
+ In this guide, I will use the registrar Epik because it is one of the more high quality and easy to use.
+ The guides on this site will use Epik, but if you choose to register your domain with one of the many, many other registrars ,
+ you can still do most of what Epik does, albeit options and settings might appear in different menus.
+
+
+ Basic info about domain names
+
+
+ Domain names usually require a very small year fee to keep registered, usually around $12 for most generic TLDs.
+ There are some "specialty" TLDs that are more expensive, but .com, .xyz and other basic TLDs are that cheap.
+ Once you own a domain, it is yours as long as you pay the yearly fee, but you can also sell it to someone for however much you want.
+ Domain names do not hold your data or your website, instead, you add "DNS settings" that direct people connecting to your domain to your IP address.
+ The purpose of a domain name is so that people don't have to remember your IP address to find your website!
+
+
+ Looking for domain names
+
+
+ Let's go to Epik's site and you can search for domain names.
+
+
+
+ You can look for whatever domain name you want.
+ Domains that are already bought and owned by someone else might have the option to "Backorder," but it's always best to get one that is unowned, like these:
+
+
+
+
+
+ Note the differences in prices.
+ Some "specialty" TLDs like .game and .io charge a much larger fee, although you might want one.
+ Some domains above, like .xyz and .org have reduced prices for the first year.
+
+
+
+ Choose the domain you want and buy it.
+ These .xyz domains are a steal now on sale.
+
+
+
+
+
+ That's all you have to do to own a domain name!
+ As you register a domain, you can also setup an automatic payment to pay your fee yearly to keep your domain.
+ Easy as pie.
+
+
+ Now we will get a server to host your website on.
+
+ Next: Get a Server
+
+
+
+ More info on domains
+
+ Privacy
+
+
+ One worry people have when reserving a domain is that a domain registrar requires that you submit a home address!
+ In fact, it used to be even worse: You could easily look up the information of the owner of a website by looking them up in the public WHOIS database!
+
+
+
+ Firstly, you can easily register a domain under some other address you don't actually have access to.
+ The internet police does not go looking to see who lives where.
+
+
+
+ But more importantly, every good registrar like Epik now includes some kind of WHOIS guard, which is a service that logs a dummy address including a dummy email in the WHOIS database instead of your proper information.
+ By the way, if the registrar you're looking at requires an extra fee for this service, switch to another. All good registrars should do this for free nowadays.
+
+
+ Registrars to avoid
+
+
+ If you are picking a random registrar to use, it's best to avoid any registrar based in America or Europe.
+ They are more likely to (1) be under the tacit control or cooperation with the "Five Eyes" and other Western privacy-violating regimes
+ or (2) be staffed by political partisans who have now made a habit out of seizing domains they want to shut up.
+
+
+ (2) is a new, but much bigger problem, and even if you don't plan on posting any political content, there is really no predicting what their standards are going to be in the future.
+ I recommend Epik because it is one of the only English-speaking registrars that does what registrars used to do: register domains without political curation, which is unfortunately now becoming more uncommon.
+ If you don't want to use Epik, use a registrar based in Russia or China or a country more sympathetic to political criticism.
+
+
+
+
+ GoDaddy – People always want to go here because it's so well advertized.
+ They have a long record of censorship and nickeling-and-diming accounts. Just avoid them.
+ They can be lazy because a lot of people use them because they are often the "default" registrar.
+
+ NearlyFreeSpeech – People have signed up for this minor registrar because of its name that's actually tongue-and-cheek. I will let this post of theirs speak for itself.
+ Register a domain here only if you want to have it seized.
+ Google, Amazon – Maybe this is obvious, but if you are trying to escape the control of Google or Amazon, it is a very, self-defeating thing to register your domain with them.
+
+
+
+ If you use one of these registrars, be sure to remove your domains from it ASAP.
+ That is usually a very easy thing to do, although you can only move a domain to a new registrar once every several months.
+ Pick a good one and stay put.
+ Registrars without principled policies maintain the right to seize your domain name on their whim.
+ Don't think for a minute that this doesn't apply to you.
+
+
+
+
+
+
+
+
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..d8f549d
Binary files /dev/null and b/favicon.ico differ
diff --git a/federation.html b/federation.html
new file mode 100644
index 0000000..65a742f
--- /dev/null
+++ b/federation.html
@@ -0,0 +1,71 @@
+
+
+
+ Federation – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ The internet was supposed to be a place where everyone was an internet LandChad.
+ Everyone had their own website and email and own services.
+ Obviously, this site is all about getting back to that ideal.
+
+
+
+ That's why it's important to understand the concept of Federation in technology.
+ It's the idea that instead of one central "node" or site that everyone uses, like Facebook, Twitter, Insta, R*ddit,
+ people can run their own sites that can nonetheless interact with othersites as easily as if they were the same.
+
+
+
+ You already know one federated technology: email.
+ There is no one site for email, but many sites, and all people on all those sites can use email to talk to one another.
+ You can get censored on Facebook.
+ You can't get censored on "email."
+ You could have a Gmail account deleted, but you are not blocked out of the system, as you can go to any number of sites and get a new account or make your own server and you can still talk to all your friends via email.
+
+
+ "Federated" Social Media
+
+
+ The idea of Federated Social Media is using that principle used in email, but for other things, like chatting or social media.
+
+
+
+ Here's an example.
+ There is some software you can install on your server called Pleroma .
+ It can be installed on your site just like a web or email server, but what it does is creates a Twitter-like microblogging site.
+ You can then have your friends join and use it just like you use Twitter, with you as the admin and deciding policy and you can even format and decorate the site how you want.
+
+
+ It gets even better...
+
+
+ But here is the clincher.
+ Federated social media like Pleroma can interact with other Pleroma servers on the internet in the same way that Gmail's servers can send messages to any other email server.
+ So you might have 2 people on your Pleroma site, but you can interact with the many thousands of other Pleroma sites.
+
+
+
+ There is seamless interaction.
+ You can view, like, share and respond to their posts as if they were part of your own site.
+
+
+
+ And it gets even betterer...
+
+
+ Pleroma is based on a protocol called Activity Pub .
+ This is also used by other software like PeerTube (which is a self-hosted YouTube-equivalent), Friendica (Facebook equivalent)
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/html.html b/html.html
new file mode 100644
index 0000000..7ed32df
--- /dev/null
+++ b/html.html
@@ -0,0 +1,219 @@
+
+
+
+ Make a Simple Webpage – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ We now have a webpage that's actually on the real-live internet!
+ You've already made it!
+ Now the only issue is putting what you want on your website.
+
+
+
+ In this little series, we'll overview the basics of HTML and CSS,
+ the two important languages that will allow you to make a stylish multi-page website.
+ We will start with HTML.
+
+
+ HTML
+
+
+ HTML is the h ypert ext m arkup l anguage.
+ It is the "language" that all webpages are written in so that all browsers can read and display them properly.
+
+
+ A markup language not the same as a programming language:
+ Programming languages specify orders for a computer, while markup languages are ways of specifying the styling of text.
+ Markup languages are necessary because computers run on mere text, not colors, sizes, headers and other styling things.
+
+
+
+ Let's understand what HTML is.
+ In a previous article , we put this text in your website's index.html.
+
+
+ Paragraphs
+
+
+Note how this HTML file appears as a webpage:
+
+
+
+
+
+
+
+<!DOCTYPE html>
+<h1>My website!</h1>
+<p>This is my website. Thanks for stopping by!</p>
+<p>Now my website is live!</p>
+
+
+
+
+
+
+
+
+The content between the <p> and </p> tag(s) is formatted as different paragraphs.
+If you don't use these <p> tags, the text will not be formatted as separate paragraphs even if you write it as
+multiple lines.
+Observe if we add lines to the end of this file:
+
+
+
+
+
+<!DOCTYPE html>
+<h1>My website!</h1>
+<p>This is my website. Thanks for stopping by!</p>
+<p>Now my website is live!</p>
+Here is some more text.
+There are no paragraph tags on this stuff.
+So it will all appear as one paragraph.
+Despite being on multiple lines.
+
+
+Even this!
+
+
+
+
+
+
+
+
+This will seem strange at first, but this is the use of HTML as a markup
+language: it allows you to style your document with tags and write it in whatever way is convenient.
+
+
+
+Let's learn more about what HTML can do.
+
+
+
+Headings
+
+
+In addition to paragraphs (<p>), we can specify headings with inside <h1></h1> tags.
+Heading tags are for your page's title and section headings in the document:
+
+
+
+ <h1 ></h1 > – Main and largest headings
+ <h2 ></h2 > – Subheadings (smaller)
+ <h3 ></h3 > – Sub-subheadings (yet smaller)
+ <h4 ></h4 > – Etc., etc.
+
+
+
+
+
+
+<h1>This is a top-level heading.</h1>
+
+<p>Here is some paragraph text.</p>
+
+<p>And here is some more...</p>
+
+<h2>This is a subheading (h2)</h2>
+
+<p>And another paragraph.</p>
+
+<h2>And here is another subheading (Also an h2)</h2>
+
+<p>Etc. etc...</p>
+
+
+
+
+
+
+
+A preview to CSS
+
+
+It is very imporant to use headings like this for your pages.
+
+Notice that on this website, headings come in different colors, text-alignment and sizes for emphasis.
+If we use these heading tags, when we clear CSS, we can easily style all <h2>, for example,
+to be the size and color and alignment we want.
+
+
+<<++>>
+<<++>>
+<<++>>
+ A look at a decent template
+
+
+ It's a good habit to include the same core things in every HTML page.
+ I have a template file that I use for this website that includes all the basics.
+ When I make a new page, I just copy the template and add the content.
+ Here is what the template looks like:
+
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Your page title </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='Site Title RSS' href='/rss.xml'>
+ </head>
+<body>
+ <header><h1>Your page title </h1></header>
+
+ <nav></nav>
+
+ <main>
+
+ Put all your page content here in the <main> tag.
+
+ </main>
+
+ <footer></footer>
+</body>
+</html>
+
+ The
+
+
+ HTML can be broken...
+
+
+ HTML is interpreted by browsers very liberally.
+ If you make mistakes in HTML, browsers will do their best to be forgiving and try to figure out what you meant.
+
+
+
+ For example, paragraphs are formatted by the <p> tag and when the paragraph ends,
+ </p> should be included.
+ However, if you forget or neglect to include a </p> to close the tag, this isn't a big deal, as if your browser sees another <p> to start a new paragraph, it will consider the previous paragraphy closed and both paragraphs will be formatted correctly.
+ In fact, there are some people nowadays that only ever use the opening tag and never close them!
+
+
+ ...but not always.
+
+
+ That works fine with <p>, but for other tags like <b>, it won't work.
+ Your browser can't guess where you want the bolding to end, so if you fail to close a <b> with </b>,
+ the whole rest of your document will show up bold!
+
+
+
+ Next: Text formatting in HTML
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/html2.html b/html2.html
new file mode 100644
index 0000000..17c6acf
--- /dev/null
+++ b/html2.html
@@ -0,0 +1,29 @@
+
+
+
+ Text formatting in HTML – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Now we know some basic concepts of HTML, including <<++>>p<<++>> and <<++>>h1<<++>>, so now we'll learn all the core formatting abilities of HTML in one brief sitting.
+
+
+ Semantic Tags
+
+<<++>>
+<<++>>
+<<++>>
+<<++>>
+ Next:<++>
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/html4.html b/html4.html
new file mode 100644
index 0000000..39475b9
--- /dev/null
+++ b/html4.html
@@ -0,0 +1,99 @@
+
+
+
+ Doing HTML Right – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+
+ We've noted that HTML is very forgiving
+
+
+ A look at a decent template
+
+
+ I have a template file that I use for this website that includes all the basics.
+ When I make a new page, I just copy the template and add the content.
+ Here is what the template looks like:
+
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <title>Your page title </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='Site Title RSS' href='/rss.xml'>
+ </head>
+<body>
+ <header><h1>Your page title </h1></header>
+
+ <nav></nav>
+
+ <main>
+
+ Put all your page content here in the <main> tag.
+
+ </main>
+
+ <footer></footer>
+</body>
+</html>
+
+ Explanation of All These Important Things
+
+
+ <head> contains page metadata, including:
+
+ <title>, the page title that appears in a browser tab.
+ The charset, which tells the browser what encoding to use (this ensures unicode characters will display)
+ The favicon is the little site icon that open appears in the browser tab. Just create an .ico file and put it in favicon.ico and each page will read it.
+ The stylesheet is the CSS stylesheet, which is extremely important for making your site look good and we will get to in the CSS lessons .
+ The RSS feed which is a file you can create to give users updates about your site. We'll talk about making an RSS later too.
+
+
+ <body>, which usually designates what content will visibly display.
+ <header>, which is a semantic tag that where we use to put the main page title in.
+ <nav>, a place to store a navigation bar later. I use a script to automatically update the bar on all pages and it looks for this tag.
+ <main>, designates where the main text of the document is.
+ <footer>, the content appearing at the bottom of the document, I also manage this like nav, with a script.
+ <<++>>, <++>
+ <<++>>, <++>
+
+
+ The Importance
+
+
+ If you're new to this world, you might be wondering why you should use body and main and nav and header and all this seemingly confusing stuff!
+ (Especially when even bad HTML displays!)
+
+
+
+ Not only do many devices, especially mobile ones, specifically use these tags for their features, but
+ when using CSS, we can also style each of these elements the way you want them to appear without changing the HTML on all your pages.
+
+
+
+ With CSS, we can say that we might want the whole body to have a image background, but main should be floating over it semi-transparent.
+ We can tell nav to float off on the left or right and we can change footer and nav settings just by tweaking the CSS.
+
+
+
+ Speaking of which, we've been talking up CSS for a while, so now it's time to learn it!
+
+
+ Next: Styling with CSS
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..263d48e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,162 @@
+
+
+
+ Chad's Guide to Starting Your Own Website – LandChad.net
+
+
+
+
+
+
+
+
+ Chad's Guide to Starting Your Own Website
+
+
+
+ This is LandChad.net, a site dedicated to turning internet peasants into Internet Landlords
+ by showing them how to setup websites, email servers, chat servers and everything in between.
+
+
+ Starting a website is something that can be done in a lazy afternoon and costs pocket change.
+ Most of the internet's problems could be solved if more people had their own personal platforms,
+ so the objective of this site is to guide any normal person through the process of installing a website.
+
+
+ All courses
+
+ Basic Personal Website Setup
+
+
+ This is the basic "course." Follow these quick tutorials and you'll
+ have a fully functioning basic web page on the domain name of your
+ choice.
+
+
+
+ ⏳ This "basic course" can take as little as an hour or even less.
+
+
+
+ Get a domain name.
+ Get a server.
+ Set up DNS settings to connect your server and domain name.
+ Set up your web server.
+ Get a secure HTTPS connection with Certbot.
+
+
+ Accepting Cryptocurrency Tips
+
+
+
+
+ In the Works...
+
+
+ These articles are still under construction.
+ Subscribe to our RSS feed for updates.
+
+
+ Editing and Styling Webpages
+
+
+ Now that we have a basic webpage up hosted on our own server, we can
+ look more directly about how to design and style your website to
+ contain the material you want in the way that you want.
+
+
+
+ HTML Bare Basics
+ Text formatting in HTML
+ Links and Images in HTML
+ Doing HTML right.
+ Use CSS to style webpages consistently.
+
+
+ Email server
+
+
+ The only truly private and way to use email is the host your own!
+ This is
+
+
+
+
+ Excellent Extras
+
+
+ There are also many one-off articles on other things you can add to your website.
+
+
+
+
+ Make your own social media
+
+
+
+
+ XMPP
+ Matrix
+ Pleroma (like Twitter)
+ PeerTube (like YouTube)
+
+
+ Subscribe for Updates
+
+
+ Subscribe to our RSS feed here to get updates and new articles on the site.
+
+
+
+ Support LandChad.net
+
+
+ No ads, trackers or trash on this site.
+ We are funded by doing good and earning gratitude.
+ Express your gratitude in the following ways:
+
+
+
+ When settings up a website, use our linked affiliate links, like to Vultr .
+ Donate cryptocurrencies:
+
+
+
+
+
Monero
+84RXmrsE7ffCe1ADprxLMHRpmyhZuWYScDR4YghE8pFRFSyLtiZFYwD6EPijVzD3aZiEpg57MfHEr1pGJNPXyJgENMnWrSh
+
+
+
+
+
Bitcoin
+bc1q9f3tmkhnxj8gduytdktlcw8yrnx3g028nzzsc5
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/maintenance.html b/maintenance.html
new file mode 100644
index 0000000..33a772b
--- /dev/null
+++ b/maintenance.html
@@ -0,0 +1,148 @@
+
+
+
+ Maintaining a Server – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Here are some important topics you should be familiar with whenever you are managing a server.
+ Keep packages up to date.
+ All GNU/Linux distributions use package managers to easily be able to install and update packages without manually downloading them.
+ On Debian, which we use here for these tutorial the package manager is apt-get or apt for short.
+
+
+
+ It's a good idea to use apt to keep your software reasonably up to date.
+
+
+ apt update
+apt upgrade
+
+
+ Not only do up-to-date packages often come with more features, but they can also fix any possible security bugs.
+
+
+ Troubleshooting general problems
+
+ Often when you are installing something new, you might miss a step and run into an error, so it's important to know how to check and see what errors have happened on your computer.
+
+ On Debian and other GNU/Linux distributions that use systemd (most of them), you can use the command journalctl to look at the system's general log.
+ You will probably want to run journalctl -xe as the -x and -e as that gives the most information and starts you at the bottom of the log to see the most recent errors.
+
+
+ Some programs do not use this system log, but have their own logs stored in /var/log/, or sometimes it's more convenient to look at a specific program's log to see only its issues.
+
+
+ For example, we can see that in /var/log/nginx/, nginx produces both error and access files.
+ The access files show you all the times people connect to files on your server and much more.
+ We can look at the most recent errors by running:
+
+
+ tail -n 25 /var/log/nginx/error.log
+
+
+ The command tail -n 25 means "show me the last 25 lines of this file."
+ You can replace that with less to browse the whole file.
+ In less, navigate with arrows or vim-keys and exit with q.
+
+
+ systemctl
+
+
+ Another tool on systemd distributions is systemctl.
+ At a basic level, use systemctl status put-service-name-here
+ to see if a system service is running and its most recent log.
+ But there's much more to systemctl.
+
+
+
+ For example, you can run systemctl stop nginx to stop NginX and systemctl start nginx to start it back up (or use restart for both).
+ When you make changes to a program's configuration files, reload well make them reload them.
+ If you no longer want a service to start when the system is rebooted, use disable, or conversely, to make a service start on reboot use enable.
+
+
+ Cronjobs
+
+ You might want to have your server automatically run commands (like updating something) at a set time without having to tell it.
+ We can create a "cronjob" to schedule one of these regular commands.
+ To create a cronjob, simply run:
+
+
+ crontab -e
+
+
+
+ It might ask you what editor you want to use if you run this for the first time.
+ Select nano if you don't know how to use vim.
+
+
+
+
+ In this crontab file, we can add a line for a command.
+ Here is an example:
+
+
+ unfinished
+
+ Finding Files
+
+
+ Especially if you're new to how a GNU/Linux system is arranged, you might need help finding files.
+ To find program-related files, you can just use whereis:
+
+ $ whereis nginx
+nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
+
+ This command lists the directories related to that program. For example, /etc/nginx is where the configuration files are and /usr/share/nginx is where the library and module-like files are.
+ But whereis can be used only with installed programs.
+ A more general tool is the pair of updatedb and locate.
+
+
+
+ updatedb is a command that quickly indexes every file and directory on your computer.
+ Then you can run locate to find a file containing a given name.
+ After running updatedb, try running locate nginx to find all files with "nginx" in their name.
+
+
+
+ You can make your search more specific by chaining other Unix commands through pipes.
+ For example, grep takes input and returns only lines that match an extra argument.
+ In the example below, we locate all files with "nginx" in the name, but we use grep to only show us those with the word "available" in them.
+
+
+ root@landchad:~# locate nginx | grep available
+/etc/nginx/modules-available
+/etc/nginx/sites-available
+/etc/nginx/sites-available/default
+/etc/nginx/sites-available/landchad
+/usr/share/nginx/modules-available
+/usr/share/nginx/modules-available/mod-http-auth-pam.conf
+/usr/share/nginx/modules-available/mod-http-dav-ext.conf
+/usr/share/nginx/modules-available/mod-http-echo.conf
+/usr/share/nginx/modules-available/mod-http-geoip.conf
+/usr/share/nginx/modules-available/mod-http-image-filter.conf
+/usr/share/nginx/modules-available/mod-http-subs-filter.conf
+/usr/share/nginx/modules-available/mod-http-upstream-fair.conf
+/usr/share/nginx/modules-available/mod-http-xslt-filter.conf
+/usr/share/nginx/modules-available/mod-mail.conf
+/usr/share/nginx/modules-available/mod-stream.conf
+
+
+ updatedb is an ideal candidate for a cronjob so you don't have to worry about running each time.
+ For example, adding the following to your crontab will run updatedb every 30 minutes:
+
+ */30 * * * * /usr/bin/updatedb
+
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/monero.html b/monero.html
new file mode 100644
index 0000000..5827c85
--- /dev/null
+++ b/monero.html
@@ -0,0 +1,111 @@
+
+
+
+ Setting up a Monero wallet – LandChad.net
+
+
+
+
+
+
+
+ Setting up a Monero wallet
+
+
+
+ Monero (abbreviated XMR) is easily the cryptocurrency most actually used as such.
+ Unlike Bitcoin, Monero is actually private and has very low transaction fees.
+ That makes it a good idea to get a Monero wallet and add an address on your website where you can receive donations.
+
+
+ Generate a Monero wallet
+
+
+ Got to https://www.getmonero.org/downloads/ to Monero's official site and you can download either the GUI (graphical) or CLI (command-line wallet).
+ Some Linux distributions will have these packages in their repositories (monero and monero-gui on Arch-based distributions).
+
+
+
+
+ If you are a Windows user, note that you will probably get some kind of warning that you are installing something malicious.
+ This is because many malicious pieces of software include crypto miners in them.
+ This wallet, obviously, does include one as well, because it has the ability to mine if you want.
+ You can disregard these messages and as that official site mentions, you can follow their directions to check the integrity of the download with SHA265.
+
+
+
+
+ Once you install and run the wallet program, you will get a menu like this:
+
+
+
+
+
+ Now if you want to start using Monero and using it as a pro, you can choose to download the whole blockchain which will maximize your transactional privacy,
+ however for this tutorial or setting up a wallet, we can just do the Simple Mode and save our bandwidth.
+ In fact, if you are paranoid, you can disconnect your computer from the internet while generating a wallet.
+
+
+ Now we choose to create a wallet.
+
+
+
+
+ Now we get the most important and sensitive part, you private mneumonic seed.
+ These words are sacred! They are your money!
+ To be clear, they are randomly generated words that seed the randomness required to unlock whatever money you receive or hold.
+ Never show these words to anyone, don't even keep them on your computer, but write them down and store them securely in real life in a safe or somewhere where only you have access.
+
+
+
+
+
+
+ It goes without saying that the seed above that we generated for this tutorial should never be used by anyone since it is public on the internet and anyone could easily take the funds from the wallet.
+
+
+
+
+ Finally, we get to the main wallet screen.
+ Now we see your public sharable wallet receiving address.
+ It is the thing that starts with 4 and is too long to be included in the image below labeled "Primary address."
+
+
+
+
+
+ Click the clipboard next to it to copy the whole sequence (which will be more than 90 letters and numbers) to your clipboard.
+ This is your address.
+ Put it on your website and you can receive donations!
+
+
+
+ You can also click to save that QR code image and you can put it up on your website and people will be able to scan it and send you Monero.
+ When scanned, that QR code will read as the public donation address.
+
+
+
+ What do I do now?
+
+
+ You can now receive Monero/XMR donations!
+ All you need to do is put either your full address or your QR code on your site and people can send you tips in Monero.
+
+
+
+ Here is the address we use for this site (i.e. not the compromised wallet generated above):
+
+
+ 84RXmrsE7ffCe1ADprxLMHRpmyhZuWYScDR4YghE8pFRFSyLtiZFYwD6EPijVzD3aZiEpg57MfHEr1pGJNPXyJgENMnWrSh
+
+
+
+
+ It's now up to you how and where to display these on your site.
+
+
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/nginx.html b/nginx.html
new file mode 100644
index 0000000..d52025d
--- /dev/null
+++ b/nginx.html
@@ -0,0 +1,237 @@
+
+
+
+ Setting Up a Webserver – LandChad.net
+
+
+
+
+
+
+
+
+
+
+ At this point, we should have a domain name and a server and the domain name should direct to the IP address of the server with DNS records.
+ As I said in previous articles, the instructions I will give will be for Debian 10 .
+ In this article, other distributions might work a little differently.
+
+ Logging in the the server
+
+
+ We first want to log into our VPS to get a command prompt where we can set up the web server.
+ I am assuming you are using either MacOS or GNU/Linux and you know how to open a terminal.
+ On Windows, you can also use either PuTTY or the Windows Subsystem for Linux.
+
+
+ Now on Vultr's site, you can click on your VPS and you will see that there is an area that shows you the password for your server at the bottom here.
+
+
+
+
+
+ Now pull up a terminal and type:
+
+
+ ssh root@yourdomain.com
+
+
+ This command will attempt to log into your server.
+ It should prompt you for your password, and you can just copy or type in the password from Vultr's site.
+
+
+
+
+ If you get an error here, you might not have done your DNS settings right.
+ Double check those.
+ Note you can also replace the yourdomain.com with your IP address, but you'll want to fix your DNS settings soon.
+
+
+
+ Installing the Webserver: NGINX
+
+
+ If the program runs without an error, ssh has now logged you into your server.
+ Let's start by running the following commands.
+
+
+ apt update
+apt upgrade
+apt install nginx
+
+
+ The first command checks for packages that can be updated and the second command installs any updates.
+
+
+
+ The third command installs nginx (pronounced Engine-X) which is the web server we'll be using,
+ along with some other programs.
+
+
+ Our nginx configuration file
+
+
+ nginx is your webserver.
+ You can make a little website or page, put it on your VPS and then tell nginx where it is and how to host it on the internet.
+ It's simple. Let's do it.
+
+
+
+
+ nginx configuration files are in /etc/nginx/.
+ The two main subdirectories in there (on Debian and similar OSes) are /etc/nginx/sites-available and /etc/nginx/sites-enabled.
+ The names are descriptive.
+ The idea is that you can make a site configuration file in sites-available and when it's all ready,
+ you make a link/shortcut to it in sites-enabled which will activate it.
+
+
+
+ First, let's create the settings for our website. You can copy and paste (with required changes)
+ but I will also explain what the lines do.
+
+
+
+ Create a file in /etc/nginx/sites-available by doing this:
+
+
+ nano /etc/nginx/sites-available/mywebsite
+
+
+ Note that "nano" is a command line text editor.
+ You will now be able to create and edit this file.
+ By saving, this file will now appear.
+ Note also I name the file mywebsite, but you can name it whatever you'd like.
+
+
+
+ I'm going to add the following content to the file.
+ The content like this will be different depending on what you want to call your site.
+
+
+server {
+ listen 80 ;
+ listen [::]:80 ;
+ server_name landchad.net ;
+ root /var/www/landchad ;
+ index index.html index.htm index.nginx-debian.html ;
+ location / {
+ try_files $uri $uri/ =404 ;
+ }
+}
+
+
+
+Explanation of those settings
+
+The listen lines tell nginx to listen for connections on both IPv4 and IPv6.
+
+
+The server_name is the website that we are looking for.
+By putting landchad.net here, that means whenever someone connects to this server and is looking for that address,
+they will be directed to the content in this block.
+
+
+root specifies the directory we're going to put our website files in.
+This can theoretically be wherever, but it is conventional to have them in /var/www/.
+Name the directory in that whatever you want.
+
+
+index determine what the "default" file is;
+normally when you go to a website, say landchad.net, you are actually going to a file at landchad.net/index.html.
+That's all that is.
+Note that that this in concert with the line above mean that /var/www/landchad/index.html, a file on our computer that we'll create
+will be the main page of our website.
+
+
+Lastly, the location block is really just telling the server how to look up files, otherwise throw a 404 error.
+Location settings are very powerful, but this is all we need them for now.
+
+
+
+Create the directory and index for the site
+
+
+We'll actually start making a "real" website later, but let's go ahead and create a little page that will appear on when someone looks up the domain.
+
+
+mkdir /var/www/landchad
+
+
+Now let's create and index file inside of that directory which will appear when the website is accessed:
+
+
+nano /var/www/landchad/index.html
+
+
+I'll add the following basic content, but you can add whatever you want.
+This will appear on your website.
+
+
+<!DOCTYPE html>
+<h1>My website!</h1>
+<p>This is my website. Thanks for stopping by!</p>
+<p>Now my website is live!</p>
+
+Enable the site
+
+
+Once you save that file, we can enable it making a link to it in the sites-enabled directory:
+
+
+ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled
+
+
+Now we can just reload or restart to make nginx service the new configuration:
+
+
+systemctl reload nginx
+
+The Firewall
+
+
+Vultr and some other VPS automatically install and enable ufw, a firewall program.
+This will block bacsically everything by default, so we have to change that.
+If you don't have ufw installed, you can skip this section.
+
+
+Option 1: Disable the firewall entirely...
+
+It's usually easier to just entirely disable the firewall.
+I recommend this in 99% of the cases.
+
+
+systemctl stop ufw
+systemctl disable ufw
+
+Option 2: Or enable the proper ports.
+
+If you want to keep and customize the firewall for later, we can get away with just enabling the ports needed for a webserver:
+
+
+ufw allow 80
+ufw allow 443
+
+
+Port number 80 is the canonical webserver port, while 443 is the port used for encrypted connections.
+We will certainly need that for the next page.
+
+
+We now have running website!
+
+
+At this point you can now type in your website in your browser and this webpage will appear!
+
+
+
+
+
+Note the "Not secure" notification.
+The next brief step is securing encrypted connections to your website.
+
+
+Next: Enabling Encrypted Connections
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/openalias.html b/openalias.html
new file mode 100644
index 0000000..2856560
--- /dev/null
+++ b/openalias.html
@@ -0,0 +1,123 @@
+
+
+
+ Open Alias – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ The Problem
+
+ Cryptocurrency can be unintuitive.
+ After all, look at this annoying Monero address of ours:
+
+
+
+ 84RXmrsE7ffCe1ADprxLMHRpmyhZuWYScDR4YghE8pFRFSyLtiZFYwD6EPijVzD3aZiEpg57MfHEr1pGJNPXyJgENMnWrSh
+
+
+
+ It breaks up pages and looks ugly. When you copy and paste it to send money, you might be paranoid that you somehow added an extra character in there.
+ That's all around a bad user experience.
+
+
+ It would be nice...
+
+
+ It would be nice if we could just input someone's email address or maybe a website and send Bitcoin or Monero to that instead.
+ So instead of that long jumble, it would be eaiser to just type in someone's website or email and sending them money that way.
+
+
+ The Solution
+ The OpenAlias standards are just that.
+ It uses DNS settings, which you know something about, to link a website or an email address with a cryptocurrency address.
+ It allows someone to simply put landchad.net or chad@landchad.net as a payment recipient and that will direct to that long address above.
+
+
+
+ The default Monero wallet and Bitcoin's Electrum are already compatible with OpenAlias, as are a growing group of wallet software.
+
+
+ Let's do it.
+
+
+ Open up your domain registar (Epik , if you have religiously followed our tutorials) and open up your DNS settings for the website you would like to add.
+
+
+
+ Open the TXT record section.
+ Now, create an entry with text like that below:
+
+
+oa1:xmr recipient_address=84RXmrsE7ffCe1ADprxLMHRpmyhZuWYScDR4YghE8pFRFSyLtiZFYwD6EPijVzD3aZiEpg57MfHEr1pGJNPXyJgENMnWrSh ; recipient_name=LandChad.net ;
+
+ Obviously change the address to your desired address and you may also give a proper name for yourself (this may be multiple words).
+ Note that the entry above is all one line .
+
+
+
+ Now create a new TXT entry and input this text into the TXT Value input box.
+ Note here that I have create two entries:
+
+
+
+
+
+ One entry's "Host" is left empty, this will allow people to send Monero by merely typing landchad.net.
+
+
+
+ The second entry has "chad" as the "Host"; this will allow people to send money to chad@landchad.net, i.e.
+ this is how you allow people to connect a Monero address with an email address.
+
+
+ Checking to see if it works...
+
+ Let's check to see if it works.
+ In the Monero wallet, we can now type in landchad.net as a recipient:
+
+
+
+
+ And once we press the "Resolve" button, it automatically turns into that address we gave to the DNS!
+
+
+
+
+
+ Now people can donate Monero to you without having to worry about QR codes or copying-and-pasting super-long public addresses!
+
+
+ Now with Bitcoin!
+
+
+ OpenAlias was originally developed for Monero, but since it's such a good idea, Bitcoin wallets have implemented it as well, so let's add some TXT entries for Bitcoin.
+ The OpenAlias TXT records have the same format, except for the xmr at the beginning is replaced with btc and obviously we use a Bitcoin address instead of Monero.
+
+
+oa1:btc recipient_address=bc1q9f3tmkhnxj8gduytdktlcw8yrnx3g028nzzsc5 ; recipient_name=LandChad.net ;
+
+ Add the TXT entries in and save:
+
+
+
+ And we can then check that it's working by trying to send money to landchad.net in Electrum.
+ See that it automatically appends the address!
+
+
+
+
+ And that's it. Now users can easily send your website or email address Bitcoin or Monero without having to worry about hard to read addresses and QR codes.
+
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/pix/bat.svg b/pix/bat.svg
new file mode 100644
index 0000000..2154658
--- /dev/null
+++ b/pix/bat.svg
@@ -0,0 +1,22 @@
+
+
+
+
+BAT_icon
+
+
+
+
+
+
+
+
+
+
diff --git a/pix/bitcoin-01.png b/pix/bitcoin-01.png
new file mode 100644
index 0000000..8f38d0e
Binary files /dev/null and b/pix/bitcoin-01.png differ
diff --git a/pix/bitcoin-02.png b/pix/bitcoin-02.png
new file mode 100644
index 0000000..a566a18
Binary files /dev/null and b/pix/bitcoin-02.png differ
diff --git a/pix/bitcoin-03.png b/pix/bitcoin-03.png
new file mode 100644
index 0000000..dd02d8d
Binary files /dev/null and b/pix/bitcoin-03.png differ
diff --git a/pix/bitcoin-04.png b/pix/bitcoin-04.png
new file mode 100644
index 0000000..104f179
Binary files /dev/null and b/pix/bitcoin-04.png differ
diff --git a/pix/brave-01.png b/pix/brave-01.png
new file mode 100644
index 0000000..7b5b0dd
Binary files /dev/null and b/pix/brave-01.png differ
diff --git a/pix/brave-02.png b/pix/brave-02.png
new file mode 100644
index 0000000..555eca8
Binary files /dev/null and b/pix/brave-02.png differ
diff --git a/pix/brave-03.png b/pix/brave-03.png
new file mode 100644
index 0000000..7074971
Binary files /dev/null and b/pix/brave-03.png differ
diff --git a/pix/brave-04.gif b/pix/brave-04.gif
new file mode 100644
index 0000000..54cfd7a
Binary files /dev/null and b/pix/brave-04.gif differ
diff --git a/pix/btc.png b/pix/btc.png
new file mode 100644
index 0000000..bbe842c
Binary files /dev/null and b/pix/btc.png differ
diff --git a/pix/btc.svg b/pix/btc.svg
new file mode 100644
index 0000000..b3fd9e3
--- /dev/null
+++ b/pix/btc.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pix/certbot-01.png b/pix/certbot-01.png
new file mode 100644
index 0000000..37d81f8
Binary files /dev/null and b/pix/certbot-01.png differ
diff --git a/pix/certbot-02.png b/pix/certbot-02.png
new file mode 100644
index 0000000..24905f8
Binary files /dev/null and b/pix/certbot-02.png differ
diff --git a/pix/certbot-03.png b/pix/certbot-03.png
new file mode 100644
index 0000000..1a60fe9
Binary files /dev/null and b/pix/certbot-03.png differ
diff --git a/pix/chad.gif b/pix/chad.gif
new file mode 100644
index 0000000..98b8904
Binary files /dev/null and b/pix/chad.gif differ
diff --git a/pix/dns-epik.png b/pix/dns-epik.png
new file mode 100644
index 0000000..33d2c40
Binary files /dev/null and b/pix/dns-epik.png differ
diff --git a/pix/dns-ipv4-done.png b/pix/dns-ipv4-done.png
new file mode 100644
index 0000000..1195f06
Binary files /dev/null and b/pix/dns-ipv4-done.png differ
diff --git a/pix/dns-ipv4.png b/pix/dns-ipv4.png
new file mode 100644
index 0000000..d9c14cd
Binary files /dev/null and b/pix/dns-ipv4.png differ
diff --git a/pix/dns-ipv6-done.png b/pix/dns-ipv6-done.png
new file mode 100644
index 0000000..0559575
Binary files /dev/null and b/pix/dns-ipv6-done.png differ
diff --git a/pix/dns-ipv6.png b/pix/dns-ipv6.png
new file mode 100644
index 0000000..8fffd6a
Binary files /dev/null and b/pix/dns-ipv6.png differ
diff --git a/pix/dns-ping.png b/pix/dns-ping.png
new file mode 100644
index 0000000..f900774
Binary files /dev/null and b/pix/dns-ping.png differ
diff --git a/pix/dns-vultr.png b/pix/dns-vultr.png
new file mode 100644
index 0000000..9db0be7
Binary files /dev/null and b/pix/dns-vultr.png differ
diff --git a/pix/domain-cart.png b/pix/domain-cart.png
new file mode 100644
index 0000000..7f55880
Binary files /dev/null and b/pix/domain-cart.png differ
diff --git a/pix/domain-search.png b/pix/domain-search.png
new file mode 100644
index 0000000..e99ca2a
Binary files /dev/null and b/pix/domain-search.png differ
diff --git a/pix/git.svg b/pix/git.svg
new file mode 100644
index 0000000..2e42bc7
--- /dev/null
+++ b/pix/git.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/pix/github.svg b/pix/github.svg
new file mode 100644
index 0000000..93af7db
--- /dev/null
+++ b/pix/github.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/pix/html-01.png b/pix/html-01.png
new file mode 100644
index 0000000..c984971
Binary files /dev/null and b/pix/html-01.png differ
diff --git a/pix/html-02.png b/pix/html-02.png
new file mode 100644
index 0000000..d2f70d0
Binary files /dev/null and b/pix/html-02.png differ
diff --git a/pix/monero-01.png b/pix/monero-01.png
new file mode 100644
index 0000000..44f7a62
Binary files /dev/null and b/pix/monero-01.png differ
diff --git a/pix/monero-02.png b/pix/monero-02.png
new file mode 100644
index 0000000..1ef8bbc
Binary files /dev/null and b/pix/monero-02.png differ
diff --git a/pix/monero-03.png b/pix/monero-03.png
new file mode 100644
index 0000000..52bebbe
Binary files /dev/null and b/pix/monero-03.png differ
diff --git a/pix/monero-04.png b/pix/monero-04.png
new file mode 100644
index 0000000..228734c
Binary files /dev/null and b/pix/monero-04.png differ
diff --git a/pix/nginx-password.png b/pix/nginx-password.png
new file mode 100644
index 0000000..a1ae5e5
Binary files /dev/null and b/pix/nginx-password.png differ
diff --git a/pix/nginx-website.png b/pix/nginx-website.png
new file mode 100644
index 0000000..40d5236
Binary files /dev/null and b/pix/nginx-website.png differ
diff --git a/pix/openalias-01.png b/pix/openalias-01.png
new file mode 100644
index 0000000..b239634
Binary files /dev/null and b/pix/openalias-01.png differ
diff --git a/pix/openalias-02.png b/pix/openalias-02.png
new file mode 100644
index 0000000..03a45b0
Binary files /dev/null and b/pix/openalias-02.png differ
diff --git a/pix/openalias-03.png b/pix/openalias-03.png
new file mode 100644
index 0000000..9e2ba0b
Binary files /dev/null and b/pix/openalias-03.png differ
diff --git a/pix/openalias-04.png b/pix/openalias-04.png
new file mode 100644
index 0000000..35caf10
Binary files /dev/null and b/pix/openalias-04.png differ
diff --git a/pix/openalias-05.png b/pix/openalias-05.png
new file mode 100644
index 0000000..a435462
Binary files /dev/null and b/pix/openalias-05.png differ
diff --git a/pix/rss.svg b/pix/rss.svg
new file mode 100644
index 0000000..35afbe2
--- /dev/null
+++ b/pix/rss.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pix/server-features.png b/pix/server-features.png
new file mode 100644
index 0000000..6891b46
Binary files /dev/null and b/pix/server-features.png differ
diff --git a/pix/server-location.png b/pix/server-location.png
new file mode 100644
index 0000000..b97e8d2
Binary files /dev/null and b/pix/server-location.png differ
diff --git a/pix/server-size.png b/pix/server-size.png
new file mode 100644
index 0000000..39ddc33
Binary files /dev/null and b/pix/server-size.png differ
diff --git a/pix/server-type.png b/pix/server-type.png
new file mode 100644
index 0000000..188b101
Binary files /dev/null and b/pix/server-type.png differ
diff --git a/pix/ssh-01.png b/pix/ssh-01.png
new file mode 100644
index 0000000..855f313
Binary files /dev/null and b/pix/ssh-01.png differ
diff --git a/pix/xmpp.svg b/pix/xmpp.svg
new file mode 100644
index 0000000..c9d7536
--- /dev/null
+++ b/pix/xmpp.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pix/xmr.png b/pix/xmr.png
new file mode 100644
index 0000000..00cfa96
Binary files /dev/null and b/pix/xmr.png differ
diff --git a/pix/xmr.svg b/pix/xmr.svg
new file mode 100644
index 0000000..002ad9b
--- /dev/null
+++ b/pix/xmr.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/rss.xml b/rss.xml
new file mode 100644
index 0000000..b37b9e3
--- /dev/null
+++ b/rss.xml
@@ -0,0 +1,51 @@
+
+
+
+
+LandChad.net: Web Guides for Internet Landchads!
+Tutorials on minimalist webpage creation and server maintenance.
+en-us
+ https://landchad.net/rss.xml
+
+
+LandChad.net Web Guides for Internet LandChads
+https://landchad.net/pix/chad.gif
+ https://landchad.net/rss.xml
+
+
+-
+
Cryptocurrency Tutorials Completed
+ https://landchad.net/index.html#crypto
+ https://landchad.net/index.html#crypto
+ Tue, 29 Jun 2021 08:10:31 -0400
+ There is now a set of basic tutorials on cryptocurrency wallets and concepts up.
+ The goal here is to allow people to receive tips for sites using all free and open source and peer-to-peer technology.
+
+ More tutorials on crypto management and exchanging may be added later, but these focus simply on basic concepts and setting up wallets. They include:
+
+ ]]>
+
+
+-
+
Welcome to LandChad.net!
+ https://landchad.net
+ https://landchad.net
+ Mon, 28 Jun 2021 08:21:44 -0400
+ Welcome to LandChad.net!
+This website is for step-by-step tutorials that allow people to host and maintain their own website and other web services on the cheap or free.
+There is already a full basic tutorial on website creation on the site here .
+Following the tutorials can take as little as an hour, but will help you set up a VPS, and NginX server and encrypt your new webpage with Certbot.
+Next I plan adding general info on HTML and CSS and how to manage a website.
+More stuff like running your own email server and more will be added shortly as more articles are finalized.
+]]>
+
+
+
+
+
diff --git a/server.html b/server.html
new file mode 100644
index 0000000..08ddcc2
--- /dev/null
+++ b/server.html
@@ -0,0 +1,145 @@
+
+
+
+ Get a Server – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Once you have a domain name , you'll need a server to host all your website files on.
+ In general, a server is just a computer that is constanly broadcasting some services on the internet.
+
+
+ Servers connected to the internet can be extremely useful with or without proper websites attached to them.
+ You can be your own website, email, file-sharing service and much more.
+
+ Getting a VPS
+
+ A Virtual Personal Server (VPS) is a very cheap and easy way to get a
+ web server. Without you having to buy expensive equipment. There are a
+ lot of online businesses that have massive server farms with great
+ internet connection and big power bills that allow you to rent a VPS in
+ that farm for pocket change.
+
+
+
+ A VPS usually costs $5 a month. Sometimes slightly more, sometimes slightly less.
+ That's a good price for some internet real-estate, but in truth, you can host a huge number of websites and services on a single VPS, so you get a lot more.
+ I might have a dozen websites, an email server, a chat server and a file-sharing services on one VPS.
+
+
+
+ The VPS provider that I'll be using for this guide is Vultr, since that is what I use.
+ Vultr provides a free one-month $100 credit to anyone who starts an account through this referral link of mine
+ so you can play around with their servies with impunity.
+
+
+ Starting your server in two minutes or less
+
+
+ Start an account on Vultr and let's get started.
+
+
+
+ Vultr (and other VPS providers) usually give you a choice in where and what exactly your VPS is.
+
+
+ Server Location
+
+
+ In general, it doesn't hugely matter what physical location
+ you have your server in. You might theoretically want it close to
+ where you or your audience might be, but if you host a server in
+ Singapore for an American audience, they won't have to be waiting a
+ perceptibly longer time to load the site.
+
+
+
+
+ Some locations might have different abilities and plans than others.
+ For example, in Vultr, their New York location has optional DDOS protection and also has some cheaper $3.50 servers.
+
+ Operating System/Server Type
+
+
+
+
+ I especially recommend Debian 10 for an operating system for your server.
+ Debian is the "classic" server OS and as such, I make my guides on this site for Debian 10 .
+ If you use another OS, just know that your milage may vary in terms of you might need to change some instructions here minorly.
+
+
+ Server size
+
+
+
+
+ You finally have a choice in how beefy a server you want.
+ On Vultr, I recommend getting the cheapest option that is not IPv6 only.
+
+
+
+ Web hosting and even moderately complicated sites do not use huge amounts of RAM or CPU power.
+ If you start doing more intensive stuff than hosting some webpages and an email server and such,
+ you can always bump up your plan on Vultr without data loss (it's not so easy to bump down).
+
+
+ Additional features
+
+
+
+
+ On Vultr, there are some final checkboxes you can select additional options.
+ You will want to check Enable IPv6 and also Block Storage Compatible .
+
+
+
+ We will be setting up IPv6 because it's important for future-proofing your website as more of the web moves to the IPv6 protocol.
+ Block storage is the ability (if you want) to later rent large storage disks to connect to your VPS if desired.
+ You just might want that as an option, so it's worth activating now.
+
+
+ Done!
+
+
+ Once you select those settings, your server will automatically be deployed.
+ Momentarily, you will be able to see your server's IP addresses which will be used for the next brief step:
+
+
+ Next: Connect Your Domain and Server
+
+
+
+ More info
+
+ VPS vs. Self-hosting
+
+ It is very possible instead of using a VPS, hooking up an old computer to the internet and attempting to host a website from that.
+ That can be a valid option if you can do it if you have a great internet connection and can do so without draining your power bill.
+ I don't recommend it because I don't (and can't) do it given my bandwidth needs.
+ For newbs, there are also some extra steps you have to take care of with DNS and setting up static IPs and such.
+
+
+
+ I might write a guide on this in the future, but I don't do it myself.
+
+
+ Backups
+
+
+ Vultr and other VPS providers often provide the ability to make backup snapshots of your server in case of dataloss or their own error.
+ Backups on Vultr are free right now.
+ When we learn how to use rsync, I will recommend you to also keep your own backup of your site, or at least an offline version of it.
+ There's a low chance of their whole system collapsing or something, but I say it's a good idea to be hyper-precautious.
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/sshkeys.html b/sshkeys.html
new file mode 100644
index 0000000..a02a359
--- /dev/null
+++ b/sshkeys.html
@@ -0,0 +1,157 @@
+
+
+
+ Log on with SSH Keys – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ Let's generate and use SSH keys on our computer.
+ This allows us to ensure our identity better than a password ever could.
+ This allows us to do two main things:
+
+
+ Password-less login : With SSH keys, we can permanently designate our profile on our local computer as safe for hour server, allowing us to bypass password verification when logging into our server.
+ Prevent hacking : Since we no longer need a password to log in, we can simply deactivate password logins on our server altogether, which prevents hacking from people who may be so lucky as to guess our password!
+
+
+ In order words, using an SSH key to login is both safer, faster and easier .
+
+
+
+ This is especially better once you start making scripts on your computer that interact with your server.
+ You can upload files in the background, edit your spam filters or anything else from your local computer without having to input
+ your password each time you touch the server.
+
+ Generate an SSH key pair
+
+ Generating an SSH key is simple. Just run:
+
+ ssh-keygen
+
+ It will prompt you for several options and you can generally chose the default options in each case.
+ It will ask you to optionally include a password on your SSH key.
+ I generally recommend against this unless you happen to be using a computer where you don't have root access but someone else does (it does minimize the ease of using an SSH key in our case).
+
+ What does this SSH key do?
+
+ Now whenever you use ssh to log into a server, you have the public key of this SSH key pair as your identifier.
+ You can tell your server to trust this key and it will automatically allow password-less logins from this computer.
+
+ Backing up your key
+
+ We will do that momentarily, but first, I recommend you backup your newly generated key if you plan to use it.
+ If we disable logins to this one key and then lose the key, we might be locked out of our server.
+
+
+ I suggest copying your entire ~/.ssh/ directory (user-specific) to a USB drive and storing it securely.
+ You may also copy it to the same place on another computer to use the key there.
+
+
+ Making your server trust your key.
+
+
+ Now that you have an SSH key generate, just run the following:
+
+
+ ssh-copy-id root@yourdomain.com
+
+
+ That will ask for your server's root password and will log you in briefly.
+ What this does is that it puts your public SSH key fingerprint on your server in a file /root/.ssh/authorized_keys.
+ What this does is that it allows approved SSH keys to login without passwords.
+
+
+
+
+ Note that you can also replace root with a username of an account on the server if you had made a non-root user that you'd like to easily log into as well.
+ For the username user , it will also store the key in /home/user/.ssh/authorized_keys.
+
+
+
+
+ To test if this has worked, now try logging in normally to your server with ssh:
+
+
+ ssh root@yourdomain.com
+
+
+ It should now let your log in without a password prompt!
+
+
+ Disabling Password Logins for Security
+
+
+ Once we have authorized ssh keys for all the devices we need, we can actually just disable password logins.
+ If you've ever looked at your system logs (journalctl -xe) you will find that there are always hundreds of random Chinese computers trying to brute force every server connected to the internet with random passwords.
+ They usually always are unsuccessful, but let's make it impossible for them.
+
+
+
+ Log into your server and open the /etc/ssh/sshd_config file.
+ Here we can set settings for our SSH daemon that receives SSH requests.
+
+
+
+ Now find, uncomment or create the following three lines and set them all to no :
+
+
+ PasswordAuthentication no
+ChallengeResponseAuthentication no
+UsePAM no
+
+
+ Once we've done that, we will reload hour SSH daemon:
+
+
+ systemctl reload sshd
+
+ We're done!
+
+
+ Now you can log in quickly and password-less-ly to your server, despite the fact that it is now more secure than ever!
+
+
+ With these settings, even if a hacker steals or perfectly guesses an account password, they still cannot log in without an approved SSH key!
+
+
+
+ What if I lose my SSH key?!
+
+
+ Firstly, don't do this. Make every precaution that you have a backup.
+
+
+
+ If this does happens, Vultr and most other VPS providers will have one little out.
+ Log onto their website and select the server you want to log into.
+
+
+
+
+
+ In the image above, to the right of your VPS name are a series of icons.
+ Click on the computer screen-like icon which is the leftmost one.
+
+
+
+ This will open up a browser window emulating a terminal and you can always login with your password here,
+ since logins here count as being local and they do not use SSH and therefore can indeed validate with your password even if you have disabled it over SSH.
+
+
+
+ From here, simply reverse the settings we set above and you can login via SSH with a password and you can reapprove a newly created SSH key or whatever you want to do.
+
+
+ Next:<++>
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..27706a0
--- /dev/null
+++ b/style.css
@@ -0,0 +1,195 @@
+/* Since this site is about teaching web concepts, even this file is a learning
+ * opportunity. */
+
+@-webkit-keyframes next {
+ 0% {color: yellow ;}
+ 100% {color: lightblue}
+}
+
+.next a {
+ color: inherit ;
+}
+
+.next {
+ color: red ;
+ -webkit-animation:next 1s infinite alternate ;
+ font-size: xx-large ;
+ text-align: center ;
+ margin: auto ;
+ display: block ;
+ font-weight: bold ;
+ padding: 1em ;
+}
+
+.next:before {
+ content: "👉" ;
+}
+
+body {
+ color: beige ;
+ background: #222 ;
+}
+
+h1 {
+ text-align: center ;
+ color: lightgreen ;
+}
+
+header h1 {
+ font-size: 40px ;
+}
+
+h2 {
+ text-align: center ;
+ color: deeppink ;
+ font-variant: small-caps;
+ font-size: 24pt ;
+ border-bottom: dashed #ddd 1px ;
+ max-width: 500px ;
+ margin: 1em auto ;
+}
+
+h3 {
+ color: gold ;
+}
+
+/* "a" is for links. */
+a {
+ color: lightblue ;
+}
+
+/* The "hover" option, which can be used with pretty much anything, allows you
+ * to set different settings if someone hovers over something with their mouse.
+ * */
+a:hover {
+ color: white ;
+}
+
+dt {
+ font-weight: bold ;
+}
+
+/* code and pre are for formatting monospace text commands. Use code generally,
+ * but pre is for separate code blocks. pre is also sensitive to whitespace,
+ * unlike most of HTML. */
+code {
+ color: lime ;
+ border-radius: 5px ;
+}
+pre {
+ background: #111222 ;
+ border: 1px solid lime ;
+ border-radius: 20px ;
+ padding: 1em ;
+ white-space: pre-wrap;
+ overflow-wrap: break-word ;
+ max-width: 600px ;
+ margin: auto ;
+}
+
+p img, li img, h1 img, h2 img, h3 img, h4 img {
+ vertical-align: middle ;
+ max-width: 1em;
+ border: none ;
+ display: inline ;
+}
+
+img {
+ max-width: 90% ;
+ margin: auto ;
+ display: block ;
+ border: solid 5px beige ;
+}
+strong {
+ color: orange ;
+}
+
+footer {
+ text-align: center ;
+ font-variant: small-caps ;
+ clear: both ;
+ padding: 2em 0 ;
+}
+footer li {
+ display: inline-block ;
+ padding: 0 .5em ;
+ font-size: x-large ;
+}
+footer li:hover {
+ background: lightblue ;
+}
+
+nav { font-size: small ;}
+
+footer { font-size: large ; }
+
+nav ul, footer ul, #taglist {
+ padding: 0;
+}
+
+main {
+ margin: auto ;
+}
+
+/* asides are used for minor tangential notes. I have them shrunk down in
+ * softer colors in a box with soft corners (border-radius). */
+
+aside {
+ border: solid 1px black ;
+ border-radius: 20px ;
+ padding: 0 1em 0 1em ;
+ font-size: small ;
+}
+
+aside p {
+ color: gray ;
+}
+
+aside code {
+ color: green ;
+}
+
+/* This "@media" block defines rules that will only be applied when the minimum
+ * width of the screen is 55em or greater. In essence, they are settings that
+ * only apply on normal weide screens, but *not* phones and low res monitors.
+ * Since we have more room on widescreens, we change a couple things. */
+
+@media (min-width: 55em) {
+
+ aside {
+ margin: 0 30px 0 30px;
+ }
+
+ .resright, .disappear {
+ display: block ;
+ float: right;
+ padding: 20px ;
+ clear: both ;
+ max-height: 400px ;
+ max-width: 300px ;
+ }
+
+ header { max-width: 900px ; margin: auto;}
+ main { max-width: 850px ; }
+}
+
+.ll { font-size: large ; line-height: 1.3em ; max-width: 600px; margin: auto ; }
+
+/* These settings are for the cryptocurrency donation QR codes and info on the
+ * main page. */
+.qr { max-width: 150px ; padding: 10px; border: none; }
+.cryptocontainer {
+ display: flex ;
+ flex-wrap: wrap ;
+ justify-content: center ;
+}
+.cryptoinfo {
+ max-width: 350px ;
+ text-align: center ;
+ padding-left: 10px ;
+ padding-right: 10px ;
+}
+.cryptoinfo code {
+ font-size: small ;
+ overflow-wrap: break-word ;
+}
diff --git a/template.html b/template.html
new file mode 100644
index 0000000..7384113
--- /dev/null
+++ b/template.html
@@ -0,0 +1,20 @@
+
+
+
+ <++> – LandChad.net
+
+
+
+
+
+
+
+
+
+
+ <++>
+ Next:<++>
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
diff --git a/xmpp.html b/xmpp.html
new file mode 100644
index 0000000..d20cfd5
--- /dev/null
+++ b/xmpp.html
@@ -0,0 +1,189 @@
+
+
+
+ XMPP Server (Prosody) – LandChad.net
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+ XMPP is so decentralized and extensible that there are many different XMPP servers.
+ Here, let's set up an Prosody XMPP server.
+
+
+ Installation
+
+
+ Prosody is in the Debian repositories, so we can easily install it on our server with the following command:
+
+
+ apt install prosody
+
+
+Configuration
+
+
+The Prosody configuration file is in /etc/prosody/prosody.cfg.lua.
+To set it all up, we will be changing several things.
+
+
+Setting Admins
+
+
+Let's go ahead and set who our admin(s) will be.
+Find the line that says admins = { } and to this we can specify one or more server admins.
+
+
+# To add one admin:
+admins = { "chad@landchad.net" }
+
+# We can add more than one by separating them by commas. (This file is written in Lua.)
+admins = { "chad@landchad.net", "chadmin@landchad.net" }
+
+
+Note that we have not created these accounts yet, we will do this below .
+
+
+Set the Server URL
+
+
+Find the line VirtualHost "localhost" and replace localhost with your domain.
+In our case, we will have VirtualHost "landchad.net"
+
+
+Multi-User Chats
+
+
+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:
+
+
+Component "chat.landchad.xyz " "muc"
+ restrict_room_creation = "admin"
+
+
+On the first line, you must have a separate subdomain for your multi-user chats.
+I use the chat. subdomain, but some use muc..
+Anything if possible.
+
+
+
+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.
+
+
+
+
+
+End-to-end Encryption
+
+
+Importantly, we'll want end-to-end encryption enabled for user privacy.
+
+
+
+Find the array beginning with modules_enabled.
+This includes a list of modules to be used.
+Add
+"omemo_all_access"; to that list.
+
+
+
+This module is not installed by default,
+but you can easily download it by running the following command on the command prompt
+to download and install the module to the correcy directory.
+
+
+curl -sL https://hg.prosody.im/prosody-modules/raw-file/785389a2d2b3/mod_omemo_all_access/mod_omemo_all_access.lua > /usr/lib/prosody/modules/mod_omemo_all_access.lua
+
+Other things to check
+
+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 allow_registration to true.
+
+
+Certificates
+
+
+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 prosodyctl to import them.
+
+
+
+If you have multi-user chat enabled, be sure to get a certificate for that subdomain as well.
+I usually just create a dummy nginx site for each and run it with the --nginx option.
+This makes auto-renewal a little easier.
+
+
+
+
+
+
+
+
+
+
+
+
+
+certbot --nginx
+
+
+Once you have the certificates for encryption, run the following to import them into Prosody.
+
+
+prosodyctl --root cert import /etc/letsencrypt/live/
+
+
+Note that you might get an error that a certificate has not been found if your muc subdomain and your main domain share a certificate.
+It should still work, this is just notifying you that no specific
+
+
+
+
+For user privacy, we will definitely want to install and enable encryption with OMEMO.
+
+
+Creating users/admins manually
+
+
+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:
+
+
+prosodyctl adduser chad@landchad.net
+
+This will prompt you to create a password as well.
+
+
+Make changes active
+
+
+With any system service, use systemctl reload or systemctl restart to make the new settings active:
+
+
+systemctl reload prosody
+
+
+ LandChad.net Because Everyone should be an Internet LandChad.
+
+
--
cgit v1.2.3