mm3: fill in more blanks in the docs (#40471) authored by anarcat's avatar anarcat
Our mailing list server, <https://lists.torproject.org>, is running an instance Our mailing list server, <https://lists.torproject.org>, is running an
of Mailman. instance of Mailman.
The "listmaster" team is responsible for configuring all lists as The "listmaster" team is responsible for configuring all lists as
required. They make decisions about which lists to create and which required. They make decisions about which lists to create and which
...@@ -13,11 +13,6 @@ coordinate with the admin team to have the list added and then ...@@ -13,11 +13,6 @@ coordinate with the admin team to have the list added and then
configure it as needed. Don't forget to update the [list of mailing configure it as needed. Don't forget to update the [list of mailing
lists](#list-of-mailing-lists) (below) upon changes. lists](#list-of-mailing-lists) (below) upon changes.
IMPORTANT NOTE: the documentation here is going to become out of date
quickly as we upgrade to Mailman 3, see
<https://gitlab.torproject.org/tpo/tpa/team/-/issues/40471> for
tracking this work, which includes updating this document.
[[_TOC_]] [[_TOC_]]
# Tutorial # Tutorial
...@@ -320,13 +315,12 @@ through the web interface. ...@@ -320,13 +315,12 @@ through the web interface.
## Upgrades ## Upgrades
<!-- how upgrades are performed. preferably automated through Debian --> It's unclear how automated Mailman 3 upgrades will be, but right now
<!-- packages, otherwise document how upgrades are performed. see also --> we're relying on Debian packages for this.
<!-- the Testing section below -->
## SLA ## SLA
<!-- this describes an acceptable level of service for this service --> There's no SLA specifically associated with this service.
## Design and architecture ## Design and architecture
...@@ -343,8 +337,6 @@ TODO mention zope and django in the same sentence ...@@ -343,8 +337,6 @@ TODO mention zope and django in the same sentence
## Services ## Services
<!-- open ports, daemons, cron jobs -->
As mentioned in the architecture, Mailman is made of different As mentioned in the architecture, Mailman is made of different
components who communicate over HTTP, typically. Cron jobs handle components who communicate over HTTP, typically. Cron jobs handle
indexing lists for searching. indexing lists for searching.
...@@ -359,14 +351,24 @@ conf`, but be careful as it outputs cleartext passwords. ...@@ -359,14 +351,24 @@ conf`, but be careful as it outputs cleartext passwords.
## Storage ## Storage
<!-- databases? plain text file? the frigging blockchain? memory? --> Most data is stored in a [PostgreSQL](howto/postgresql) database, apart from bounces
which somehow seem to exist in [Python pickle files](https://docs.python.org/3/library/pickle.html) in
`/var/lib/mailman3/queue/bounces`.
A list of addresses is stored in `/var/spool/postfix/mailman3` for
Postfix to know about mailing lists. There's the trace of a SQLite
database there, but it is believed to be stale.
## Queues ## Queues
<!-- email queues, job queues, schedulers --> Mailman seems to store Python objects of in-flight emails (like
bounces to retry) in `/var/lib/mailman3/queue`.
## List of mailing lists ## List of mailing lists
TODO: remove this entry. If a mailing list should be publicly listed,
just list the damn thing already.
### Discussion Lists ### Discussion Lists
The following are lists with subscriber generated threads. The following are lists with subscriber generated threads.
...@@ -537,12 +539,23 @@ be used to operate the API, rather confusingly. ...@@ -537,12 +539,23 @@ be used to operate the API, rather confusingly.
## Authentication ## Authentication
<!-- SSH? LDAP? standalone? --> Mailman has its own authentication database, isolated from all the
others. Ideally it would reuse LDAP, and it might be possible to hook
it to GitLab's OIDC provider.
## Implementation ## Implementation
<!-- programming languages, frameworks, versions, license --> <!-- programming languages, frameworks, versions, license -->
Mailman 3 is one of the flagship projects implemented in
Python 3. The web interface is built on top of [Django](https://docs.djangoproject.com/), while the
REST API is built on top of [Zope](https://zope.readthedocs.io/).
Debian ships Mailman 3.3.8, a little behind the latest upstream
3.3.10, released in October 2024.
Mailman 3 is GPLv3.
## Related services ## Related services
<!-- dependent services (e.g. authenticates against LDAP, or requires --> <!-- dependent services (e.g. authenticates against LDAP, or requires -->
... ...
......