Technical Architecture

GroupServer combines Web and email servers, and connects them
to different back-end storage facilities.
By doing this, people can share messages using the Web and email
simultaneously.
- Apache
- The Apache Web server is used to mediate connections
between browsers and the core GroupServer software.
- Postfix
- Email messages are sent and received through the Postfix
mail-server.
- GroupServer
- GroupServer itself is written in
Python,
using the
Zope
framework — specifically
Zope Five.
GroupServer mediates between email and the Web, ensuring that
all users have a similar experience, no matter what software
is used by the group members.
It contains all the logic for the security, joinability, and
membership of the groups;
bounce detection, moderation, digest compilation, and the
modification of user and group settings is all handled by
the core GroupServer software.
The security of data — including users, posts and files —
is handled by this layer.
- Z Object Database
- The static Web pages, delivered by GroupServer (such as this
one) are stored in ZODB, which is part of Zope.
- PostgreSQL
- The messages posted to groups, and information about
users, as well as some secondary data, is stored in
the PostgreSQL relational database.
The connection between Zope and PostgreSQL is made using the
SQLAlchemy
toolkit.
- File System
- Finally, files that are added to groups, such as
message attachments, are stored using the
standard file-system of the host machine.
Standards Compliance
-
XHTML
(1 and 2) is used to specify the content of Web pages
(such as
the one you are looking
at now).
-
CSS
is used to style the Web pages.
- Atom
is used to generate Web feeds of the messages
posted to groups.
-
XSLT
is used to transform
XHTML 2
and
XForms
to XHTML 1.
- The standards for email, including
RFC 2822
and
RFC 4021,
are followed as closely as possible, while remaining
compatible with as many existing email systems as
possible.
- Unicode is used
throughout GroupServer, so people can send and receive messages
in languages other than English.