Slack の過去ログを Mattermost に取り込む
以前、Slack の過去ログの保存につて書いた。
あのときは最終的には Mattermost の Preview 版に取り込んだ。
そのときの Slack の書き出しデータファイルは保存しているので、今度は Production 版の Mattermost(Docker)に取り込んでみた。
Slack データの書き出しは slack-dump を使った。Slack 公式の書き出しではパブリックチャンネルしか書き出せないが、slack-dump を使えばプライベートチャンネルや DM も合わせて書き出せるからだ。今回は slack-dump の書き出しファイルを使ったが、以下の方法は Slack 公式の書き出しファイルでも動作するはずだ。
GitHub - takameron/slack-dump: Export History For Channel, Private Group and Direct Message From Slack
https://github.com/takameron/slack-dump
移行先は VMware ESXi 上に立てた Ubuntu だ。ドメインは Cloudflare Tunnel を使って管理する。
(1)Ubuntu に Docker と docker-compose をインストールする。
Ubuntu 18.04 LTS / 20.04 LTS に Docker をインストールする | SIDfm VM ユーザガイド
https://www.softek.co.jp/SID/support/sidfmvm/guide/install-docker-ubuntu1804.html
Ubuntu 20.04にDockerとdocker-composeを導入する
https://zenn.dev/shimakaze_soft/articles/02aebaedeb43b6
Proxy は設定しなかった。
$ docker -v
Docker version 24.0.2, build cb74dfc
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c
(2)Cloudflare Tunnel をインストールする。
(3)Docker の Mattermost(Production 版)をインストールする。
(4)Mattermost でアカウントを作成し、適当な Team を作成する(アカウント名や Team 名は Slack と異なっていてもよい)。
(5)root でコンテナ内に入る。
$ sudo docker exec -it -u root {コンテナ ID} /bin/bash
(6)wget をインストールする。
# apt install wget
(7)コンテナ内に slack-dump のデータを転送する必要がある。僕は station307.com へアップロードし、wget でダウンロードした。
Station307
https://www.station307.com/#/
# wget {station307.com のダウンロード URL}
(8)Mattermost に7を取り込む。
# mattermost import slack {Mattermost の Team 名} {slack-dump で書き出した zip ファイル名}
(9)Mattermost の左上の Team 名右にある「+」ボタンをクリック。「Browse Channels」をクリックして Slack のチャンネルを追加していく。
これで Slack のメッセージを Mattermost に取り込めた。
ただし、もともと Slack の公式書き出しデータも slack-dump の書き出しデータも、添付ファイルの書き出しができない。だから当然上記方法で取り込んだメッセージも添付ファイルが含まれない、テキストのみのメッセージである。
参考:
Mattermost+MySQLのセットアップ (Docker) - Qiita
https://qiita.com/gucchy55/items/a575547a02679f212582