This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
replace_mailman_2 [2025/01/08 19:30] SLUUG Administration Added Planning section and below |
replace_mailman_2 [2025/02/06 21:48] (current) SLUUG Administration Progress update |
||
---|---|---|---|
Line 174: | Line 174: | ||
* The installation also created sym links in "/etc/apache2/mods-enabled/" to existing files in "../mods-available/" for 3 "proxy*". | * The installation also created sym links in "/etc/apache2/mods-enabled/" to existing files in "../mods-available/" for 3 "proxy*". | ||
* So this is already done. | * So this is already done. | ||
- | |||
- | __**Everything below has not been tested yet and is for planning**__ | ||
==== Change other settings in /etc/ files not configured by "debconf". ==== | ==== Change other settings in /etc/ files not configured by "debconf". ==== | ||
Line 182: | Line 180: | ||
* Change "TIME_ZONE" from "UTC" to "America/Chicago" | * Change "TIME_ZONE" from "UTC" to "America/Chicago" | ||
- | * Also reference "/usr/share/mailman3-web/settings.py". | + | * Also review "/usr/share/mailman3-web/settings.py" for other settings. |
=== Edit "/etc/mailman3/mailman.cfg": === | === Edit "/etc/mailman3/mailman.cfg": === | ||
- | * Change "site_owner" from "changeme@example.com" to TBD. | + | * Change "site_owner" from "changeme@example.com" to the same used above for "Postorius superuser". |
=== Update Mailman config for required HTTPS: === | === Update Mailman config for required HTTPS: === | ||
- | * mailman-hyperkitty.cfg: "base_url" | + | * mailman-hyperkitty.cfg: "base_url" - no change, since "localhost". |
- | * mailman-web.py: "POSTORIUS_TEMPLATE_BASE_URL" | + | * mailman-web.py: "POSTORIUS_TEMPLATE_BASE_URL" - no change, since "localhost". |
- | * mailman.cfg" "use_https" | + | * mailman.cfg" "use_https" - leave at "no", this is for internal use? |
=== Update logrotate configuration === | === Update logrotate configuration === | ||
- | * Longer log retention. | + | Update "/etc/logrotate.conf" to add before the "include" line: |
- | * Switch to multiple log files? | + | <code> |
+ | tabooext + .bak .off .out .save | ||
+ | taboopat + *[-.][0-9][0-9][0-9][0-9][0-9][0-9] | ||
+ | taboopat + *[-.][0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] | ||
+ | </code> | ||
+ | |||
+ | Update "/etc/logrotate.d" files "mailman3" and "mailman3-web" to use | ||
+ | monthly rotation, longer retention, file name format, permissions, etc, | ||
+ | Also using a wild card for multiple log files. | ||
+ | |||
+ | Update "/etc/mailman3/mailman.cfg" to add some separate log files, to match | ||
+ | some in Mailman 2. After the "[logging.debian]" section, add new subsections: | ||
+ | <code> | ||
+ | [logging.bounce] | ||
+ | path: bounce.log | ||
+ | propagate: yes | ||
+ | [logging.vette] | ||
+ | path: vette.log | ||
+ | [logging.mischief] | ||
+ | path: mischief.log | ||
+ | [logging.subscribe] | ||
+ | path: subscribe.log | ||
+ | [logging.error] | ||
+ | path: error.log | ||
+ | propagate: yes | ||
+ | [logging.archiver] | ||
+ | path: archiver.log | ||
+ | </code> | ||
+ | |||
+ | Restart both "mailman" and "mailman-web". | ||
+ | Change existing logs to make readable. | ||
====== Additional configuration and testing ====== | ====== Additional configuration and testing ====== | ||
Line 204: | Line 232: | ||
<code> | <code> | ||
- | mailman create --language no --owner postmaster@___ -no-notify ____@lists.__ | + | "mailman-wrapper create --language no --owner postmaster@___ -no-notify ____@lists.__ |
</code> | </code> | ||
+ | |||
+ | Set the list description via "Django site admin". | ||
Verify Postfix hashes are accessible and automatically populated. | Verify Postfix hashes are accessible and automatically populated. | ||
Line 212: | Line 242: | ||
Test posting. | Test posting. | ||
- | |||
- | * ASCII postings are delivered and archived as plain text ASCII. Not converted to "quoted-printable" or "base64". | ||
- | * Can footers be added without this happening? | ||
Test archives. | Test archives. | ||
+ | |||
+ | Do archives hide the address of the poster? No. | ||
+ | |||
+ | === Encoding of postings === | ||
+ | |||
+ | The acceptable operation is that | ||
+ | ASCII postings are delivered and archived as plain text ASCII. | ||
+ | Not converted to "quoted-printable" or "base64". | ||
+ | As discovered with Mailman 2, when the default footers are added, | ||
+ | the charset is "utf-8", and the Content-Transfer-Encoding: is "base64". | ||
+ | There might also be a concern with added content breaking DKIM signatures. | ||
+ | |||
+ | <code> | ||
+ | mkdir -p /var/lib/mailman3/templates/site/en/ | ||
+ | touch /var/lib/mailman3/templates/site/en/list:member:generic:footer.txt | ||
+ | chown -R list:list /var/lib/mailman3/templates/site/ | ||
+ | </code> | ||
+ | |||
+ | This worked, and the postings are now delivered without being converted. | ||
+ | |||
+ | Or do it via the web interface at URL | ||
+ | .../mailman3/postorius/lists/testmm3.bock2.sluug.org/templates | ||
+ | That saves it in the database instead of as a file. | ||
+ | Always use one or the other, don't mix them. | ||
+ | This is only for templates of things added to mail, not changing web pages. | ||
+ | Since this change was done for Mailman 2 via the "config_list" command to | ||
+ | update each list in their database, the same should be done for Mailman 3. | ||
+ | It should be done this way for existing lists when they are imported. | ||
+ | |||
+ | What about "list:member:digest:footer" for a digest message? | ||
+ | In the directory of template files, there is no separate | ||
+ | footer for regular and digest, only "generic:footer". | ||
+ | In the web pages for creating templates, there is no "generic:footer", but | ||
+ | there are "regular:footer" and "digest:footer". | ||
+ | |||
+ | ==== Change example.com again ==== | ||
+ | |||
+ | Many places are still referring to "example.com". | ||
+ | * "Subject: [example.com]" | ||
+ | * "... account on example.com." | ||
+ | * "Thank you for using example.com!" | ||
+ | |||
+ | This is in database "mm3webdb" table "django_site". | ||
+ | Change by logging in to the web site as admin and going to URL | ||
+ | ".../mailman3/admin/sites/site/1/change/". | ||
+ | Change the "Domain name" value to "sluug.org" and the | ||
+ | "Display name" value to "SLUUG mailing lists". | ||
+ | |||
+ | __**Everything below has not been tested yet and is for planning**__ | ||
+ | |||
==== Test import of an existing test list ==== | ==== Test import of an existing test list ==== | ||
Line 233: | Line 310: | ||
Protect archives from address scraping and secure private lists. | Protect archives from address scraping and secure private lists. | ||
+ | The protection method used for Mailman 2 doesn't apply to Mailman 3. | ||
+ | Instead, make the list archive private, forcing subscribers (Or owners | ||
+ | and moderators) to log in with their personal credentials to see the archive. | ||
+ | This means there is no configuration at this time, unless | ||
+ | we decide to make all archives public, and use the old protection method. | ||
Test new configuration options and enhancements to make now. | Test new configuration options and enhancements to make now. | ||
Especially any global options that could impact all production lists. | Especially any global options that could impact all production lists. | ||
+ | TBD: | ||
* "header_checks" are now global? | * "header_checks" are now global? | ||
* "[dmarc]" and/or "[ARC]". | * "[dmarc]" and/or "[ARC]". | ||
====== Import Mailman 2 lists ====== | ====== Import Mailman 2 lists ====== | ||
+ | |||
+ | For each list: | ||
+ | <code> | ||
+ | mailman-wrapper import21 ... | ||
+ | sudo -u www-data /usr/share/mailman3-web/manage.py hyperkitty_import ... | ||
+ | sudo -u www-data /usr/share/mailman3-web/manage.py update_index_one_list ... | ||
+ | </code> | ||
+ | |||
+ | Check all configuration web pages on the old and new systems, | ||
+ | to make sure no options, settings, or values were lost. | ||
+ | |||
+ | Test ... | ||
====== Other changes to make later ====== | ====== Other changes to make later ====== | ||
Line 247: | Line 342: | ||
Delete or deflate HTML postings and delete attachments on all lists. | Delete or deflate HTML postings and delete attachments on all lists. | ||
+ | The "Collapse alternatives" and "Convert html to plaintext" otpions. | ||
====== Cleanup for deletion of Mailman 2 ====== | ====== Cleanup for deletion of Mailman 2 ====== | ||
+ | |||
+ | ====== Administration ====== | ||
+ | |||
+ | ===== Command line ===== | ||
+ | |||
+ | Never use the "mailman" command, | ||
+ | only "mailman-wrapper" that runs as user "list". | ||
+ | |||
+ | "mailman-web" - ? | ||
+ | |||
+ | "django-admin" - ? | ||
+ | |||
+ | ===== URLs ===== | ||
+ | |||
+ | ==== URLs for general users ==== | ||
+ | |||
+ | * https://HOSTNAME/mailman3 / - General list access and user login. What should be announced to humans. | ||
+ | * https://HOSTNAME/mailman3/postorius/lists/ - What just specifying "mailman3" redirects to. What should be used in links from the main web site. | ||
+ | |||
+ | ==== Alternate URLs to ignore ==== | ||
+ | |||
+ | * https://HOSTNAME/mailman3/hyperkitty/ - long list of "Available lists", with "Sign In" for regular list members. | ||
+ | * https://HOSTNAME/mailman3/postorius/ - short list of "Mailing Lists". | ||
+ | * https://HOSTNAME/mailman3/postorius/lists/ - the same as just "postorius/". | ||
+ | |||
+ | ==== URLs for Administration ==== | ||
+ | |||
+ | * https://HOSTNAME/mailman3/admin/ - Administration login, only "for a staff account". | ||
+ | * https://HOSTNAME/mailman3/LISTNAME.HOSTNAME/ - Access private lists not published on the index of lists. You will still have to log in or directly subscribe to do anything more than see the list description. | ||
+ | * https://HOSTNAME/mailman3/hyperkitty/list/LISTNAME@HOSTNAME/ - Access private archives. You will still have to log in to see the private archive. | ||
+ | |||
+ | You can use the general URL for lists, then login and you will see private | ||
+ | "lists that you are owner, moderator or subscriber for". | ||
+ | |||
+ | ==== Usage notes ==== | ||
+ | |||
+ | Trying to log into the general URL with the admin account might fail with a | ||
+ | 500 error. | ||
+ | * Logging into the general URL with your personal accout/password used for list subscription doesn't give access to list administration, only changing your account and relationships to lists. | ||
+ | * If you are the bbbThis is even if your account is the list owner. | ||
+ | * Use this with your personal credentials to login and control "lists that you are owner, moderator or subscriber for". | ||
+ | |||
+ | Use the admin URL, then log in, then either select | ||
+ | * "Mailing lists" under the "HyperKitty", then a list to change description, etc. | ||
+ | * "View site" in the heading, | ||
+ | * "Mailman settings" to change subscription settings for this address. | ||
+ | * A list to change "List Settings", handle pending actions, etc. | ||
+ | |||
+ | Watch for the logout confirmation web page. | ||
+ |