This has been a long time coming. I liked the old site, but really didn’t need the dynamic strengths that Django brings to the table. My server was approaching the end of the security update period, so it was high time to make some hard decisions.
The first was to use a tool to help manage the configuration. I waffled around on several, but settled on Salt. Now that I’ve done it, I really want to try another tool. Not because Salt stinks, but I want to see what approach some of the others take–Puppet in particular. I’m also familiar with Chef, but didn’t really want to use it here and they seem to have struggled in how to do the masterless setup. It took roughly 900 lines of salt scripting to get everything together, but I’m pretty happy with how things have gone. There’s definitely a lot more to learn, especially when it comes to structuring the Salt state files.
I also needed to update the style used on the site. Google was flagging my site as being unfriendly to mobile devices. And while I do write a fair amount of code for display, it was possible to do better. This is my stab at doing that. I imagine I’ll be tweaking things over the next several months, but I think it’s largely there. I can’t stress just how much work goes into making a useful site. I really like for folks to be able to print the posts and reference them, and that’s quite a task in it’s own right. I also went through several different style variations before landing on this one.
The most painful bit was upgrading to new versions of tooling used by my site. For instance, as part of the security, if you attempt to authenticate over SSH and fail, I ban your IP address for a while. This is to help stop the script kiddies and such. The tool I was using before isn’t well supported anymore, so I had to move to a new one (fail2ban).
Gitolite saw a bump in the major version, along with several minor version bumps too. Tracking what happened between all those releases was hard, despite all the migration docs. And I really wanted to make several adjustments to how things worked. This took a considerable amount of time, but I think it’ll be worth it in the end.
Instead of using Django for the new site, I switched to Jekyll. I’m not a Ruby-ist, but I was able to learn enough to help make a couple of plugins that help drive portions of the site. The nice part is that all that needs to be running is a static web server. No databases and no WSGI process running in the background. It’s all very light, pretty portable, and runs well on a VPS.
It’s definitely been hectic getting this done, but I’m glad it’s finally there. I hope you all enjoy the refresh!