Self hosting

Introduction

When you have a(n old) computer lying around, and you have cheap electricity and a good internet connection, self hosting might be a good option for you.

Why would you choose selfhosting?

Hardware

What kind of hardware should you choose?

If you pay your own electricity bill, power consumption is a big factor. Most old laptop computers are ideal in the sense that they don't use a lot of power, and if the battery still works, you have a built-in UPS! The bad thing is, is that most old laptop computers aren't that powerful, and they lack in upgradability. (you shouldn't really be using anything older than 2006, and I recommend at least a power equivalant of a Core 2 CPU)

If you can find an energy efficient desktop (under 100W), that is a great option. They are pretty upgradable and they don't use a lot of power. They can also be pretty cheap, but old laptops are usually cheaper. If you can afford new hardware, and are willing to build a PC, you can find really power effecient CPU/motherboard combos, and they can be cheap. For example the Celeron J3060. I recommend a low wattage power supply or an effecient one for these kinds of builds.

Of course, if you don't pay your electricity bill or cost is not a problem for you, you can use just about any old desktop.

Usecases

Of course, hardware choices depend on the usecase. The above recommendations I gave you work fine for e-mail server, webserver and fileserver types of applications, but they will struggle transcoding video if you are going to host a media server. You'll need a faster CPU, but also a faster GPU. As an example the Athlon 200GE or 3000G are good and efficient choices for these builds.

Getting started

Installing Debian

Once you have the machine, you can install the OS. I recommend Debian, as all of the guides on this website are Debian specific. Debian just werks as a server OS.

You'll need to burn a Debian install image onto a USB flash drive or a CD. You can download the image here, and you can also find information on how to burn the image onto a USB flash drive or CD there.

While installing, do not install any desktop environment, but do install the SSH server.

Port forwaring

Every time you are going to use a port, you need to forward it. For example, HTTP is port 80, HTTPS is 443, etc. You need to set this up on your router's NAT settings (sometimes just port forwarding, differs per router). These steps differ for each router. Refer to your routers manual. A simple command to see what your IP address is, is ifconfig. This shows a lot of network info, but it will also show your local IP address needed for port forwarding.

Basic ports:

Static or dynamic IP address