starlight_help/src/content/docs/import-from-mattermost.mdx
import {Steps, TabItem, Tabs} from "@astrojs/starlight/components";
import FlattenedSteps from "../../components/FlattenedSteps.astro"; import ZulipNote from "../../components/ZulipNote.astro"; import ImportGetYourOrganizationStarted from "../include/_ImportGetYourOrganizationStarted.mdx"; import ImportHowUsersWillLogIn from "../include/_ImportHowUsersWillLogIn.mdx"; import ImportIntoASelfHostedServerDescription from "../include/_ImportIntoASelfHostedServerDescription.mdx"; import ImportIntoASelfHostedServerInstructions from "../include/_ImportIntoASelfHostedServerInstructions.mdx"; import ImportIntoAZulipCloudOrganization from "../include/_ImportIntoAZulipCloudOrganization.mdx"; import ImportSelfHostedServerTips from "../include/_ImportSelfHostedServerTips.mdx"; import ImportWorkspaceToZulip from "../include/_ImportWorkspaceToZulip.mdx"; import ImportYourDataIntoZulip from "../include/_ImportYourDataIntoZulip.mdx"; import ImportZulipCloudOrganizationWarning from "../include/_ImportZulipCloudOrganizationWarning.mdx"; import ViewImportedUsers from "../include/_ViewImportedUsers.mdx";
<ImportWorkspaceToZulip />To import your Mattermost organization into Zulip, you will need to take the following steps, which are described in more detail below:
<Steps> 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)! </Steps>Mattermost's bulk export tool allows you to export all public and private channel messages.
The instructions below correspond to various common ways Mattermost is installed; if yours isn't covered, contact us and we'll help you out.
Replace <username> and <server_ip> with the appropriate values below.
1. Navigate to the `../server/bin/` directory in your Mattermost installation and
locate the `mmctl` executable. All subsequent `mmctl` commands are executed
using this executable.
1. Create a full export of the server, including attached files.
```bash
docker exec -it mattermost-docker_app_1 mmctl export create
```
<ZulipNote>
If you're on version \< `7.3.0`, you need to include the `--attachments`
argument when calling the command above to export attachment files.
</ZulipNote>
1. List all of the exports on the server, and copy the name of the
latest one to your clipboard.
```bash
docker exec -it mattermost-docker_app_1 mmctl export list
```
1. Download the export file to the server, replacing `latest_export`
with the actual file name from the previous step and `/local/dir/`
with the download destination.
```bash
docker exec -it mattermost-docker_app_1 mmctl export download latest_export.zip /local/dir/latest_export.zip
```
1. Finally, copy the exported zip file to your local computer.
```bash "<username>" "<server_ip>"
scp <username>@<server_ip>:latest_export.zip /local/dir
```
</Steps>
<ImportZulipCloudOrganizationWarning />
<FlattenedSteps>
<ImportIntoASelfHostedServerInstructions />
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.
<ImportSelfHostedServerTips />
```bash "<team-name>"
cd /tmp
tar -xf mattermost_data.tar.gz
cd /home/zulip/deployments/current
./scripts/stop-server
./manage.py convert_mattermost_data /tmp/mattermost_data --output /tmp/converted_mattermost_data
./manage.py import '' /tmp/converted_mattermost_data/<team-name>
./scripts/start-server
```
By default Mattermost teams will be converted into their own Zulip organizations,
to convert all Mattermost teams into one Zulip organization, run:
```bash
./manage.py convert_mattermost_data /tmp/mattermost_data --output /tmp/converted_mattermost_data --combine-teams-into-one-org
```
<ZulipNote>
**Note**: With the `--combine-teams-into-one-org` option, admins in individual Mattermost
teams will be converted into admin users in the combined Zulip organization.
</ZulipNote>
Alternatively, to import into a custom subdomain, run:
```bash "<team-name>" "<subdomain>"
cd /tmp
tar -xf mattermost_data.tar.gz
cd /home/zulip/deployments/current
./scripts/stop-server
./manage.py convert_mattermost_data /tmp/mattermost_data --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).
</FlattenedSteps>
<FlattenedSteps>
<ImportIntoASelfHostedServerInstructions />
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.
<ImportSelfHostedServerTips />
```bash "<team-name>"
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:
```bash "<team-name>" "<subdomain>"
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).
</FlattenedSteps>
Whether you are using Zulip Cloud or self-hosting Zulip, here are a few notes to keep in mind about the import process:
| Mattermost role | Zulip role |
|---|---|
| Team administrator | Owner |
| Member | Member |