This is a tech post, so if you’re not a techy person, feel free to stop reading now!
We’ve been reorganising the CycleStreets codebase to get ready for open-sourcing the remainder of our software.
This has been a challenging task involving learning how to write scripts that automate the installation of the CycleStreets website. The job has taken rather longer than expected, but has resulted in a much clearer structure to the highest level of the CycleStreets system and given us greater control of how the system is deployed.
It is fair to say that this aspect of our system had become rather complex with a lot of hidden dependencies. This would have been a real barrier for new coders to our project and so it had to be sorted out. The work now allows our codebase to separate out into these scenarios:
- Live deployment – provides the main CycleStreets website
- Failover deployment – holds a replicated copy of all CycleStreets data that can be used, should the live site fail for some reason
- Import – processes the latest OpenStreetMap extracts into a routing system
An immediate benefit of the work will be that we can much more easily deploy each of these roles. So for instance we could have multiple import machines, and each could be configured to serve different regions of the world.
We still have a little further work to clean and clarify the codebase before we can open the core code. This has been our main priority for the last few months, and will remain so for the next few weeks. It won’t be perfect, but we’ve aimed to get rid of the really bad dependency gremlins.
We’ve also been doing various cleanups, such as removing this blog installation from the main repository, daemonizing the routing process (optionally), and adding SMS monitoring.
The ongoing work on the scripts part of our system can be viewed at our public CycleStreets setup repository.
2 thoughts to “Scripting CycleStreets setup (Tech post)”
Good work people!
Will there be any info on typical hardware requirements?
Particularly memory & typical disk space of the setup (are you hosting the map tile images as well?)
e.g. would you be crazy to try and run it on a Raspberry Pi + USB drive?
or an old ‘desktop’ PC
or do you need ‘server’ grade machine
Good questions. it depends how much of the world you want to cover.
Our test setup for the Cambridge only area consumes about 100MB. But to cover the whole of the UK, Ireland and some small countries in the rest Europe it adds up to about 50GB.
Our setup is a GLAMP server, tested on Debian Squeeze and Ubunut 12.10.
I guess we’ll need to write this stuff up as soon as we can release our code base.