Install a new Zulip server, skipping Step 3 (you’ll create your Zulip organization via the data import tool instead).
Ensure that the Zulip server you’re importing into is running the same version of Zulip as the server you’re exporting from.
For exports from Zulip Cloud (zulip.com), you need to upgrade to main, since we run main on Zulip Cloud:
/home/zulip/deployments/current/scripts/upgrade-zulip-from-git main
It is not sufficient to be on the latest stable release, as zulip.com runs pre-release versions of Zulip that are often several months of development ahead of the latest release.
Note that if your server has limited free RAM, you’ll want to shut down the Zulip server with
./scripts/stop-server
while you run the import, since our minimal system requirements do not budget extra RAM for running the data import tool.
cd ~
tar -xf /path/to/export/file/zulip-export-zcmpxfm6.tar.gz
cd /home/zulip/deployments/current
./manage.py import '' ~/zulip-export-zcmpxfm6
# ./scripts/start-server
# .`/manage.py reactivate_realm -r '' # Reactivates the organization
This could take several minutes to run depending on how much data you’re importing.
Once the import completes, all your users will have accounts in your new Zulip organization, but those accounts won’t have passwords yet (since for security reasons, passwords are not exported). Your users will need to either authenticate using something like Google auth or start by resetting their passwords.
You can use the ./manage.py send_password_reset_email
command to send password reset emails to your users. We recommend starting with sending one to yourself for testing:
./manage.py send_password_reset_email -u username@example.com
and then once you’re ready, you can email them to everyone using e.g.
./manage.py send_password_reset_email -r '' --all-users
(replace ‘’ with your subdomain if you’re using one).