Since the ye ol’ days I have been self hosting one thing or another at first from a repurposed family computer to now using cloud infrastructure like Linode and Digital Ocean. I’m not a sys admin by day (and I don’t claim to be) so it’s only in my (lack of) spare time I put these things together and work on it here and there. With the advent of the Smartphone and 3/4G mobile networks it has become a lot easier to do this from a device in your pocket or bag.
I’ve been setting up my own servers since I was living at home on an IBM Pentium 3 700 MHz computer when it was replaced with a new family computer. At the time it served as a webserver, printer server, proxy, database server and any other service I wanted to play with. It always ran a flavour of Linux on there whether it was a SuSE Linux to Fedora Redhat.
At the time, all the upgrades were done by hand and from scratch. Fast foward a few years to 2009 when the server died and the family was disgusted they had to plug in a USB cable to print again. If they didn’t appriciate it then, they did now. OK they could buy Wifi enabled printers but those didn’t come below £100 for a few more years (post 2010).
So here I am now in 2014 with a Nexus 5 and 4G connection troubleshooting an instance that I was alerted to.
My current setup all uses Digital Ocean as my cloud provider with anywhere from 2-6 instances (or droplets as they call them) at a time but most of these tools either work on any type of server e.g SSH or there are usually alternative apps.
All my servers are running Linux and all my mobile devices are Android based.
Instance – DigitalOcean Swimmer Android shows a list of droplets running on your account and allows operations like stop, start, restart, etc. It gives the status of the instance as well as the details about them like IP address.
SSH – I use JuiceSSH from Sonelli Ltd. The app uses connection profiles and identies for storing connection information and authentication. This is brilliant feature because it allows you to config say 3 connections and 2 out of the 3 use the same identity profile i.e same username / password or SSH key.
The app makes my life easier because it has synchronisation so any changes to my connection profiles are replicated to my other Android devices. You can choose to sync everything, nothing or just the connection details and not the identies.
Something that didn’t fit to the above categories was a plugin for JuiceSSH called JuiceSSH Performance Plugin. It’s a perfomance monitor to show resources like CPU and memory of a server. Since it is a plugin to Juice SSH the app uses the same connection profiles defined in juice.
uptimerobot is my chosen monitoring service. I used Pingdom before and it was fantastic with an Android app as well but the cost of adding more than one monitor was too high for a prosumer like myself. uptimerobot is actually free and allows up to 50 monitors. It’s check frequency starts at 5 minutes so not as quick as Pingdom but I can’t complain for a free service. Also with multiple instances running I need more than one over check times.
The service sends email notification of events but also has a nice dashboard on the website. One down side compared to Pingdom is that the data for the dashboard only shows the last 24 hour period in a detailed hour by hour view and then it gets aggregated to weeks to a month.
uptimerobot has their own Android app which is paid for but I chose Uptimerobot Client by 1101.hu. The app hooks into the uptimerobot API and polls for events. Once an event is picked up, it will use the phone’s notification system to show the event. The app has settings to change the poll times. The app allows management of existing monitors from delete to muting alerts on the mobile device only.
As devices, mobile networks evolve I hope to gain even more mobility. It’s amazing to think this is possible when a decade ago people were using beepers to alert and get people on site.