A few months ago I decided to build a website from scratch. No website editors, no static site generators, no nothing. I figured it'd be a fun way to learn about web design, networking, and the CLI.
Good news - it is! Bad news - there's so much information on the internet, it's easy to get lost. So, in this article, I'll outline all the steps I took to build this website, so that you too can own your own piece of internet land.
My aim with this guide is to keep it very newbie-friendly. I will not go into detail about how to do something or why.
I like Namecheap. They're affordable yet offer great support. Plus their search feature allows you to find tons of options for domains.
I like Vultr. Their referral program offers a huge sign-up bonus. Plus they offer dozens of OS so no matter what flavor of distro you like, everyone will be happy.
Start by identifying your VPS's IP addresses. You'll want to find the IPv4 version (it'll be all numbers like 126.96.36.199) and the IPv6 version (which will be all gibberish like 2710::ax83%:3u29l:lolz).
This step will vary depending on who hosts your domain. On Namecheap, just navigate to
SSH (Secure Shell) is a protocol used to access your VPS remotely.
Start by entering the terminal. Enter ssh firstname.lastname@example.org. Go to your VPS and copy the VPS password. Paste it into the terminal. If you succeed, you'll see the location in the terminal change.
Once you're in, run the following commands to start your server.
sudo apt update
sudo apt upgrade
apt install nginx python-certbot-nginx rsync
This website has pretty much all you need.