2019-04-04 13:16:02 +02:00
|
|
|
# Import from Mattermost
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-workspace-to-zulip.md!}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
## Import process overview
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
To import your Mattermost organization into Zulip, you will need to take the
|
|
|
|
following steps, which are described in more detail below:
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{start_tabs}
|
|
|
|
|
|
|
|
1. [Export your Mattermost data](#export-your-mattermost-data).
|
|
|
|
|
|
|
|
1. [Import your Mattermost data into Zulip](#import-your-data-into-zulip).
|
|
|
|
|
|
|
|
1. [Get your organization started with Zulip](#get-your-organization-started-with-zulip)!
|
|
|
|
|
|
|
|
{end_tabs}
|
|
|
|
|
|
|
|
## Import your organization from Mattermost into Zulip
|
|
|
|
|
|
|
|
### Export your Mattermost data
|
|
|
|
|
|
|
|
Mattermost's [bulk export tool](https://docs.mattermost.com/manage/bulk-export-tool.html)
|
|
|
|
allows you to export all public and private channel messages.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2019-04-17 01:07:18 +02:00
|
|
|
The instructions below correspond to various common ways Mattermost is installed; if
|
2020-05-05 15:52:32 +02:00
|
|
|
yours isn't covered, [contact us](/help/contact-support) and we'll help you out.
|
2019-04-17 01:07:18 +02:00
|
|
|
|
|
|
|
Replace `<username>` and `<server_ip>` with the appropriate values below.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2019-04-10 14:27:43 +02:00
|
|
|
{start_tabs}
|
|
|
|
|
|
|
|
{tab|mm-default}
|
|
|
|
|
|
|
|
1. SSH into your Mattermost production server.
|
|
|
|
|
|
|
|
```
|
2019-04-17 01:07:18 +02:00
|
|
|
ssh <username>@<server_ip>
|
2019-04-10 14:27:43 +02:00
|
|
|
```
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Navigate to the directory which contains the Mattermost executable.
|
2019-04-10 14:27:43 +02:00
|
|
|
On a default install of Mattermost, the directory is `/opt/mattermost/bin`.
|
|
|
|
|
|
|
|
```
|
|
|
|
cd /opt/mattermost/bin
|
|
|
|
```
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Create an export of all your Mattermost teams, as a tar file.
|
2019-04-10 14:27:43 +02:00
|
|
|
|
|
|
|
```
|
2021-06-28 12:59:16 +02:00
|
|
|
sudo ./mattermost export bulk export.json --all-teams --attachments
|
2019-04-10 14:27:43 +02:00
|
|
|
mkdir -p exported_emoji
|
|
|
|
tar --transform 's|^|mattermost/|' -czf export.tar.gz \
|
2021-06-28 12:59:16 +02:00
|
|
|
data/ exported_emoji/ export.json
|
2019-04-10 14:27:43 +02:00
|
|
|
```
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Exit your shell on the Mattermost server.
|
2019-04-10 14:27:43 +02:00
|
|
|
|
|
|
|
`exit`
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Finally, copy the exported tar file from the server to your local
|
2019-04-14 05:33:07 +02:00
|
|
|
computer. You may need to replace `/opt/mattermost/bin/` with the
|
|
|
|
path to your Mattermost installation.
|
2019-04-10 14:27:43 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
scp <username>@<server_ip>:/opt/mattermost/bin/export.tar.gz .
|
|
|
|
```
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{tab|mm-cloud}
|
|
|
|
|
2023-01-02 19:47:01 +01:00
|
|
|
1. Make sure you have [mmctl](https://github.com/mattermost/mmctl) installed - these
|
|
|
|
instructions assume your version is `7.5.1` or higher.
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Log into your Mattermost Cloud instance using your administrator credentials.
|
|
|
|
|
|
|
|
```
|
|
|
|
mmctl auth login https://yourdomain.cloud.mattermost.com
|
|
|
|
```
|
|
|
|
|
|
|
|
1. Create a full export of the server, including attached files.
|
|
|
|
|
|
|
|
```
|
2023-01-02 19:47:01 +01:00
|
|
|
mmctl export create
|
2022-11-22 07:23:52 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
1. List all of the exports on the server, and copy the name of the
|
|
|
|
latest one to your clipboard.
|
|
|
|
|
|
|
|
```
|
|
|
|
mmctl export list
|
|
|
|
```
|
|
|
|
|
|
|
|
1. Download the export to your local computer, replacing
|
|
|
|
`latest_export` with the actual file name from the previous step.
|
|
|
|
|
|
|
|
```
|
|
|
|
mmctl export download latest_export.zip
|
|
|
|
```
|
|
|
|
|
2019-04-10 14:27:43 +02:00
|
|
|
{tab|mm-docker}
|
|
|
|
|
2019-04-14 05:33:07 +02:00
|
|
|
1. SSH into the server hosting your Mattermost docker container.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2019-04-09 10:56:12 +02:00
|
|
|
```
|
2019-04-17 01:07:18 +02:00
|
|
|
ssh <username>@<server_ip>
|
2019-04-09 10:56:12 +02:00
|
|
|
```
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Navigate to the Mattermost docker directory. On most installs, the
|
2019-04-09 10:56:12 +02:00
|
|
|
directory should be `mattermost-docker`.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2019-04-09 10:56:12 +02:00
|
|
|
```
|
|
|
|
cd mattermost-docker/
|
|
|
|
```
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Create an export of all your Mattermost teams, as a tar file.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2019-04-09 10:56:12 +02:00
|
|
|
```
|
|
|
|
docker exec -it mattermost-docker_app_1 mattermost \
|
2021-06-28 12:59:16 +02:00
|
|
|
export bulk data/export.json --all-teams --attachments
|
2019-04-09 10:56:12 +02:00
|
|
|
cd volumes/app/mattermost/data/
|
|
|
|
mkdir -p exported_emoji
|
|
|
|
tar --transform 's|^|mattermost/|' -czf export.tar.gz \
|
2021-06-28 12:59:16 +02:00
|
|
|
data/ exported_emoji/ export.json
|
2019-04-09 10:56:12 +02:00
|
|
|
```
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Exit your shell on the Mattermost server.
|
2019-04-09 10:56:12 +02:00
|
|
|
|
|
|
|
`exit`
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Finally, copy the exported tar file from the server to your local
|
2019-04-14 05:33:07 +02:00
|
|
|
computer. You may need to replace `mattermost-docker` with the
|
|
|
|
appropriate path for your installation.
|
2019-04-09 10:56:12 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
scp <username>@<server_ip>:mattermost-docker/volumes/app/mattermost/data/export.tar.gz .
|
|
|
|
```
|
2019-04-10 14:27:43 +02:00
|
|
|
|
2019-04-12 20:18:01 +02:00
|
|
|
{tab|mm-gitlab-omnibus}
|
|
|
|
|
|
|
|
1. SSH into your GitLab Omnibus server.
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Create an export of all your Mattermost teams, as a tar file.
|
2019-04-12 20:18:01 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
cd /opt/gitlab/embedded/service/mattermost
|
|
|
|
sudo -u \
|
|
|
|
mattermost /opt/gitlab/embedded/bin/mattermost \
|
|
|
|
--config=/var/opt/gitlab/mattermost/config.json \
|
2021-06-28 12:59:16 +02:00
|
|
|
export bulk export.json --all-teams --attachments
|
2019-04-12 20:18:01 +02:00
|
|
|
mkdir -p exported_emoji
|
|
|
|
tar --transform 's|^|mattermost/|' -czf export.tar.gz \
|
2021-06-28 12:59:16 +02:00
|
|
|
data/ exported_emoji/ export.json
|
2019-04-12 20:18:01 +02:00
|
|
|
```
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Exit your shell on the GitLab Omnibus server.
|
2019-04-12 20:18:01 +02:00
|
|
|
|
|
|
|
`exit`
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
1. Finally, copy the exported tar file from GitLab Omnibus to your local computer.
|
2019-04-12 20:18:01 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
scp <username>@<server_ip>:/opt/gitlab/embedded/bin/mattermost/export.tar.gz .
|
|
|
|
```
|
2019-04-10 14:27:43 +02:00
|
|
|
{end_tabs}
|
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
### Import your data into Zulip
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-your-data-into-zulip.md!}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{start_tabs}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{tab|zulip-cloud}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-into-a-zulip-cloud-organization.md!}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-zulip-cloud-organization-warning.md!}
|
|
|
|
|
|
|
|
{tab|self-hosting}
|
|
|
|
|
|
|
|
{!import-into-a-self-hosted-zulip-server.md!}
|
|
|
|
|
|
|
|
1. To import into an organization hosted on the root domain
|
|
|
|
(`EXTERNAL_HOST`) of the Zulip installation, run the following commands,
|
|
|
|
replacing `<team-name>` with the name of the Mattermost team you want to import.
|
|
|
|
|
2023-03-18 07:32:22 +01:00
|
|
|
{!import-self-hosted-server-tips.md!}
|
2022-11-22 07:23:52 +01:00
|
|
|
|
|
|
|
```
|
2024-06-25 11:23:52 +02:00
|
|
|
cd /tmp
|
|
|
|
tar -xf mattermost_data.tar.gz
|
2022-11-22 07:23:52 +01:00
|
|
|
cd /home/zulip/deployments/current
|
|
|
|
./scripts/stop-server
|
2024-06-25 11:23:52 +02:00
|
|
|
./manage.py convert_mattermost_data /tmp/mattermost_data --output /tmp/converted_mattermost_data
|
2022-11-22 07:23:52 +01:00
|
|
|
./manage.py import '' /tmp/converted_mattermost_data/<team-name>
|
|
|
|
./scripts/start-server
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively, to import into a custom subdomain, run:
|
|
|
|
|
|
|
|
```
|
2024-06-25 11:23:52 +02:00
|
|
|
cd /tmp
|
|
|
|
tar -xf mattermost_data.tar.gz
|
2022-11-22 07:23:52 +01:00
|
|
|
cd /home/zulip/deployments/current
|
|
|
|
./scripts/stop-server
|
2024-06-25 11:23:52 +02:00
|
|
|
./manage.py convert_mattermost_data /tmp/mattermost_data --output /tmp/converted_mattermost_data
|
2022-11-22 07:23:52 +01:00
|
|
|
./manage.py import <subdomain> /tmp/converted_mattermost_data/<team-name>
|
|
|
|
./scripts/start-server
|
|
|
|
```
|
|
|
|
|
|
|
|
1. Follow [step 4](https://zulip.readthedocs.io/en/stable/production/install.html#step-4-configure-and-use)
|
|
|
|
of the guide for [installing a new Zulip
|
|
|
|
server](https://zulip.readthedocs.io/en/stable/production/install.html).
|
|
|
|
|
|
|
|
{tab|mm-self-hosting-cloud-export}
|
|
|
|
|
|
|
|
{!import-into-a-self-hosted-zulip-server.md!}
|
|
|
|
|
|
|
|
1. To import into an organization hosted on the root domain
|
|
|
|
(`EXTERNAL_HOST`) of the Zulip installation, run the following commands,
|
|
|
|
replacing `<team-name>` with the name of the Mattermost team you want to import.
|
|
|
|
|
2023-03-18 07:32:22 +01:00
|
|
|
{!import-self-hosted-server-tips.md!}
|
2022-11-22 07:23:52 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
unzip latest_export.zip -d /tmp/my_mattermost_export
|
|
|
|
mv /tmp/my_mattermost_export/import.jsonl /tmp/my_mattermost_export/export.json
|
|
|
|
cd /home/zulip/deployments/current
|
|
|
|
./scripts/stop-server
|
|
|
|
./manage.py convert_mattermost_data /tmp/my_mattermost_export --output /tmp/converted_mattermost_data
|
|
|
|
./manage.py import '' /tmp/converted_mattermost_data/<team-name>
|
|
|
|
./scripts/start-server
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively, to import into a custom subdomain, run:
|
|
|
|
|
|
|
|
```
|
|
|
|
unzip latest_export.zip -d /tmp/my_mattermost_export
|
|
|
|
mv /tmp/my_mattermost_export/import.jsonl /tmp/my_mattermost_export/export.json
|
|
|
|
cd /home/zulip/deployments/current
|
|
|
|
./scripts/stop-server
|
|
|
|
./manage.py convert_mattermost_data /tmp/my_mattermost_export --output /tmp/converted_mattermost_data
|
|
|
|
./manage.py import <subdomain> /tmp/converted_mattermost_data/<team-name>
|
|
|
|
./scripts/start-server
|
|
|
|
```
|
|
|
|
|
|
|
|
1. Follow [step 4](https://zulip.readthedocs.io/en/stable/production/install.html#step-4-configure-and-use)
|
|
|
|
of the guide for [installing a new Zulip
|
|
|
|
server](https://zulip.readthedocs.io/en/stable/production/install.html).
|
|
|
|
|
|
|
|
{end_tabs}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
#### Import details
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
Whether you are using Zulip Cloud or self-hosting Zulip, here are a few notes to
|
|
|
|
keep in mind about the import process:
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
- Mattermost does not export workspace settings, so you will need to [configure
|
|
|
|
the settings for your Zulip organization](/help/customize-organization-settings).
|
|
|
|
This includes settings like [email
|
2023-02-07 06:29:11 +01:00
|
|
|
visibility](/help/configure-email-visibility),
|
2023-02-09 05:17:34 +01:00
|
|
|
[message editing permissions](/help/restrict-message-editing-and-deletion),
|
2022-11-22 07:23:52 +01:00
|
|
|
and [how users can join your organization](/help/restrict-account-creation).
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
- Mattermost's user roles are mapped to Zulip's [user
|
|
|
|
roles](/help/roles-and-permissions) in the following way:
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
| Mattermost role | Zulip role |
|
|
|
|
|-------------------------|---------------|
|
|
|
|
| Team administrator | Owner |
|
|
|
|
| Member | Member |
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
- Mattermost's export tool does not support exporting user avatars or message
|
|
|
|
edit history.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2023-02-10 08:04:36 +01:00
|
|
|
- Direct messages will only be imported from Mattermost workspaces containing
|
2022-11-22 07:23:52 +01:00
|
|
|
a single team. This is because Mattermost's data exports do not associate
|
2023-02-10 08:04:36 +01:00
|
|
|
direct messages with a specific Mattermost team.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
- Messages in threads are imported, but they are not explicitly marked as
|
|
|
|
being in a thread.
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
## Get your organization started with Zulip
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-get-your-organization-started.md!}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
## Decide how users will log in
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
{!import-how-users-will-log-in.md!}
|
2019-04-04 13:16:02 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
## Related articles
|
2019-09-25 15:46:05 +02:00
|
|
|
|
2022-11-22 07:23:52 +01:00
|
|
|
* [Choosing between Zulip Cloud and self-hosting](/help/zulip-cloud-or-self-hosting)
|
|
|
|
* [Setting up your organization](/help/getting-your-organization-started-with-zulip)
|
|
|
|
* [Getting started with Zulip](/help/getting-started-with-zulip)
|