Published 8 minutes ago
Patrick Campanale has been in the tech space for well over a decade, specializing in PC/gaming news and reviews, as well as maker-focused products to build small businesses.
With a start in technology back in 2010 surrounding the Palm/webOS ecosystem, Patrick spent his formative years developing mobile applications as well as blogging for various publications, eventually leading to starting his own website in 2014. After running a technology blog for a few years, he stepped out of that role and into the world of high-end custom PC manufacturing and building, with a focus on YouTube video production and overclocking. Then, six years ago, Patrick joined the 9to5Toys team as an editor/writer/reviewer with over 14,000 article…
Published 8 minutes ago
Patrick Campanale has been in the tech space for well over a decade, specializing in PC/gaming news and reviews, as well as maker-focused products to build small businesses.
With a start in technology back in 2010 surrounding the Palm/webOS ecosystem, Patrick spent his formative years developing mobile applications as well as blogging for various publications, eventually leading to starting his own website in 2014. After running a technology blog for a few years, he stepped out of that role and into the world of high-end custom PC manufacturing and building, with a focus on YouTube video production and overclocking. Then, six years ago, Patrick joined the 9to5Toys team as an editor/writer/reviewer with over 14,000 articles being published there there, ranging from deals and roundups to in-depth reviews on the latest technology, video games, 3D printers, and more.
In his free time, Patrick loves to create projects from wood using various robots and methods, including leveraging the technologies of CNCs and lasers. If Patrick isn’t working on a computer or playing video games, he’s likely in his 2-car garage workshop creating something unique. In addition to all this, Patrick is also a youth pastor at his local church where he feels God has called him to serve, and he loves every minute of it.
Are you interested in self-hosting your own website? It’s actually easier than you think. With just six simple tools, you can have a website up and running on a computer at your house this weekend—here’s how.
HTG Wrapped: Our favorite tech in 2025
24 days of our favorite hardware, gadgets, and tech
An always-on computer
When your computer goes down, so does your website.
Credit: Hannah Stryker / How-To Geek
You can run a website on just about anything. Someone even found a way to run a website on the tiny microcontroller in a smart lightbulb. The problem is, if the computer you’re running a website from at home goes on and off, then your website’s availability is dictated by the computer’s power state.
This is why the machine that you’re self-hosting your website on should be an always-on system. You can use a Raspberry Pi, an old desktop, a mini PC, really anything you want—just make sure it only gets shut down for important updates and not much else. There’s a reason why companies have servers in so many data centers in so many locations. It allows them to turn one server off without bringing the website to its knees.
Another option is to have what’s called a high-availability cluster setup. Essentially, you have three or more computers set up in a cluster, and when one goes down, the services shift to another system, delivering minimal downtime. This is a pretty complicated setup, though, and is something that the average self-hoster probably shouldn’t attempt when hosting your first website.
Related
Your own domain
You don’t want to tell people to type in 142.250.11.138.
Credit: Lucas Gouveia / How-To Geek | Irina Strelnikova / Shutterstock
When someone wants to navigate to your website, do you want to tell them, “Yeah, just type in 142.250.11.138!” or would you rather say “Go to google.com,” because both mean the same thing. When you have a domain, it points to an IP address, and that’s how you access the website. There are a lot of other steps (that I’ll get to later on in this article), but that’s the basic premise.
You don’t have to have a domain to self-host a website, but you really should. It makes accessing the website so much easier and is a foundational part of any site. Purchasing a domain is simple, and typically pretty cheap too.
I get all my domains through Cloudflare and have never had any issues with them. I like their pricing, the feature set is great on their free DNS plan, and they’re one of the cornerstone DNS providers for the entire internet.
Related
Why Your Homelab Needs a Domain
Stop memorizing IPs like a caveman.
Dynamic DNS
If your ISP changes your IP, do you really want to have to manually update it?
Some internet service providers (ISP) change the IP of your router dynamically and frequently. Other ISPs leave it alone. My IP address from AT&T hasn’t changed in five years, and I’m very thankful for that. The mobile 5G router my church uses for the radio station tower to have Wi-Fi out there has an IP address that changes multiple times per day.
It’s entirely possible to update the IP address of your home router manually—you’ll just spend a ton of time doing it. That’s why dynamic DNS, or DDNS, exists, and it runs great in Docker.
With DDNS, you run a service at your home that’s constantly checking the public IP of your router. If it changes, then the service updates the DNS IP address of your domain with your home’s new IP. This allows you to make sure that your domain is always pointing at the right IP address. If your router’s external IP address changes, and your domain doesn’t update, your website will stop working.
Before purchasing a domain, I’d recommend making sure whoever your registrar is supports dynamic DNS. Cloudflare does, and many others do, but you need to make sure that feature is part of the registrar before buying the domain there. It is possible to transfer the domain if your registrar doesn’t offer DDNS, but you typically have to pay for an extra year of domain registration to do that, so it’s best to verify up front first.
A website backend (like WordPress or Ghost)
You have to have a website to self-host one, right?
Credit: Lucas Gouveia/How-To Geek | Sammby/Shutterstock
Of course, you’re going to actually have the website on a server. I typically use WordPress or Ghost for this, but there are a number of ways you can run a website at home. You could simply serve a static HTML file with apache or Ngnix. Or, you could deploy a full-fledged content management system—it really just depends on what your web needs are.
I’d recommend Docker for this, as it makes it simple to deploy multiple websites with relative ease. I have over 40 websites self-hosted at my house right now for various reasons. I don’t run anything commercial from my servers, I just have a lot of services that I want to access when I’m away from my house. Some are traditional websites like blogs and such, others are services like AudioBookshelf, Immich, and others.
Whatever you decide to use for your website, just remember the web port that you choose for the site and the IP address of the computer—you’ll need those in a minute.
Related
These 5 Games Will Teach You How to Build a Website
Who said you can’t have fun while learning how to build websites?
A reverse proxy system
How else would you route the traffic once it gets inside your network?
Credit: Patrick Campanale / How-To Geek
The reverse proxy system is how the traffic coming into your network knows where to go. Your router (which we’ll set up next) sends the request to the reverse proxy system, and then the reverse proxy systems directs the request where it should go.
For instance, I have multiple servers on my network that serve websites. When someone accesses subdomain1.domain.com, my router sends the traffic to my reverse proxy, which then says, “Oh, that’s on the IP address 192.168.6.7 and port 192.” Then, the request is passed to that device and port, and the website is served.
There are many reverse proxy systems to use, but I use Nginx Proxy Manager. For the last 15 years, I’ve trusted Nginx to handle my website needs, and there’s no reason for me to change that now. NPM, as it’s also called, is an extremely simple-to-use system. You can run NPM in Docker just like your website and dynamic DNS.
One of the best parts of this is you can give NPM (or any other reverse proxy) whatever port you want, and it handles all the routing for you. Because of other services I run on my computer, I can’t run NPM on the normal port 80 and 443. So, I have it on random ports (let’s say 480 and 7443) so they’re separate from everything else, but still easy to remember.
Now, I can forward from my router (the final step) to those ports and then have NPM handle everything else from there. It’s pretty simple and easy to use.
Port forwarding abilities on your router
This is how your router knows where to send web traffic.
Credit: Patrick Campanale / How-To Geek
Once you have a domain, computer, your actual website, dynamic DNS, and your reverse proxy ready, you’re going to need to forward some ports on your router. Typical web traffic happens on port 80 and 443, so you’ll want to forward those two ports to whatever system is running your web proxying system that I just talked about.
If you used the same ports I mentioned, then you would forward external port 80 to internal port 480 with the IP address of the computer your reverse proxy is running on. Do the same for external port 443 and internal port 7443 with the same IP address.
That’s all you have to set up on the router. Now you should be serving traffic to your reverse proxy, which then serves the actual website!
If you’re wanting to host a website at home, the basics you need to know are all right here. The topic can get much deeper if you want, with tunneling, VPNs, and more, but this is exactly how I have my self-hosted websites set up at home.
I’ve been self-hosting websites for over five years now for various reasons, and this setup has been rock solid for me. So if you’re just getting started with self-hosting your very first website, go for this simple setup. You can have it up and running in a weekend, and you’ll love being in full control of your websites without having to spend a dime on hosting elsewhere.