While I generally like having no set topic for this blog due to the freedom it gives me over what and when to write, it also means there’s pretty much no chance of regularity to my posts. As you may have noticed, I haven’t posted anything on here for a while and it’s not because I’m incredibly busy – I just haven’t felt the urge to write about anything recently.
Well, that changes today.
The other day I came across a project called Remonit which is aiming to be the go-to tool for geek-types wanting to have real-time, web-accessible stats on pretty much anything on their devices – from netbooks to servers – pooled together into a custom dashboard. Seems pretty damn cool if you ask me.
I haven’t yet tried it out, but one of the first things I wondered when I found it was “how easy is it to do things on-demand on these remotely monitored devices?” I mean, having the devices ping their data to a web-accessible server for you to look at is cool, but what if those stats tell you that some fairly urgent action is required? Maybe a process has been running for far too long eating loads of your CPU and RAM, maybe a process has finished and you want to get some more detailed results, maybe you forgot to set your media server to record a TV programme.
Remonit doesn’t seem, from it’s description or use cases, to cater to these scenarios. You might think that’s not an issue. Media servers like XMBC, Emit and Plex have features or plugins to let you do stuff remotely these days, and you can even get external HDDs that give you a butt interface out-of-the-box. You can even get a Dynamic DNS subscription, attaching a domain to a device in your home that updates whenever your ISP gives you a new public IP address.
But all these systems are separate. What are the chances they play well together? What if you have multiple physical devices you want to make web-accessible? What if you have a website and domain that you’re already paying for? Is there not a way to connect to all of your devices, separately, from the single entry point of your existing domain?
Not that I’ve ever heard of, or found with some Google searching on the topic of dynamic DNS. And thus, PHP_DDNS was born!
There’s a decent description in the
README on GitHub, and if you’ve read this far you should have a good idea of what I’m hoping to achieve anyway, but here’s a summary:
PHP_DDNS is designed to add, update and remove device IP addresses from a database, allowing you to keep track of your devices for providing a way to access them remotely – all from your existing hosting + domain combo – and then give you an easy way to programmatically access these tracked devices.
In short: the goal is to make a simple, self-hosted and personal Dynamic DNS tool for just about anyone with a hosting package (PHP and MySQL a must) and domain.
Since starting work on this yesterday I’ve had a few ideas for other things this can be used for, each of which I intend to develop separately as plugins once I’ve released
v1.0 and the Admin Portal. For starters, an IP-restrictive authorisation tool is an obvious use for this system – only allowing certain devices to access parts of your site without having to manually track and update their IPs. Secondly I thought that it should be possible to use it as the basis of a push notification system, too.
My dream is to have PHP_DDNS, the Admin Portal and a collection of “official”plugins (including the two described above) maintained by me while the core system allows others to easily integrate it into whatever project they want – hopefully resulting in a bunch more plugins being made for scenarios I would never image, let alone come across.
If you want to take a look at the project, the repo is linked below. Feel free to fork and send me pull requests, or open Issues for feature requests and the like, if you want to contribute.