Getting Seaside

David Shaffer
Shaffer Consulting

Seaside for Squeak

Seaside is available for both Squeak and VisualWorks. If you plan to follow the database related portions of this tutorial you must use Squeak since the GOODS client has not yet been ported to VisualWorks. If you haven't already, I recommend that you start by installing a full squeak 3.7 distribution for your platform. You can download a version of Squeak for your favorite OS from

Start Squeak using the "3.7 full" image and load the following SqueakMap packages in the order specified:

  1. DynamicBindings
  2. KomServices
  3. KomHttpServer
  4. Seaside (remember the username and password you select!)
You might also consider loading the following optional packages:
  1. GOODS (needed for all database examples)
  2. BTree (needed for all database examples)
  3. Shout and the various Shout add-ons (adds color syntax highlighting as you type)
  4. Refactoring Browser for 3.7 (adds refactoring tools to your class browser)
  5. OSProcess (adds support for starting and controlling external processes)
As the name implies, the KomHttpServer is a web server. We need to configure it and tell it to start serving both Seaside and static pages. In the same directory as your Squeak image create a directory called "FileRoot" for your static pages. Then, in Squeak, evaluate the following:
"Kill all existing Kom HTTP servers"
HttpService allInstancesDo: [:each | each stop. each unregister].

"Start a new server on port 9090 servering both static content and seaside apps"
| ma seaside |
seaside := WAKom default.
ma := ModuleAssembly core.
ma serverRoot: (FileDirectory default directoryNamed: 'FileRoot') fullName.
ma alias: '/seaside' to: [ma addPlug: [:request | seaside process: request]].
ma documentRoot: (FileDirectory default directoryNamed: 'FileRoot') fullName.
ma directoryIndex: 'index.html index.htm'.
ma serveFiles.
(HttpService startOn: 9090 named: 'httpd') plug: ma rootModule
Notice that I start by killing all existing servers. I do this just in case you already started a Seaide-only server using "WAKom startOn: 9090" which is used in many of the other Seaside tutorials. Now, make sure Seaside is answering requests by opening the following URL in your web browser: http://localhost:9090/seaside/counter. If all goes well you should be greeted by a simple counter application:

If everything is working save your image.


If you plan to follow the database related parts of this tutorial you will need to download and install the GOODS database server. You will also need to load the GOODS and BTree packages for Squeak from SqueakMap. Don't worry about configuring or starting a GOODS server yet...that will be covered in the chapter Preparing GOODS.

Seaside for VisualWorks

Seaside is available for the VisualWorks Smalltalk platform. I do not directly support that platform in this tutorial. All code examples are for Squeak Smalltalk but most will work in VisualWorks with minor changes. Class definitions require significant change but if you are familiar with creating classes in VisualWorks you can certainly translate the code samples I give you. At this time the GOODS client software has not been ported to VisualWorks so most of the database related examples may require significant revision to adapt them to whatever database system you are using.

C. David Shaffer
Last modified: Sat Jul 9 14:12:43 EDT 2005