A Virtual private server (VPS) is a server that does not directly exist as a single computer, but is emulated on a computer together with other virtual servers. This means that they are usually cheaper because they share the resources with other servers. The good thing about this is that you (the admin) have (almost) complete access to the server. You can install whatever OS you like and have complete root access, which enables you to change almost everything. In contrast to a hosting arrangement, where you only can host websites.
The reason why I am renting one is so I can play around with it :) It is wonderful fun. During the last couple of months I have set up multiple services on it, which I briefly describe now:
As a web server I have set up nginx with php-fpm. I decided for nginx because I wanted to be able to provide proxys to other websites.
Currently I’m running:
- marcsi.ch (this website)
- with subdomains for services I use
- gitlab (code management)
- rutorrent (BitTorrent seedbox webinterface)
- tools (stats about the websites)
- with subdomains for services I use
- a private website for my fathers wine club
Gitlab – Git
I needed to set up something so I could manage the source code for my various projects. With this combination I have a wonderful setup which gives me the ability to version control all my code I write, without having to worry about policies of the various free services that offer the same.
I use openVPN regularly for various reasons. Mostly for anonymity. The openVPN server I set up is not because of that though. It is because now and then want to watch Swiss television (football mostly), which is no problem through the internet (Wilmaa, Zattoo, or srf.ch). The problem is that this is only possible if you are sitting in Switzerland. By using a openVPN connection to my VPS located in Zurich, I watch the streams via the Server and therefore use a Swiss IP, which makes me look like I watch directly from Switzerland.
For one project I am working on, I need a good way of sending messages around. I decided for XMPP, because it is widely used. Instant Messenger services like Google Talk use the same system. Therefore I set up a Prosody server. It is running, but not really used at this moment.
DNS Server – dynamic DNS
For a couple of projects I needed dDNS. There are a lot of services out there that offer this. But the way I am, I wanted to set up my own system. Therefore I set up bind9 as a nameserver. And after a bit of research I am able to update the DNS entrys automatically (nsupdate), from a remote location. My raspberry-pi at home has now a domain name (i.e. xxx.dyn.marcsi.ch), through which I can always reach the device, even if the IP changes now and then.
Like most VPS providers, mine is providing a backup FTP server, on which I can upload backups. These are encrypted. The decryption keys are safely stored somewhere I wont tell you. So when all data is lost, I will be able to restore most of it. These backups are made daily.
This is nothing big. It’s just a statistics program, and displays the usage statistics of the Web server in a human readable format on a webpage. I am able to view these stats in my tools section (private)
rtorrent – irrsi – autodl – rutorrent
I have also setup a seedbox for all the torrents I want to help seeding. This helps me seeding rare torrents 24/7. If I ever want to distribute large files, this will be the way to go. The rutorrent interface provides me with a wonderful way of adding/deleting/changing things.
I use this Bouncer, for all the places I now and then visit on IRC.
I’m sure I forgot things. Maybe I will update this post, or just make another post on a later date.