Archives for : Software

SSL Issues

Shortly after re-making my website I got a little obsessed with Google’s Page Insights and optimising how quickly my website loaded. Since I am using a cheap host one of the negative points was that the server response times were a bit slow.

Speedy

To try and get around that (especially away from Europe where my site is hosted) I decided to try out a CDN. Cloudflare is one of the largest CDN’s and provides a free option for anyone not needing fancy tools (like personal SSL certificates). After some fairly simple configuration I had the DNS for my site pointing to some Cloudflare servers, and SSL all the way through. Both OVH (my host) and CloudFlare offer free Lets Encrypt certificates, but Cloudflare requires a separate one as they can’t do any fancy load balancing on encrypted data.

In what is probably a wise move, Lets Encrypt force SSL certificates to expire after 90 days. In another wise move, OVH won’t automatically issue certificates if your DNS zone isn’t on their network. Makes sense. Also, if your site doesn’t have a valid SSL certificate, Cloudflare will block access to it (if you have SSL enabled)… Fuck…

My site temporally became so secure, not even I could get onto it. So after more configuration, I had reverted my DNS to be provided by OVH and generated a new SSL certificate. What Lets Encrypt are doing is really good, there is now no reason not to have a valid SSL certificate for your domain. However, it’s not as simple as it could be, anyone getting SSL issues like this would be tempted to give up on the whole thing.

Linux Server Pulling Sextuple Duty

There are many services out there which you can buy with your hard earned money, which under the hood are nothing more than a Linux server. Mostly you are paying people to write all those pesky Linux commands for you because Linux = hard. However, if you happen to have a Linux server for one reason or another, there’s no reason not to make it do all the things you need.

My original reason for renting a dedicated server was for *ahem* torrents… Perfectly above board, helping open source projects distribute files etc. Since then, I have expanded what it does to 5/6 different things. I plan on writing guides on the setup of each of these function, largely for my own benefit when I next break my server (this happens quite often, often enough you really shouldn’t be listing to my advice for anything remotely important).

Torrents

I use rtorrent with the rutorrent web interface, which makes it really easy to upload files and monitor their progress. Despite their bad reputation torrents are an extremely useful way to distribute large files without the need for a lot of upload throughput. Many small open source projects make use of them because they simply don’t have the resources, such as the 30GB HD solar system pack for Space Engine (which incidentally is amazing and should be used in school to teach astronomy). However due to many people using torrents for downloading copyrighted material, many ISP’s block or heavily throttle torrent traffic. Having a server somewhere else can help bypass these restrictions.

VPN

Also useful for getting around those pesky ISP restrictions. Where VPN’s can be really handy is whenever you are forced to use an unencrypted Wi-Fi connection or any connection you don’t trust. Call me paranoid, but I’m not keen on doing anything important on McDonald’s free Wi-Fi. If you don’t think you are doing anything important on your phone at McDonald’s, you clearly don’t understand the amount of background data your smartphone uses. A good VPN will encrypt your data before it even leaves your device and stops people being able to track what sites you visit.

Git Repositories

If you do any kind of software development, you should be using version control software. Period! It is number 1 on Joel Spolsky’s 12 steps to better code list. Most open-source projects use Git on a service like GitHub. Git was made for keeping the Linux source code under version control. If however, you want a private repository that you can access away from your home network, you often have to pay a monthly fee. Git is a breeze to setup on any Linux server. You can be pushing via SSH in under a minute.

Minecraft Server

Now we are getting to the really important stuff. People love a Minecraft server! Getting one set up isn’t hard (unless you want mods), and it is super cheap. You can get a VPS for £2.99/month which can support around 20 players. If you need more RAM, they can often be upgraded on the fly. I visited EMF camp last summer with some friends, and we hosted a Minecraft themed village, complete with swords! I used a cheap VPS to run a Minecraft server for anyone to join over the weekend with no problems (other than poor Wi-Fi).

Team Speak

Once your Minecraft server is setup, you are going to need a way to tell those kids to get off your damn lawn! Once again the gaming industry has seen fit to provide many overpriced options for things like Team Speak. You can run it on the same server the Minecraft world runs on without any problem. Once it’s setup you can setup rooms etc through your client so it can be used by people playing different games.

File Backup

This is one I am still playing with. For a while, I used BitTorrent Sync to keep my files up to date between my laptop and desktop. I stopped using it due to a number of CPU resources it used to index everything. I plan to re-visit it in the future. When I do, rather than using my NAS as the primary backup location I will probably use my server since it is off-site in France. I still have to work out all the security measures to keep my files safe.