Building my own server using Ubuntu, GPROFTPD, Apache2 & VSFTPD
Tell me moreWhen I first started this website, it was hosted from my own home-made server. During the second year of my Bachelor Creative Technology, I broke my (Asus K56CA-XX009H) laptop and was forced to buy a new one. This meant that I had an old, broken laptop lying around waiting for me to give it a new life's purpose. So, I transformed it into a Linux Ubuntu Apache2 (S)FTP Web server.
I started by wiping it completely clean. I deleted everything from the hard drive (after making a backup on an external one, of course). I even deleted the operating system, since I was going to switch from Windows 8 to Ubuntu Server. I then installed all kinds of different software packages. The most important ones being GPROFTPD (Interface), Apache2 (Server software), MySQL (SQL software), PhpMyAdmin (SQL interface) & VSFTPD (FTP software).
I won't go into too much depth as to how the server works, since it's rather complicated and boring. If you wish to build a server yourself as well, there are tons of online tutorials available. Plus, even though I don't use it to host this website anymore, I still have it online. It now serves as my own private cloud as well as online playground, for projects that require a server. So, for security reasons, I don't want to explain its functionality and how I secured it in too much depth. I eventually stopped hosting this website from this server because of a number of reasons. The first and foremost being speed. Although optimized in a number of ways, my old laptop was still not built to be used as a server (I didn't replace any of the hardware), and it was getting old as well. This meant that my website would load slowly. The server had trouble streaming videos to even a single client. I want my website to be user-friendly and fast. This means preventing technical issues and cutting loading times as much as possible. Unfortunately, my server wasn't up to this task.
Security was another reason I switched. Although many aspects were properly secured (E.g. my PhpMyAdmin was behind a hidden URL and protected by a .htpasswd and its regular password), I wasn't too confident in its security. I didn't use SSL or SSH encryption, for example. Meaning that I was only able to use HTTP rather than HTTPS as well as FTP instead of SFTP. An SSL certificate was provided for free with my current hosting service but would cost me about 30 euros a year if I brought it for my own server. At some point, the costs weren't beneficial enough anymore.
I never really did it for the money though. I did it to challenge myself and because I was curious as to whether I could. I learned a lot from this project and I'm very happy with it in the end, despite the server being rather slow in the end.