Gemstone is a multi-user Smalltalk database. Here I show how to load Seaside into Gemstone. Nginx supports a reverse-proxy mechanism for Seaside, as described below.
Download Gemstone
On the page https://gemtalksystems.com/products/gs64/ click on Download
On the download page click on the zip or dmg file
Click on the downloaded file.
I recommend you copy the contents of Gemstone dowload to /opt/gemstone/product
Install Seaside
make the seaside subdirectory your current directory:
cd /opt/gemstone/product/seaside/
Copy the system.conf file, shown below to /opt/gemstone/product/seaside/data/system.conf
# system.conf
#
# This is a larger configuration suitable for a standalone system.
DBF_EXTENT_NAMES = $GEMSTONE_DATADIR/extent0.dbf;
# DBF_SCRATCH_DIR = $GEMSTONE_DATADIR/;
KEYFILE = $GEMSTONE_KEYFILE;
STN_HALT_ON_FATAL_ERR = FALSE;
STN_TRAN_FULL_LOGGING = TRUE;
STN_TRAN_LOG_DIRECTORIES = $GEMSTONE_DATADIR/, $GEMSTONE_DATADIR/;
STN_TRAN_LOG_SIZES = 1000, 1000;
# Increased for GLASS/Seaside loading
# SHR_PAGE_CACHE_SIZE_KB should always be > GEM_TEMPOBJ_CACHE_SIZE
SHR_PAGE_CACHE_SIZE_KB = 2000000;
GEM_TEMPOBJ_CACHE_SIZE = 1000000;
# This is set to ensure that all garbage is collected when
# when an MFC is run. See the discussion in
# Issue 136: maintenance vm running only #unregisterExpiredHandlers may hang onto dead objects
# http://code.google.com/p/glassdb/issues/detail?id=136
GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE=90;
Copy the database extent:
cp /opt/gemstone/product/bin/extent0.seaside.dbf \
/opt/gemstone/product/seaside/data/extent0.dbf
Make the extent writable:
chmod +w /opt/gemstone/product/seaside/data/extent0.dbf
set the environment variables:
source defSeaside
Check that the stone and netldi services are running by typing, gslist -lcv
gslist -lcv
Status Version Owner Pid Port Started Type Name
------- --------- --------- -------- ----- ------------ ------ ----
OK 3.7.4.3 trex 17955 50377 Dec 29 15:21 Netldi gs64ldi
OK 3.7.4.3 trex 17990 54101 Dec 29 15:25 Stone seaside
OK 3.7.4.3 trex 17991 54099 Dec 29 15:25 cache seaside~e65467ac4c061631
edit ~/.topazini
! default initialization for Topaz session
set user DataCurator pass swordfish
! set user SystemUser pass swordfish
!set gemstone gs64stone
!set gemstone gs_3.7.4.3
set gemstone seaside
set gemnetid !#netldi:gs64ldi!gemnetobject
! login
Lines starting with exclamation marks are comments. Make sure you are logged in as DataCurator and not SystemUser.
DataCurator can see the necessary classes: Gofer, GsDeployer and Metacello, which are used to load Seaside from GitHub.
Run topaz:
topaz -l
Reading initialization file /Users/trex/.topazini
login to a gem
topaz> login
[29/12/2025 16:37:02.845 GMT]
gci login: currSession 2 rpc gem processId 19278 socket 4
successful login
fileformat is now utf8
sourcestringclass is now Unicode16
Go to the GitHub Seaside repository:
https://github.com/seasidest/seaside
In the middle of the above page you will see a section for Gemstone:
SOCIAL SHARE CARD GENERATOR