You are on page 1of 3

What to Know

 You can save quite a bit of money if you host your website rather than
using a web hosting provider.
 To self-host, you need to be comfortable configuring your router and
have a valid domain name and a web server.
 Your web server can be a computer running Windows, macOS, or Linux
that's not your primary work machine.

This article outlines how to host a website and explains everything you need to
be successful at it.

Requirements for Hosting Your Own Web Site


There are three basic components you need to host a website at home:

 First, you need the ability for your audience to reach your site, which
implies a domain name. But chances are your home's internet
connection doesn't include a static IP address, so you'll also need to
employ dynamic DNS.
 In addition, your router is probably configured to reject incoming
connection requests—this is how it keeps the machines on your network
safe(ish) from Internet ne'er-do-wells. So you'll need to make sure that
requests for web pages (and only those) are let through your router.
 Finally, you'll need a machine within your home network that runs the
webserver which will serve your content to visitors.

Configuring the Domain for Your Self-Hosted Website


Configuring your domain correctly will allow users to plug it into their
browsers and have their request forwarded to your home (this isn't as creepy
as it sounds). Take the following steps to get this first leg of the journey set up.

1. Get a domain name. For visitors to reach your site, in general it's useful
to have a domain name. This saves them from the burden of having to
remember an IP address like 151.101.130.137 (Lifewire's IP address).
You can check our guide to getting your own domain name, which is a
relatively easy process.
2. Check how your Internet Service Provider (ISP) assigns your IP address.
As a consumer, they most likely give you a dynamic IP address, meaning
it may change over time. If you're fortunate enough to have a static IP
address, you can skip to Step 4.
3. If you have dynamic IP, you will need to sign up for dynamic DNS
service. This service will regularly update your domain name to point to
whichever IP address your ISP assigns you. Take a look at this
introduction to DDNS for more details.
Your DDNS provider may also be able to register you for a domain
name. This is a convenient way to go, as you can be sure there won't be
any issue updating both DNS and IP among two different providers.

4. If you have static IP, you'll just need to make sure your domain name
(wherever you registered it) points directly to your home's IP address.
You can usually do this in the control panel of the service which sold you
your domain, by adding an "A record" to it's settings. The process will be
similar to the one described here to give your Tumblr a custom domain.

Directing Traffic to Your Self-Hosted Website


With a domain name and DDNS in place, you can successfully get requests
from your visitors across the Internet to your home network. But they will still
need to be let inside. And to do so you'll need to make some changes in your
router's configuration. Your goal here will be to take web site requests and
make sure they get sent along to web server (more about this server in the next
section). If you have a typical consumer-grade router, you have two options
here.

1. The first is to place your web server in the "de-militarized zone,"


or DMZ. Your router may have an option to take a machine on your
internal network and consider it as part of the greater Internet. This
means any machine on the Internet can contact you by IP address or
domain name, for better or worse. You won't have to worry about any
finicky network configuration, but on the other hand, literally anyone on
the Internet can try to crack your server. Make sure you understand the
plusses and minuses of DMZ before going any further.
2. Your other option is to set up port forwarding on your router. Usually
routers are configured to reject incoming requests, which keeps your
home network safe. Setting up a port forward creates an exception to
this rule, and instructs the router to forward traffic on a specific port to
a specific machine on your internal network. In this way, you can set up
just HTTP/S web requests (usually on port 80 and/or 443) directly to
your web server, without opening up the rest of your home network to
the world. Take a look at these instructions to set up a port forward on
your router.

Setting Up Your Self-Hosted Web Server


Now that web traffic has reached your network and you can direct it to the
right place, the last step is to make sure there's a server in place to receive it.
1. First, set up a server machine, which can run Windows or macOS, or
even Linux. All of these OSes are capable of serving a small personal
site. However for security and performance reasons, it's best to use a
computer that's not your primary work machine.
2. Make sure the server machine's IP address matches the settings you
created for the port forward.
3. Next, you'll need to install the web server software itself. There are tons
of free-to-use web servers you can install on one of your network
machines. One of the most popular is the open source Apache web
server.
4. Finally, you can upload your site to your server machine. Simply copy
static web pages (for example made with a static site generator) to the
server's web folder, or optionally install a CMS like WordPress.

You might also like