Automated deployment with git is awesome like a hotdog AND like the universe…

Incorporating version control into your deployment process (assuming you have one…), like regular exercise, balancing your checking account, and eating more green vegetables, is something you know you really ought to do but never quite get around to doing. In part because we’re going through a minor overhaul of our processes at work and in part because I’m interested in working with git and automation, I’ve started banging around with GitHub, webhooks, and various third-party deployment services.

I’ll say that I’ve learned more about Linux file permissions than I’ve ever wanted to know, and I’m growing disturbingly comfortable with vi. That’s not a bad thing, per se, but I’d like whatever process I finally land on to be as simple as possible, and, most importantly, to be portable. I’ve been doing some interesting things with server-side scripts, and while I’m fairly pleased with the outcome so far I’m not very confident that what I’ve come up with would translate to, for instance, a brand spankin’ new server without a fair bit of configuration. It’s definitely nowhere near a plug-and-play setup.

I’ve seen some success with third-party alternatives. FTPloy in particular has been relatively simple to set up and works pretty well. The big downside, such as it is, is that you’re basically just asking another website to grab the files from GitHub and FTP them to your site. The initial deployment is, as you’d imagine, fairly lengthy, but subsequent updates are fast. You gain the benefits of version control and it’s very portable, but you lose the speed of a git pull/checkout.

Spending so much time screwing around with logistics instead of working on the site itself is frustrating, but I’m banking on this paying off in the long run.

New Sites!

Finally deployed the site I’ve been working on since May: Not gonna lie, it wasn’t a completely smooth process, but it’s done and I’m pretty proud of it. Zach Friedman is responsible for the design, I’m responsible for the code, and Guy Stephens led the project and kept us out of meetings.

We’re using ExpressionEngine for the CMS, and I’ve got to say I prefer it to WordPress for everything but blogging. Lots of support on the back end for setting up a good, robust data architecture, fairly user-friendly, and uses a very flexible templating engine that fits right into standard HTML. It actually looks a little like EJS or Handlebars. Much nicer to work with than some other CMS’s (cough cough WP cough cough) when you want to have full control over the front end.

Ironically, I also just rebooted this site as a WordPress site. This was largely a result of my wiping out my existing site while working with some automated GitHub deployment strategies. At this point I’m content to just have the site up and presentable while I rebuild the content, but eventually I’d like to use this as an opportunity to do some work with WordPress theme creation.

In the course of the reboot I upgraded from a hosted site to a VPS, and have been fiddling with things like private nameservers and local mail, which has been instructive. Also, nice to have an email address at my own domain for stuff like using Outlook (don’t judge), PGP, and just general nerd cred.