Thalassa CMS consists of two programs (executable binaries):
thalassa
, which is effectively a static HTML content
generator;thalcgi.cgi
, a CGI program implementing (fully
server-side) interactive functions of the site.The CGI program runs the generator program whenever it is necessary to rebuild (renew) certain parts of the site; in the present version, this happens when a user comment is added, edited, or its status is changed using the web interface; only the page containing the comment is rebuilt.
Both programs are configured using user-editable configuration files (in ini format). The main configuration file for
the generator (thalassa
) is by default named
thalassa.ini
(this may be overriden with command line
options); additional ini files can be (and usually are) specified both at
command line and within the main ini file.
Besides that, thalassa
is able to use the so-called
content database, which is effectively a directory tree
with text files, one file per HTML page to be generated and one
file per each user comment. The content database is intended to be
modified by the CGI program, but in the present version, only user comments
are modifiable this way, while page source files are to be edited manually.
Content database is optional; HTML pages can also be completely specified within ini files. Using the database is only necessary for the user comments, so in case you don't need them, the content database can be omited completely, although using it may make your site maintenance more convenient. And remember, the “database” is actually just a directory with text files, nothing special nor requiring running daemons nor performing maintenance.
The CGI program (thalcgi.cgi
) is configured with exactly one
ini file, which is named thalcgi.ini
and must reside in the
same directory with the CGI program itself. The ini file must only be
readable for the CGI program; the program checks whether the file is only
readable for its owner, and refuses to work otherwise. It is
critical to keep the ini file's content private. Please consider
using suexec
to run the CGI program, so it runs under a UID
different from the http server's uid; if for any reason you can't use
suexec, make sure your web server is configured to never ever disclose the
content of the thalcgi.ini
file.
Besides the ini file, the CGI program uses the so-called session database, which is another directory tree, used to store current sessions, account details for registered users, information regarding email addresses and domains, and the moderation queue.