Self-hosting: still getting better

19 February 2017

Several years ago, I began to self-host some services and it's quite fun to do. Today, as I'm now working as a devops/sysadmin I will explain what self-hosting is, its pros and cons and how to improve practices.

What is self-hosting?

It means to host services like emails, your website or a RSS feed aggregator on a computer at home. I better suggest to host your own service on a server hosted by a professionnal. We could call that self-management instead of self-hosting as it is not technically hosted at your home, but there is not really a word for it from what I know. Indeed, managing your own services hosted by a professionnal is already something difficult to do. If you want to host the services at home, you will then have even more constraints.

Cloud computing categories

There are three principal categories:

  1. SaaS (Software as a Service): You can directly use the software. For example, wordpress.com allows you to create and manage your blog without having to install anything.
  2. PaaS (Platform as a Service): You get a preinstalled plateform and the environment is already working. For example, Gandi's Simple hosting is a shared-hosting on which softwares like PHP and MySQL are already installed. You will have to upload the Wordpress files on the server in order to install the blog, then you will be able to create and manage your blog.
  3. IaaS (Infrastracture as a Service): You simply get an empty server. You will have to install the software yourself, for example PHP and MySQL, then upload Wordpress and install it, then you will be able to create and manage your blog.

Each category has his own pros and cons. Higher the level it is (in our case the SaaS), easier it is to install, but it's often more expensive and you have less control on the way it works. Lower the level it is (in our case the IaaS), more you will master the way it works, it is often cheaper, but it also more difficult to manage and it takes time.

We can speak about self-hosting when using a PaaS or lower, because you can choose wich software to install. If you choose the software we can admit that you master the way of operating and therefore you have to take the responsibility. It is however more complicated if we go into details.

Difference between self-hosting at home and at a hosting provider

If we look the three levels of cloud computing I described above, we can say that hosting services at home is even a lower level than IaaS, because you have to manage the hardware in addition.

The advantage of self-hosting at home is that you can control absolutely all the working of your services whereas in the case of a hosting provider you delegate the hardware and/or the software management (according to if you chose IaaS or PaaS) to avoid to have to do it yourself.

Summing up with the Wordpress example:

Self-hosting drawbacks

I begin with the drawbacks in order to finish my blog post with more positives things like the advantages and all the possible solutions. I will first list all the issues with self-hosting, then I will continue with those that add when you choose to self-host at home:

Self-hosting at home

If you want to host the services on your own server at home, you have at least three more constraints to take into consideration:

Self-hosting advantages

Now that I have listed all the drawbacks, here are the advantages:

How to reduce the disadvantages

Here are some solutions to make the disadvantages less an issue.

Today's self-hosting issue

Self-hosting is often recommended in the Free Software and Open Source communities in order to take back control on your personal data. However, it is easy to say, but difficult to put into practice as it requires quite some technical skills.

Today, self-hosting is still mostly done by people who knows Computer Science, but it is also difficult to maintain the services on a day-to-day basis. We often omit the maintenance cost. It means that whatever each one skills, maintaining services requires time, and according to each one priorities, this time may not be available.

With this blog post, I wanted to show objectively to the advanced users that self-hosting is on a good way, but it's still not that great. Initiatives like Cozy Cloud and Yunohost are helping a lot, but it still limited to people who knows to use the command-line. So, we have to continue to democratizate these tools.

There are especially two subjects for which there is still no good solution: data backup and server security. Encouraging amateurs to self-host without training may increase the risk for them to see their data lost or their server compromised by a pirate. It can be argued that these issues doesn't concern only self-hosting, but you have to admit that services like Gmail and Dropbox are quite good to ensure their users don't have any problem and to remove a burden.

Conclusion

First of all, in order to make self-hosting more accessible, we can encourage initiatives like Indie Web, Yunohost, Cozy Cloud and "Dégooglisons Internet" (in French). Next, there are today great tools (like Docker and Ansible) to enlight services management. We should use them and improve our skills in order to:

  1. Offer as good service quality as big companies at an association level
  2. Facilitate and improve quality service of self-hosting for the most motivated

Doing this will allow people to have a bigger choice than only the GAFAM (Google Apple Facebook Amazon Microsoft) to use Internet services and to host their data. And for the advanced users it will be less time-consuming and less complicated to self-host.

One tip for those who want to self host their own services: gather yourself with friends or pay an association like the CHATONS that you trust, because it will be easier for you to manage (and time is money). If you are several to manage the services you can share the tasks and do the work on a rotating basis.

Finally, what I'm writing here is exactly what Framasoft is doing by publicly hosting services accessible to everyone, explaining how to self-host ourselves and encouraging associations to offer services themselves. Concerning myself, I will try to help by continuing to write articles about this subject that I hope will help you to better self host you own services.