この件に関するガイダンスを得るため、トピック(https://meta.discourse.org/t/migration-from-yahoo-groups/131951/)を作成しました。また、同様の質問をしたトピック(https://meta.discourse.org/t/yahoo-groups-to-discourse-migration/131587)もあります。そこで、私が導き出した移行方法を以下にまとめます。
背景
Yahoo は数週間前、Yahoo Groups を通じて提供されるサービスを大幅に縮小すると発表しました。2019 年 10 月 28 日より、ユーザーがアップロードしたコンテンツは無効化されました。さらに 2019 年 12 月 14 日には、すべてのアップロードコンテンツ(メッセージアーカイブを含む)を削除すると発表しています。最後の点を太字にしましたが、当初はこれが明確でなかったため、グループの移行がより緊急の課題となりました。現時点では、今後アーカイブは残らないものの、メーリングリストとしては引き続き利用可能とのことです。
Yahoo Groups のほぼ完全な代替となるのが groups.io というサービスです。これは Yahoo グループを移行したい人にとって自明の選択肢と言えます。すべてのデータを移行処理してくれるだけでなく、ユーザーは慣れ親しんだインターフェースを維持できます。しかし、後者の点は私見ですが、このサービスの大きな欠点の一つです。もう一つの欠点は、グループ移行に 220 ドルという費用がかかることです。もし私がグループを移行する手間をかけるなら、より現代的なインターフェースに更新しつつ、メーリングリストとしての機能も維持できる方が良いと考えました。
もしあなたのグループに多数の写真やアップロードファイルがある場合は、それらをホストする方法を別の手立てで検討する必要があるかもしれません。そうでない場合、それらをあなたのサイトのトピック(おそらく別のカテゴリ)に投稿できます。もしデータベースやカレンダーなどの他の種類のデータを保存したい場合は、それらの最適な移行方法については他の方に委ねざるを得ません。
準備
このプロセスの鍵となるのは、Yahoo の「マイデータを取得」ツール(Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos
- 所属しているすべてのグループのすべてのメッセージ
- 所属しているすべてのグループのすべてのアップロードファイル(写真は除く)
ダウンロードされるメッセージは .mbox 形式で、あなたがそのグループのモデレーターや管理者かどうかに関わらず、完全なメールアドレスが含まれます。
このツールを使用するとリクエストを送信できます。Yahoo が処理を終えると、ダウンロードの準備が整った旨のメール通知が届きます(私の場合は約 1 週間かかりました)。
前述の通り、「マイデータを取得」ツールは写真をダウンロードしません。写真については、GitHub - IgnoredAmbience/yahoo-group-archiver: Scrapes and archives a Yahoo groups email archives, photo galleries and file contents using the non-public API · GitHub を使用しました。これは他のすべてのデータもダウンロードします(制限する方法は AFAIK 存在しません)が、写真とそのメタデータを取得できます。
インストール
任意の VPS ホストで、discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub に従ってインストールしてください(私は contabo.com を使用していますが、VPS プロバイダーは他にも多数あります)。ドメインを持っていない場合は取得してください(無料なら freenom.com、有料なら easydns.com や name.com が私にはよく機能します)。DNS は好みのホストで設定してください(私は cloudflare.com を推奨します)。送信メール(私は mailgun.com を使用)と受信メールの設定は、Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver に従って行ってください。
インストール設定は任意に行ってください。インポートはすでに設定済みの内容を上書きすることはありません。
メッセージの移行
「マイデータを取得」ツールからは単一の .zip ファイルが提供されます。これには所属しているすべてのグループのディレクトリが含まれており、各ディレクトリ内には messages.zip と files.zip があります。messages.zip を解凍すると、グループのすべてのメッセージを含む .mbox ファイルが得られます。これらを格納するために必要な限り、10MB ファイルが多数生成されます(私が移行した 38,000 メッセージのグループでは 15 個でした)。それらが手に入ったら、Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc) の手順に従って、Discourse インストールにインポートしてください。既存のユーザーがいる場合、スクリプトはメールアドレスでメッセージとユーザーを照合します。対応するユーザーが存在しないメールアドレスについては、新しいユーザーが作成されます。
課題
ユーザー作成がメールアドレスベースであるため、経年でメールアドレスを変更した Yahoo ユーザーは、Discourse インストール内に複数のユーザーとして作成されてしまいます。これを解決するには「ユーザー結合」プラグイン(https://meta.discourse.org/t/merge-users-plugin/114917)が有効ですが、それらを特定する作業は依然として手動で行う必要があります。
結論
これが現在の私の状況です。サイトは機能しており、メッセージもユーザーも存在しています。あとは微調整と調整を行うのみです。同じことの繰り返しに留めるのではなく、Yahoo グループを Discourse ベースのサイトに移行する一歩を踏み出すお手伝いができれば幸いです。