이 주제에 대해 조언을 구하기 위해 토론을 시작했고, 다른 토론에서도 이에 대해 묻고 있어, 마이그레이션을 위해 내가 정리한 내용을 공유한다.
배경
야후는 몇 주 전 공지를 통해 야후 그룹을 통해 제공되는 서비스를 대폭 축소할 것이라고 발표했다. 2019년 10월 28일부터 사용자 업로드 콘텐츠가 비활성화되었다. 2019년 12월 14일에는 메시지 아카이브를 포함하여 모든 업로드 콘텐츠가 삭제될 것이라고 한다. 이 마지막 부분을 강조한 이유는 처음에는 명확하지 않았고, 이로 인해 그룹 마이그레이션이 훨씬 시급해졌기 때문이다. 현재로서는 메일링 리스트로 계속 사용 가능하지만, 향후 아카이브는 제공되지 않을 것이라고 한다.
groups.io에는 야후 그룹의 대체 서비스로 거의 즉시 사용할 수 있는 서비스가 있으며, 야후 그룹을 이전하려는 사람에게 가장 자연스러운 선택지이다. 이 서비스는 모든 데이터 이동을 처리해 주며, 사용자는 익숙한 인터페이스를 그대로 유지할 수 있다. 내 생각에 이 서비스의 큰 단점 중 하나는 바로 이 점(인터페이스 유지)이며, 다른 단점은 그룹당 220달러의 마이그레이션 비용이다. 나는 그룹을 이전한다면 인터페이스를 더 현대적인 것으로 업데이트하되, 메일링 리스트로 사용할 수 있는 기능은 유지하는 것이 좋겠다고 생각했다.
그룹에 사진이나 업로드된 파일이 많다면, 다른 호스팅 방법을 고려해 볼 수 있다. 그렇지 않다면, 사이트의 주제(토픽)에 게시하거나 별도의 카테고리를 만들어 게시할 수 있다. 데이터베이스나 캘린더처럼 저장하고 싶은 다른 유형의 데이터가 있다면, 이를 마이그레이션하는 최선의 방법은 다른 분들의 조언을 기다려야 할 것 같다.
준비
이 과정의 핵심은 야후의 “내 데이터 가져오기” 도구로, 이를 통해 그룹의 특정 데이터를 다운로드할 수 있다. 구체적으로 다음과 같은 데이터를 가져올 수 있다:
- 사용자가 속해 있는 모든 그룹의 모든 메시지, 그리고
- 사용자가 속해 있는 모든 그룹의 모든 업로드된 파일(사진 제외).
다운로드된 메시지는 .mbox 형식으로 제공되며, 그룹의 관리자나 운영자가 아니더라도 전체 이메일 주소를 포함한다.
이 도구를 사용하면 요청을 제출할 수 있다. 야후가 처리를 완료하면 다운로드가 준비되었음을 알리는 이메일 통지를 받는다. 내 경우 약 일주일 정도 걸렸다.
위에서 언급했듯이 “내 데이터 가져오기” 도구는 사진을 다운로드하지 않는다. 사진을 위해 https://github.com/IgnoredAmbience/yahoo-group-archiver를 사용했다. 이 도구는 다른 모든 데이터도 다운로드한다(내 지식 범위 내에서 범위를 제한하는 방법은 없다), 하지만 사진과 함께 메타데이터도 가져온다.
설치
선택한 VPS 호스트(나는 contabo.com을 사용하지만, VPS 제공업체는 다양하다)에서 https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md에 따라 설치한다. 도메인이 없다면 하나를 구해야 한다(무료로 원한다면 freenom.com, 유료 등록사로는 easydns.com이나 name.com이 나에게 잘 작동했다). 선호하는 호스트를 사용하여 DNS를 설정한다(나는 cloudflare.com을 선호한다). 발신 이메일(mailgun.com 사용)과 수신 이메일은 https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487에 따라 설정한다.
원하는 대로 설치를 구성한다. 가져오기(Import) 과정은 이미 구성한 내용을 덮어쓰지 않는다.
메시지 마이그레이션
“내 데이터 가져오기” 도구는 단일 .zip 파일을 제공한다. 이 파일에는 사용자가 속해 있는 모든 그룹에 대한 디렉터리가 있으며, 각 디렉터리에는 messages.zip과 files.zip가 있다. messages.zip을 압축을 풀면 그룹의 모든 메시지가 포함된 .mbox 파일이 생성된다. 메시지의 양에 따라 10MB 크기의 파일이 여러 개 생성될 수 있다(내가 마이그레이션한 그룹의 38,000개 메시지는 15개의 파일로 나뉘어 있었다). 파일을 확보한 후에는 https://meta.discourse.org/t/importing-mailing-lists-mbox-listserv-google-groups-emails/79773의 지침을 따라 Discourse 설치 환경으로 가져올 수 있다. 기존 사용자가 있다면, 스크립트는 이메일 주소를 기준으로 메시지를 해당 사용자와 매칭한다. 사용자와 매칭되지 않는 이메일 주소는 새 사용자를 생성한다.
문제점
사용자 생성이 이메일 기반으로 이루어지므로, 시간이 지남에 따라 이메일 주소를 변경한 야후 사용자는 Discourse 설치 환경에서 여러 개의 사용자 계정으로 생성될 수 있다. 사용자 병합 플러그인(Merge Users Plugin)이 이 문제를 해결해 줄 수 있지만, 해당 사용자를 식별하는 과정은 여전히 수동으로 이루어져야 한다.
결론
지금까지의 상태는 이렇다. 내 사이트는 작동하고, 메시지도 있고, 사용자도 있다. 이제 남은 것은 세팅과 조정이다. 이 글이 다른 사람들이 더 이상의 같은 상황(야후 그룹 유지)을 고집하기보다 Discourse 기반 사이트로 야후 그룹을 이전하는 용기를 내는 데 도움이 되기를 바란다.