views:

300

answers:

4

We wrote a small prototype web app using Pharo and Seaside and we want to now demonstrate to the suits that the app can be deployed into our standard Linux build. We use a mix of CentOS, Ubuntu Server and Gentoo which are run headless since most of our apps are JAVA/Apache based. Only port 80 and 443 are open to the outside world.

What are your experiences when hosting Seaside/Smalltalk server side apps?

+2  A: 

I just use a ssh tunnel to get the X display on my local machine. I'm using slicehost (US) from the Netherlands, so I have a ping time of 135 ms. That's not that nice, but ok.

Next step will be Lukas Renggli's remote frame buffer package to use a vnc viewer.

Let's see what Miguel Cobá had to say about it on it on the Gemstone mailing list:

If you have already installed a RFB in your machine then use it. If you have RFB installed in your image and it is accesible from your client machine, use it

But, both of them are unencrypted. If you want to encrypted you must setup a tunnel (maybe with ssh or maybe TLS).

I think that that is redundant because you must use a tunnel and then the RFB. So what I do, in linux is to install the minimal X libraries and then forward the X session to my local machine.

In the server (Debian/Ubuntu instructions):

aptitude update

aptitude install xbase-clients

aptitude install xtightvncviewer

Test it from the client machine:

ssh -X remote_server squeakvm gemtools.image &

This will start the squeakvm process on the server, but all the graphics will be shown on the local machine (the Xserver for this particular scenario).

Also, if you install RFB on some of your images and start them headless, you can use xtightvncviewer to connect to inside the image through the RFB server.

ssh -X remote_server xtightvncviewer localhost:0 &

this will run the xtightvncviewer on the remote server but, again, will show on your local machine. Supposing you have your image in the remote server running RFB in the first display.

Which is the advantage: - You don't have to open ports for RFB on the remote server - You transmit everything encrypted through ssh - You only run the commands on demand in the remote server. You don't have to have VNC running always. - You can configure your RFB in the image to accept only localhost connections and not from everywhere.

Martin McClure adviced me to take a look at NoMachines NX (less chatty X), but that's still on my todo list.

For another set of deployment instructions, take a look at Miguels blog

Stephan Eggermont
Does this mean that your local box is up 24x7? maybe something like screen along with the ssh tunnel is an option??
Ravi S
yes, use screen
Stephan Eggermont
+2  A: 

it runs great, btw you can get free hosting for your seaside app at:

http://www.seasidehosting.st/

for more power you'd need your own server of course...

some benchmarks here:

http://gemstonesoup.wordpress.com/2007/10/19/scaling-seaside-with-gemstones/

jspcal
+2  A: 

The Seaside Book has a chapter on deployment. It describes how I typically deploy a Seaside application.

Lukas Renggli
A: 

The blogosphere's been talking about this issue recently.

Doug Putnam wrote up his experiences in installing Seaside (on Pharo) on his Slicehost slice, working off James Robertson's writeup (which uses VisualWorks, I suppose?).

Frank Shearar