views:

333

answers:

8

Hi All,

I'm in the process of deploying a rails application to Windows machines. I do all of my development with OS X and Linux, but the final app will actually run on Windows machines.

That said, my client is looking for an all-in-one Apache(I had to talk him out of IIS)+Rails+Application deployment/installer. He wants to hand all of his (Windows-based) clients an install CD for their respective servers (they all want their own setup).

Is there anything like this in existence? I realize Capistrano exists but that requires a great deal of setup on the hosts (especially for Windows) beforehand and it's not very feasible in this particular case.

In the past I've used InnoSetup (http://www.jrsoftware.org/isinfo.php) for creating installers, but I'm not sure that's going to work in this case.

If you guys have any input, suggestions, or highly persuasive client techniques (to talk them all out of Windows =P) it would be most appreciated.

Best.

A: 

Maybe you can make InstantRails meet your needs.

Pesto
Doesn't seem to be maintained (or at the very least, current). Thanks though.
humble_coder
A: 

Ruby and thus Ruby on Rails is a fairly notorious deployment on Windows even in the best of circumstances, moreso when the setup is out or your hands like that. I don't mean to admonish, but this definitely speaks to matching development and deployment enviroment (I once ran into similar problems when I found out that the Java enviroment we were deploying to was a good half-a-decade out of date).

As I don't have enough Ruby-on-Windows experience to fairly weigh in on the matter, I'd say either LiveCD's or CygWin deployments may be worth looking at (Always good to broaden people's view on alternate Operating Systems, right?).

Jon
so true, so true....
humble_coder
A: 

Have you considered building a single version that runs in a VM?

mcl
Please expand on your statement. If you're asking about using VMWare or Virtualbox, they're 1) not interested in "polluting" Windows (as if) and 2) literally about 80% want nothing to do with *nix. Fortunately a few clients will be wanting a Linux version, however for now I must concern myself with solving the Windows problem.Thanks.
humble_coder
I'm just suggesting the VM since this whole idea of putting out a "one-click" Rails app that runs on Windows seems like a case of "square peg, round hole". If the decision to go with a square peg has already been made, why not look for any easy way to change the shape of the hole? I guess the question really boils down to: is this an application or an appliance? Does the customer want to do more than just run your code?
mcl
Ah, understood. Yes, it absolutely is a case of square peg/round hole. The client is more concerned about Windows admins dealing with Rails, etc. For all intents and purposes, they will *never* need to touch it, but he's adamant about catering to Windows admins as well as having a "simple" install process. *and the thread falls over in laughter*...but that's the situation
humble_coder
I think it is reasonable. Many Windows shop react to "Well, it is Linux but don't worry because it is going to be running in a VM and you won't have to worry about it" with the same skepticism (to put it mildly) that a Unix admin would take a "Well, it is Windows but don't worry because it is going to be running in a VM and you won't have to worry about it"
Daniel Lopez
Another part of the issue here is that many of the shops will be running on amazingly old hardware. A VM is pretty much out of the question in situations like this.
humble_coder
+1  A: 

I'd look into using jruby with glassfish. Make sure the users have java and it should be good to go.

jshen
Who changed my thread title?
humble_coder
A: 

For this particular problem, I'd go with a traditional Windows installer package like NSIS.

When I had a client with a Windows-only IT department, though, I found they were much more amenable to an XServer than a linux server. I don't generally think of OS X as a server OS, but it actually worked really well. I tried for linux first, and when they shot it down, I suggested OS X and they jumped at it.

It helped, I think, that they already supported some Mac laptops.

Good luck!

Sarah Mei
+1  A: 

Try with RubyStack:

BitNami RubyStack is an installer that greatly simplifies the installation of Ruby on Rails and its runtime dependencies. It includes ready-to-run versions of Ruby, Rails, MySQL and Subversion as well as a number of third-party libraries like FiveRuns TuneUp. RubyStack is distributed for free under the Apache 2.0 license and has been packaged using BitRock's multiplatform installer.

http://bitnami.org/stack/rubystack

Luke
+1  A: 

RubyStack is the closest thing to what you're after, although you might need to tailer the install a bit and remove some unwanted baggage. I don't know of any other Windows projects for a production environment (InstantRails is designed for development).

Delameko
A: 

As other posters have suggested, RubyStack should be a good option. It is free and you can always use it to run your own 'post install' scripts to customize it for what you want. If you want a supported stack or addition/modifications to RubyStack you can get commercial support from BitRock We have done so for several Rails based companies that wanted a local version, including for the guys over at GitHub

Daniel Lopez