Session Idea [Make] – Build a Linode Stackscript for a Digital Humanities/Library Application Stack

There is a necessary tension between University IT departments and the curious digital humanist, computer scientist, and librarian.  IT departments pride themselves on building and supporting things that don’t ever break and that are always secure — we love them for that!   So, getting approval for a new, untested, open source project can be dicey.  On the right occasion, it’s really fun AND necessary to play fast and loose and forget about all that other stuff and just build something.  Sometimes, you just gotta have root access, right?

There is a GREAT solution to this quandary.  For the price of a textbook, you can sudo, script, and savor the best that the open source community has to offer.  Or build something without concern for impacts on your campus IT environment.

Linode.com is a VPS (virtual private server) hosting company that provides any Linux distribution your heart desires and they make it ridiculously easy to set up.  It also boasts great tech support, and a pretty impressive community of other hobbyists and hackers who know a lot and are happy to help you when you get stuck.

Lastly, and most importantly for our purposes, they offer what are called ‘StackScripts’ — a customized set of instructions that permits the deployment of a specialized ‘stack’ of servers and applications — such as Linux/Apache/MySQL/PHP (LAMP) + Omeka.  Or Linux + the language R + text mining packages.  Or Linux + Python + geospatial stuff like geonode (geonode.github.com).  Or Python + Django haystack + Solr + jetty …. I’m sure you get the idea.  StackScripts can help you bring up the thing you WANT to have, without your needing to know all that stuff you DON’T WANT to mess with.  Like server administration and configuration.

So here’s the really cool part.  A StackScript is basically a set of commands issued in a shell, all strung together.  You can even build user defined fields into a StackScript (stuff like, “Enter the name of your project here: ____”.  Someone with the necessary know-how can write and provide StackScripts to other folks to use on their own linodes.  We (at THATCamp Lehigh Valley) can compose a StackScript to bring up, say, Omeka.  Once done, others can use it to reduce the time and effort required to bring up their Omeka to as little as an hour.  No kidding!

And here is the other really cool part.  Using github [http://github.com] we can share, adapt, and update StackScripts for all sorts of projects.

In this StackScripted world I imagine, Campus IT is happy because they don’t need to worry about anyone breaking anything.  You’re happy because, if need be, you CAN break stuff.  More importantly, you can spend your time on your awesome new project instead of struggling on Stack Overflow or reading old Linux manuals!  If your project matures, moving it to campus hardware is so easy, you’ll weep with joy.

In summary, over only a couple of hours, I’d like to MAKE something where we:

* talk about Ubuntu as a Linux distro kind to the unfamiliar (5 minutes)

* bring up a new shiny linode (5 minutes)

* back up and fork our shiny linode just in case we break it (10 minutes)

* mess around a little in the Bash shell, particularly with the .bash_history file that is so useful when writing bash scripts (10 minutes)

* write a StackScript that utilizes User Defined Fields for interactive customization during setup.  Perhaps even demonstrate how you can reference other StackScripts in your StackScript, such that you can string them together (60 minutes)

* play with our new creation!  Maybe do it all again!

Any takers?

Categories: Collaboration, Session Proposals, session-make |

About Tim Clarke

I am the systems librarian at Muhlenberg College library. In a previous life, I was a graduate assistant at the Maryland Institute for Technology in the Humanities (MITH) where I supported MITH fellows by helping them develop functional requirements for their digital humanities projects. I also helped folks there decide if a project could borrow and adapt FOSS or if from-scratch development was warranted. I love to code.

4 Responses to Session Idea [Make] – Build a Linode Stackscript for a Digital Humanities/Library Application Stack

  1. Cool idea!
    Do StackScripts only work on Linode VPS systems, or can they be used with other hosting providers, or on local hardware?

  2. Tim Clarke says:

    Clif,

    It occurs to me that we could just as easily pull back this discussion, and talk about various virtualization options for digital humanists/computer scientists/librarians. Things like virtualbox, for instance. We could use our time to explore several related technologies. I’m happy to do that, too.

    The essence of a StackScript is just a shellscript. So some parts may be used on local hardware. But the beauty of a StackScript is you roll it out at the point of a server build with as much specificity as you desire.

    Linode describes it like this: www.linode.com/stackscripts and like this: library.linode.com/stackscripts

    The general idea isn’t a new one. For instance, here is something similar via Amazon Web Services: academicami.org/ with credit to James Smithies (jamessmithies.org).

    StackScripts, however, are particular to linode.com.

    There are three things I especially like about them.

    One – you have the option to try to mimic your campus IT infrastructure (presuming it’s Linux), while you get everything the way you want it. Then, it’s very easy to package up your creation for delivery to your in-house IT to put in place. Linode’s management UI makes this a matter of a couple clicks.

    Two – the potential to utilize User Defined Fields within a StackScript. This is the real beauty, I think, for project owners with some but limited systems expertise. A community of practice can develop StackScripts in support of a particular technology or collection of technologies (i.e,. stack).

    These scripts’ User Defined Fields can then prompt upon deployment for salient information particular to you and your project. Linode gives a pretty good example of what is possible in this LAMP StackScript here:

    www.linode.com/stackscripts/view/?StackScriptID=939.

    Within, you are prompted to provide SSH publickey information, and configure a firewall.

    Three – you can reference other StackScripts from within a StackScript. So, perhaps you like the LAMP deployment someone else has written, but you want to drop DRUPAL ontop, You call one StackScript from your own, and augment it with the extra stuff you desire. The example above actually calls two other StackScripts in this way.

    This is a very different concept from a hosting provider’s control panel (e.g., Fantastico).
    It’s much more powerful than, say, a site like SimpleScripts (www.simplescripts.com) that dictates system requirements and pre-determines which versions of various applications will be installed.

    I’ve not found anything exactly like it offered by the other VPS companies I know about.

    Hopefully others will find this as interesting as I do. Again, I’m more than willing to change to another type of session – maybe one that surveys VPS hosting options, as well as software live virtualbox, etc.

    Very happy to attempt to answer other questions!

  3. This is almost unspeakably far outside of my wheelhouse but I find myself attracted to it. No promise that I will understand even the slightest bit of it, but I could be a taker on this session. With zero coding knowledge I may just be there to listen and learn.

  4. Hi Tim,

    This sounds like an interesting project and we’d like to help you out in any way that we can. If this is something you’re interested in please drop us a line!

    Regards,
    Amanda

Comments are closed.