Как мигрировать с Mailman2 на Discourse

Здравствуйте,

mailman2discourse — это инструмент командной строки для импорта конфигурации mailman2 (как она содержится в файле config.pck) в категорию Discourse доступный в PyPI. Для каждого участника рассылки создается пользователь, и они уведомляются о новых сообщениях в категории (если только в настройках mailman2 для них не указано «никогда не получать письма»). Модераторы закрытой рассылки становятся участниками группы Discourse, которые могут проверять каждое новое сообщение. Если архивы рассылки не являются общедоступными, категория Discourse видна только группе, имитирующей список участников mailman2.

Установка

$ pipenv install mailman2discourse

Использование

Требования:

  • API-ключ (полученный через /admin/api/keys/new) с уровнем доступа пользователя All Users
  • Пользователь-администратор (например, admin)
  • Контейнер импортера mbox со следующими настройками:
    • DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE: 60000000
    • DISCOURSE_MAX_REQS_PER_IP_MODE: none
    • Без включения файла «templates/web.ratelimited.template.yml»
  • Файл config.pck рассылки mailman2

Для импорта рассылки mailman2 listname@example.com выполните:

    $ mailman2discourse --url http://172.19.0.2 --api-key APIKEY --api-user admin \
                      --mailman-config config.pck \
                      --list listname --domain example.com

Импорт является идемпотентным, то есть его можно безопасно запускать несколько раз, например, если процесс был прерван или если файл config.pck был обновлен.

После этого можно импортировать содержимое архивов.

Импорт архивов

Архивы рассылки можно импортировать с помощью импортера mbox. Файлы .mbox и .mbox.gz должны быть размещены в каталоге, имя которого совпадает с именем категории, созданной утилитой mailman2discourse.

Сообщения об ошибках

Лучшее место для сообщения о проблемах — трекер задач, но также можно написать об этом в этой теме.

Я начал работать над этим скриптом в прошлом году и получил возможность протестировать его в мае 2021 года при миграции списков рассылки Spip. Скрипт всё ещё находится на ранней стадии развития, но я уверен, что он уже готов к использованию.

Импорт по-прежнему требует множества ручных действий, и мне бы очень хотелось иметь возможность выполнять его одной командой вроде discourse import --mailman2 config.pck mbox-archives-directory, которая бы «просто работала». Однако я не планирую реализовывать такую функцию. Меня вполне устраивают пользовательские shell-скрипты, и я не вижу, как их можно обобщить. В любом случае логика, реализованная в mailman2discourse, — это недостающий элемент пазла, и я рад, что он существует :slight_smile: