Did I mention that I love Smalltalk, lately? If not: I love Smalltalk! And I want to say "Thank you!" to all of you, who make this scene such a nice place for hygienic software.
The Gemstone Smalltalk system has been around for a long time, but just lately has been made also available as a no-cost community version. Gemstone really rocks, it feels like an ideal world for a software developer. It's Smalltalk, it's robust, it scales and persists your stuff like magic! Imagine how many problems are automatically solved (or more precise: don't even show up) by such an underlying machine! But shhh! Don't tell anyone! Let them love their daily fight... ;-)
Coming from the Rails world, I clearly see that there is yet missing some proven best practices for the hosting of a Gemstone powered seaside application server. Progress on GemTools is moving fast, that's super fantastic! And I always felt that there should be a bare access to the deployment, a more basic direct access from the shell, too.
In the world of Rails there is a solid tool called capistrano, which you can use as a deployment servant. The cool part is, that capistrano is not married with Rails, it's basically just a remote control for your server, let's you define tasks and their dependencies. OK, too bad it's not written in Smalltalk but it does an excellent job as a command line tool. And come on: Ruby is a good friend of Smalltalk, isn't it?
I wrote some of these handy capistrano tasks for seaside deployment and want to share those with you. These recipes currently only cover my personal needs with the following kind of seaside hosting environment: Gemstone as seaside server, lighttpd as frontend server and load balancer, everything running on Ubuntu 8.04.1. It's far from complete or rock solid, but I want to share it as early as possible. There is plenty of room to add more tasks for other tools and environments, of course. And I plan to add more features, as soon as I need them. Contributions welcome, of course!
The goals of SeaShell are:
Very important: SeaShell is not meant to get a replacement for GemTools! GemTools solves more the task of "working IN the system", and SeaShell solves the task of "working AROUND the system" dealing also with non smalltalk tasks like stopping the frontend web server etc. SeaShell should be a companion tool to GemTools for the seaside developer.
As for now, besides some handy standard tasks, SeaShell gives you the ability to run multiple Gemstone powered applications on one server. It does that with this rules:
(Maybe I will make an easy to install ruby-gem soon)
I hope it's useful!