How to setup your own VPS & Internet services - Introduction
→ Why would anyone want to create a personal server for hosting a website, blog, email, Git and FTP servers?
Photo: Wikimedia Commons
- Your very own web server
- Setting up your new email server with Postfix & Dovecot
- Like to code? Go on and host your own Git server
- FTP server setup with vsftpd
It’s easy to miss the fact that most of our personal content is nowadays distributed across closed source online services run by (more or less) respectable tech companies. Starting with personal email and moving up all the way to physical activity tracking, documents, personal photos and almost everything else. Of course, this is apparently to the users’ advantage, since most people would not be interested in configuring servers, naturally. It is desirable that anyone who wishes to create an email account to be able to do so by using an existing, trustful service.
However, it seems to me that there is a thin line between facilitating user activities & full-on user manipulation. Looking at how GMail inserts ads into your Inbox based on the content you receive over time would point out a few ethical issues. Sure, companies must be profitable, but I wonder if users would rather pay 1$/Euro for a truly private email service instead of receiving ads.
Anyway, in case you find yourself at the crossroads between willingly surrendering to corporate services & taking control of your own essential data, maybe the things described in this multipart tutorial will prove useful in some manner. For I have been using “famous online services” for more than a decade, but for the most of it felt things got a little too out of my control. Talking about email services, I find the GMail interface to be quite bloated nowadays. Since its design and functionality are not really under my control, it was inevitable to start thinking about replacing it with something else. In the end, that “something else” was good old SquirrelMail as a frontend for my own email server, hosted on my own VPS. But we’ll get to that later.
Why would you do this?
Well, it will teach you a few things. Okay, I’ll admit that if you’re not technically-minded, this might be a bit of an overkill. But if you like computers and like to toy & tinker a lot, then jumping into such a task would reveal new knowledge. On another note, doing something that puts you out of your comfort zone (and I dare say that comfort has become the great enemy of our time) is truly beneficial.
Your own website
I often argue against the use of social media, or at least for using these services as little as possible. I do understand some of the benefits they may bring to people, but to me the downside outwheighs any benefits. One of the things I like pointing out is that people should continue writing their thoughts down and, if desired, make (some of) them available online. However, these would be better of on a personal blog or website than as entries on a social media account that’s subjected to ambiguous censorship and uncertain long-term persistency. These services are controlled by companies you cannot influence and, as weird as it may sound now, Facebook & Twitter will not be around forever. Furthermore, post indexing on these two services is awkward enough so that things you write about are very hard to find by someone lacking a direct connection to your profile.
Of course, one may choose any of the existing blog & website hosting services that populate the Internet today, but I’m trying to get in touch with that Homo faber instinct that still lies dormant within us and desperately tries to manifest itself. People love doing things on their own. There’s a reason the DIY communities are so vast and present in our modern societies. People start learning carpentry as a hobby only because it’s an activity that directly connects to that deep, primal urge of building things, thus arranging the world, giving it new meanings and turning some sort of chaos into some sort of order. Therefore, creating your own web server & website from the ground up is a perfect fit for a DIY activity. And you’ll discover it’s a fun one as well, and not as hard as you might think.
Being an advocate of static website generators, I will elaborate on how an individual may quickly, simply and efficiently build & use a personal website and blog without the need to tackle advanced publishing tools & CMSs.
Your own email service
It might turn out that this form of communication actually does more harm than good when it comes to professional use, at least. Of course, it is a great tool, but one we should not entirely depend on. Nevertheless, email exchange is one of the requirements of modern day societies, therefore having one is desirable. In this regard, having your own email server brings some advantages:
- Total control on the services you actually use Maybe not everyone needs POP3 anymore, or other “addons” that would “help make your life easier and more productive”
- Greater security You decide what certificates and encryption to use and decide which spam filters suit your needs.
- Web frontend flexibility At the moment of writing, there are several “webmails” available. Roundcube, Rainloop & SquirrelMail (this is truly an old one, but it still works like a charm and, who knows, maybe I’ll soon get “mad” and write a mobile-friendly theme for it…) are just the more popular ones.
- Speed This also depends on the performance of your VPS, but since you are not going to add hundreds of users to your server right away, there are quite some spare resources to enjoy.
In the end, let’s not forget the overall satisfaction of publicly using your own email address, hosted on your machine running an email server configured by you.
But, then again: why?!
Because it’s fun, challenging and rewarding. One has to experience these feelings firsthand in order to accurately value them.
So, here we go!
Getting a VPS
The first step is to buy/rent a VPS (Virtual Private Server). Of course, if you happen to have an Internet connection with at least one fixed public IP address, then a physical machine can be used for setting everythin up. I do believe these situations are pretty rare, therefore I’ll asume you want a VPS.
There are a lot of providers out there, so you must start digging info about the ones that seem attractive to you. Maybe you want one closer to home or you’re on a tight budget. Unfortunately, this decision is yours alone. For example, even though I live in Romania, the host used for my VPS is in Lithuania. Why? Because Romanian VPS hosts are way too expensive for the functionalities they offer. So I chose Time4VPS.com, and I get by using the smallest Debian VPS from their catalog.
I would suggest you don’t go for a lot of included traffic, since we are going to setup a server for personal use. Email exchanges & a personal website should not need generate that much traffic, at least in the beginning. Just make sure you choose something that would fit your current needs. Start small and upgrade if necessary.
Since each VPS host has its own interface and workflows, I will not go into details on how to set it up. Just follow the instructions provided by your host. Nowadays, spawning a VPS is quite a simple process that can be done entirely through a nice web interface, with a bunch of clicks. Suffice to say that these tutorials assume you are using a Debian or Debian-based Linux distribution (I use Debian 10 on my VPS, but commands should be the same for Ubuntu 18.04+).
Now that your VPS is up and running, let’s start by creating your very own (and, maybe, first?) web server.