I’ve been promising myself to write about my blog setup for a while now. As I explained earlier, I use Jekyll – ‘a simple, blog aware, static site generator’. Every time jekyll generates html, it gets dumped to the
_site folder. I have my local nginx pointing to the
_site folder, so every time I start write blog posts, I open a terminal, go to my blog’s root folder, and run
jekyll --auto and hit my nginx install from the browser. This way, every time I save, I get to see what it looks like. I found this much faster than doing
jekyll --auto --server and using the server with Jekyll. I version control the whole folder minus the
_site folder with git and I’ve set up a bare repo on my server to which this will get pushed too.
Jekyll also runs on my server because I want to be able to blog from any machine from which I have SSH access to my server. I’ve set up the following commit hook on the bare git repo that regenerates the HTML files on every push.
GIT_REPO=$HOME/blog.git TMP_GIT_CLONE=/tmp/blog PUBLIC_WWW=$HOME/blog-www git clone $GIT_REPO $TMP_GIT_CLONE jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW rm -Rf $TMP_GIT_CLONE exit
Its a pretty rad setup. For comments, I’ve setup Disqus, which was quite easy. I set up askimet with them, so that the spam gets filtered, yet to get spammed though (knocks on wood). Overall, the setup has been quite nice and yes very nerd friendly. I can write in my text editor of choice and commit to git with complete rollback history if I want to. Not having an admin panel from which things can be changed is a great benefit!
I’ve moved my blog from wordpress.com to nigelb.me. I originally planned to run wordpress here too and export my posts from the old blog here. Unfortunately, that ran into problems. My VPS wouldn’t run nginx + php-cgi + mysql at the same time. Every time I tried, I would run out of memory. My first instinct was to increase the RAM, which I did. But, I looked for a better solution. My friend suggested Jekyll. In Jekyll, basically, the posts are written in markup and then converted to HTML files. That got me interested, I could eleminate php and mysql out of the picture. That’s a lot of memory saved to do other things. It took me a fair few number of hours to set everything up. But I’m very happy with the security (no admin panel really) and I’ve used git hooks so I write a blog post on my computer and push to the repository, which updates the live site. Awesome and geeky. With a bit of effort, I’ve gotten RSS feeds and comments working too.
Now, the other thing about summit. If you’ve ever participated in a UDS, you probably know summit. You’ve probably griped about it a couple of times, haven’t you? 😉 Well, you should also know that summit is open-source and built on Python/Django. Right now, we’re looking for fresh blood to come and join us. We’ve fixed a bunch of bugs post-UDS and we’re looking for more people to join us in the fun. I’ve tagged a few bugs as bitesize. They are quite easy and if you need help setting up the environment and actually going about fixing the bug, please feel free to ping me (nigelb), Michael Hall (mhall119), or Chris Johnston (cjohnston) in #ubuntu-website on irc.freenode.net. If you’re a web developer who wants to contribute to community projects other than summit, please take a look at the Community Web Projects. I believe we have enough for everyone 🙂