endot

eschew obfuscation (and espouse elucidation)

Scalatra on Dotcloud

I couldn’t easily find information on this, so here’s a summary for those that go after me.

A working example is in the sbt-scalatra-on-dotcloud branch of my fork of my friend’s sbt-scalatra-example project.  If it gets merged in, I’ll update this post.

The sbt-scalatra-example project combines two great technologies.  The first is Scalatra, a super light-weight web framework for Scala that’s modeled after Ruby’s Sinatra.  The second is the simple-build-tool (sbt), a tool for building Scala applications that’s more like rake (config file written in real programming language) than make or ant/maven (config file written in an abstract form).  I was able to run the example, but I wanted to try out deploying to dotcloud, and doing that requires a war file (according to the java service documentation).

The biggest thing I had to figure out is that as of version 0.10 of sbt, web application support is now in the xsbt-web-plugin plugin.  Just knowing that would have saved me an hour this morning. Setting that up and tweaking a few other files means I can now do this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ sbt clean package-war
... snip ...
[info] Packaging /home/user/sbt-scalatra-example/target/scala-2.9.1.final/sbt-scalatra-example.war ...
[info] Done packaging.
[success] Total time: 13 s, completed Sep 23, 2011 3:57:00 PM

$ cp target/scala-2.9.1.final/sbt-scalatra-example.war dotcloud/ROOT.war

$ dotcloud create sbtscalatra
Created application "sbtscalatra"

$ cd dotcloud && dotcloud push sbtscalatra
... snip ...
Deployment finished. Your application is available at the following URLs
www: http://sbtscalatra-xxx.dotcloud.com/

Of course, this assumes you’ve installed sbt (brew install sbt on the mac) and signed up and configured Dotcloud.

Have fun.