mm3: fill in reference section (#40471) authored by anarcat's avatar anarcat
......@@ -199,7 +199,7 @@ command. By calling:
... you end up in a Python interpreter with the `mlist` object
accessible for modification.
## Pager playbook
## TODO Pager playbook
<!-- information about common errors from the monitoring system and -->
<!-- how to deal with them. this should be easy to follow: think of -->
......@@ -208,7 +208,10 @@ accessible for modification.
<!-- see "Writing a playbook" in service/prometheus for other ideas -->
<!-- https://gitlab.torproject.org/tpo/tpa/team/-/wikis/service/prometheus/#writing-a-playbook -->
## Disaster recovery
<!-- if you do not find what you are looking for here, it is a bug -->
<!-- please file it -->
## TODO Disaster recovery
<!-- what to do if all goes to hell. e.g. restore from backups? -->
<!-- rebuild from scratch? not necessarily those procedures (e.g. see -->
......@@ -326,7 +329,7 @@ we're relying on Debian packages for this.
There's no SLA specifically associated with this service.
## Design and architecture
## TODO Design and architecture
<!-- how this is built -->
<!-- should reuse and expand on the "proposed solution" discussed in -->
......@@ -368,7 +371,7 @@ database there, but it is believed to be stale.
Mailman seems to store Python objects of in-flight emails (like
bounces to retry) in `/var/lib/mailman3/queue`.
## List of mailing lists
## TODO REMOVE THE "List of mailing lists"
TODO: remove this entry. If a mailing list should be publicly listed,
just list the damn thing already.
......@@ -562,8 +565,11 @@ Mailman 3 is GPLv3.
## Related services
<!-- dependent services (e.g. authenticates against LDAP, or requires -->
<!-- git pushes) -->
Mailman requires the proper operation of a
[PostgreSQL](howto/postgresql) server and functioning [email](service/email).
It also relates to the [forum](service/forum) insofar as the forum
mirrors some of the mailing lists.
## Issues
......@@ -574,7 +580,7 @@ Mailman 3 is GPLv3.
There is no issue tracker specifically for this project, [File][] or
[search][] for issues in the [team issue tracker][search] with the
label ~Foo.
label ~Lists.
[File]: https://gitlab.torproject.org/tpo/tpa/team/-/issues/new
[search]: https://gitlab.torproject.org/tpo/tpa/team/-/issues?label_name%5B%5D=Foo
......@@ -588,45 +594,81 @@ label ~Foo.
## Maintainer
<!-- document who deployed and operates this service, the team and -->
<!-- ideally the person inside that team -->
The original deployment of Mailman was lost to history.
Anarcat deployed the Mailman 3 server and performed the upgrade from
Mailman 2
The service is collectively managed by TPA, ask anarcat if lost.
## Users
<!-- who the main users are, how they use the service. possibly reuse -->
<!-- the Personas section in the RFC, if available. -->
The mailing list server is used by the entire Tor community for
various tasks, by various groups.
Some personas for this service were established in [TPA-RFC-71][].
## Upstream
<!-- who the upstreams are, if they are still active, -->
<!-- collaborative, how do we keep up to date, support channels, see -->
<!-- also the "Issues" section above -->
Mailman is an active project with the last release in early October
2024 (at time of writing 2024-12-06, a less than a month ago).
Upstream has been responsive and helpful [in the issue queue](https://gitlab.com/groups/mailman/-/issues/?sort=created_date&state=opened&author_username=anarcat&first_page_size=20)
during the Mailman 2 upgrade.
Mailman has a [code of conduct](https://list.org/coc.html) derived from the [PSF code of
conduct](https://www.python.org/psf/codeofconduct/) and a [privacy policy](https://list.org/privacy.html).
Upstream support and contact is, naturally, done over [mailing
lists](https://list.org/contact.html) but also IRC (on Libera).
## Monitoring and metrics
<!-- describe how this service is monitored, how security issues and -->
<!-- upgrades are tracked, see also "Upgrades" above. -->
The service receives basic, standard monitoring from Prometheus which
includes the email, database and web services monitoring.
No metrics *specifically* about Mailman are collected, however, see
[tpo/tpa/team#41850](https://gitlab.torproject.org/tpo/tpa/team/-/issues/41850) for improving that.
## Tests
<!-- how the service can be tested, for example after major changes -->
<!-- like IP address changes or upgrades. describe CI, test suites, linting -->
The [test@lists.torproject.org mailing list](https://lists-01.torproject.org/mailman3/postorius/lists/test.lists.torproject.org/) is designed precisely
to test mailman. A simple test is to send a mail to the mailing list
with Swaks:
swaks -t test@lists.torproject.org -f example@torproject.org -s lists-01.torproject.org
Upstream has a good test suite, which is actually included in the
documentation.
There's a single server with no dev or staging.
## Logs
<!-- where are the logs? how long are they kept? any PII? -->
<!-- what about performance metrics? same questions -->
Mailman logging is complicated, spread across multiple projects and
daemons. Some services log to disk in `/var/log/mailman3`, and that's
where you will find details as SMTP transfers. The Postorious and
Hyperkitty (presumably) services log to `/var/log/mailman3/web`.
There were some PII kept in the files, but it was redacted in
[tpo/tpa/team#41851](https://gitlab.torproject.org/tpo/tpa/team/-/issues/41851). It's possible IP addresses, names, and
especially email addresses to end up in Mailman logs. At least some
files are rotated automatically by the services themselves.
Others are rotated by `logrotate`, for example
`/var/log/mailman3/mailman.log` is kept fr 5 days.
## Backups
<!-- does this service need anything special in terms of backups? -->
<!-- e.g. locking a database? special recovery procedures? -->
No particular backups are performed for Mailman 3. It is assumed we
Pickle files can survive crashes and restores, otherwise we also rely
on [PostgreSQL](howto/postgresql) recovery.
## Other documentation
<!-- references to upstream documentation, if relevant -->
# Discussion
# TODO Discussion
<!-- the "discussion" section is where you put any longer conversation -->
<!-- about the project that you will not need in a casual -->
......
......