views:

557

answers:

4

I am very interested in building a website using Clojure and Compojure, like so:

http://briancarper.net/blog/deploying-clojure-websites

However, due to my limited experience with the Java environment and Java culture, I am not sure where to begin when shopping for a web-hosting service.

Do I simply need to find a service that gives me full root access and has the JDK/JVM? Or are there other requirements as well?

+3  A: 

You just need root access + a JVM. Once you have that, working with Compojure (and its embedded Jetty) is just like it is on your desktop.

I recommend Rackspace Cloud (http://www.rackspacecloud.com/). It's pay-as-you-go, which is great for testing, and leaving a server running full-time only costs around $12/mo for their small instance. Plus it makes it really easy to test distributed applications. They've got a great admin console and API. (I have no affiliation with Rackspace other than being a satisfied customer).

If you want to use a more robust/mainstream Java server instead of Jetty, you can deploy a WAR bundle of your application to Tomcat, Glassfish, Weblogic, etc. Installing and configuring those is beyond the scope of this question, but deploying a WAR to them is a straightforward, well-documented procedure.

Edit:

As the other commenter mentioned, if you just want to get started playing with Compojure, you can do it easily on your local machine. There's no need to move to a server until you want to start serving pages publicly.

levand
+2  A: 

Look into one of the many VPS solutions out there. Slicehost and Linode both seem popular. You can also host Clojure+Compojure applications on Google App Engine.

dnolen
+5  A: 

I use Linode 540. Any Linux VPS will probably work fine. You can install the JVM and anything else you need yourself. Depending on what kind of site you're running, you should try to get a lot of RAM, because the JVM can be RAM-hungry.

Brian Carper
+3  A: 

I'd probably go for Google AppEngine (well, in fact I'm planning to do that sooner or later).

Here's some reading to get you started:

Interactive Programming with Clojure, Compojure, Google App Engine and Emacs

Clojure on GAE

Clojure on Google AppEngine

Michael Kohl
The guys behind that "Interactive Programming..." posting also have a very interesting presentation on their GAE apparently what remains is still a very compelling package, though.
Michał Marczyk