"This is a work in progress, and has been changed to reflect the current state in Intrepid"

Summary

This specification outlines processes and points of action to get a RubyOnRails application stack into Ubuntu Server (Intrepid Ibex)

Rationale

The RubyOnRails stack needs some manual work to be installed on ubuntu.

If a user wants to install a full Rails stack, he needs to:

RubyOnRails is getting very popular, in keeping with Ubuntu's popularity among developers, and server consumers, a drop-in RubyOnRails stack makes a lot of sense.

Use cases

Scope

Design

The architecture is based around Apache2 configured to work with Phusion Passenger as the web server, with Mysql as the installed database server. We will install all the supported open source database client libraries so that the user can access any type of database without further configurations.

We would expect that Rails server would be offered by the Server installation menu.

That gets the basic infrastructure in place. Then there is the question of how to get the application onto the server

Implementation

Issues with current Ruby packages

We need to get on top of some of these issues to get Rails into Ubuntu effectively.

RailsPackagingIssues

Phusion Passenger

Package already in REVU (https://bugs.launchpad.net/ubuntu/+bug/246719)

Create RoR tasksel task

This would: -- Install that Rails server package (passenger, rails, rubygems, client libraries and configuration tools) -- Install the Mysql server --

or a metapackage ====

Documentation

Document the standard way of deploying a Rail application:

Provide a sample application as an example

Discussion

Wiki

RubyonRails

There's also Phusion Passenger, an Apache Module that makes deploying Rails and/or rack applications very easy. A lot easier then configuring proxy and mongrels.

* I would personally suggest going with the Phusion Passenger option mentioned above. It's proven, and as of version 2 is considered (and has proven to be) stable. It's also a "solved problem", as it were. There are quite a few simple guides to setting up Ubuntu with Passenger and a full Ruby / Rails stack that might be useful, such as this. (Peter Cooper - editor of RubyInside.com)

* I second the suggestion of using Phusion Passenger. It's simple to set up and that's what you want for the average user. An experienced rails developer is going to have their own preferred stack setup for production use (and may not even be running Ubuntu on their production server), so Ubuntu doesn't necessarily have to make it easy for them; I wouldn't suggest making that your target. Rather, I would suggest focusing on simplifying two things: 1. Easy stack set up for those just getting started with Rails. 2. Easy set up of a development-mode stack, for developers (when you're first starting an app you don't want to have to spend much time working out deployment issues). For both of these, Passenger will work fine. I suggest something along the lines of the Passenger Preference Pane on OSX (http://www.fngtps.com/2008/06/putting-the-pane-back-into-deployment). With that tool, getting deployment set up is a synch. --zerohalo

* The technology quoted in this spec works, but can be improved. There are numerous problems with the current Debian Ruby packaging that prevents effective support of Ruby on Rails in Ubuntu. At Brightbox we do Ubuntu Ruby on Rails for a living and we're very well aware of the problems with the current system. What needs to happen is:

I've kicked off a couple of project groups with a view to testing out effective Rails packaging, UbuntuRuby and UbuntuRubyBackPorts. If that isn't the best focus for this then let me know. Essentially we're very keen at Brightbox to find a way of feeding our technology back into Ubuntu Server - NeilWilson

How-to improve RoR application deployment ?


CategorySpec

RubyOnRailsStack (last edited 2008-08-06 16:40:48 by localhost)