Я создал тему (Migration from Yahoo! Groups) для получения рекомендаций по этому вопросу, и в другой теме (Yahoo Groups to Discourse migration?) также задаются вопросы об этом. Вот что я придумал для миграции.
Предыстория
Yahoo объявила несколько недель назад, что существенно сокращает услуги, доступные через Yahoo Groups. Начиная с 28 октября 2019 года, они отключили возможность загрузки контента пользователями. 14 декабря 2019 года они удалят весь загруженный контент, включая архивы сообщений. Я выделил этот момент жирным шрифтом, потому что изначально это было неочевидно для меня, и это сделало миграцию группы гораздо более срочной. На данный момент они заявляют, что группа останется рабочей как рассылка, но без архивов в будущем.
Существует другой сервис — groups.io, который представляет собой готовое решение для замены Yahoo Groups. Это очевидный выбор для тех, кто хочет мигрировать группу Yahoo: они возьмут на себя перенос всего, а пользователи сохранят привычный интерфейс. Последнее, на мой взгляд, является одним из основных недостатков этого сервиса; другой недостаток — стоимость миграции группы в размере 220 долларов. Я считал, что если уж я решаюсь мигрировать группу, то стоит обновить интерфейс до чего-то более современного, сохранив при этом возможность использования в качестве рассылки.
Если в вашей группе много фотографий или загруженных файлов, возможно, стоит рассмотреть другой способ их размещения. В противном случае вы можете добавлять их в темы на вашем сайте, возможно, в отдельные категории. Если у вас есть другие типы данных (например, базы данных или календари), которые вы хотите сохранить, я предоставлю другим определить лучший способ их миграции.
Подготовка
Ключевым элементом этого процесса является инструмент Yahoo «Получить мои данные», который позволяет скачать определенные данные из ваших групп. В частности, он дает возможность получить:
- Все сообщения для всех групп, членом которых вы являетесь, и
- Все загруженные файлы (но не фотографии) для всех групп, членом которых вы являетесь.
Скачанные сообщения предоставляются в формате .mbox и включают полные адреса электронной почты, независимо от того, являетесь ли вы модератором или администратором группы.
Этот инструмент позволяет отправить запрос. После обработки запроса Yahoo отправит вам уведомление по электронной почте о том, что загрузка готова — у меня это заняло около недели.
Как упоминалось выше, инструмент «Получить мои данные» не скачивает фотографии. Для них я использовал GitHub - IgnoredAmbience/yahoo-group-archiver: Scrapes and archives a Yahoo groups email archives, photo galleries and file contents using the non-public API · GitHub. Он также скачивает все остальные данные (и, насколько мне известно, нет возможности ограничить его), но при этом получает фотографии вместе с их метаданными.
Установка
Установите систему, следуя инструкциям на discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub на выбранном вами хостинге VPS (я использую contabo.com, но выбор провайдеров VPS очень велик). Получите домен, если у вас его еще нет (freenom.com, если нужен бесплатный; easydns.com или name.com хорошо подходят как платные регистраторы). Настройте DNS с помощью предпочитаемого хостинга (я предпочитаю cloudflare.com для этого). Настройте исходящую и входящую электронную почту, следуя инструкциям на Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.
Настройте вашу установку по желанию; импорт не перезапишет уже настроенные параметры.
Миграция сообщений
Инструмент «Получить мои данные» предоставит вам один файл .zip. В нем будет каталог для каждой группы, членом которой вы являетесь, и в каждом каталоге будут файлы messages.zip и files.zip. При распаковке messages.zip вы получите файлы .mbox, содержащие все сообщения группы, разделенные на файлы по 10 МБ, сколько потребуется для их размещения (в группе, которую я мигрировал, содержащей 38 000 сообщений, таких файлов было 15). После этого вы можете следовать инструкциям на Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc) для импорта их в вашу установку Discourse. Если у вас уже есть пользователи, скрипт сопоставит сообщения с ними по адресу электронной почты. Любые адреса электронной почты, для которых нет соответствующего пользователя, создадут нового пользователя.
Проблемы
Поскольку создание пользователей основано на адресах электронной почты, пользователи Yahoo, менявшие адреса электронной почты со временем, приведут к созданию нескольких пользователей в вашей установке Discourse. Плагин для объединения пользователей (Merge Users Plugin) должен решить эту проблему, хотя их идентификация все равно останется ручным процессом.
Заключение
Вот на чем я остановился на данный момент: мой сайт работает, сообщения на месте, пользователи на месте, и теперь осталось лишь доработать и настроить детали. Надеюсь, это поможет другим решиться и перенести свои группы Yahoo на сайт на базе Discourse, вместо того чтобы оставаться с чем-то подобным.