8.8 KiB
Install a Zulip server
You can choose from several convenient options for hosting Zulip:
- Follow these instructions to install a self-hosted Zulip server on a system of your choice.
- Use Zulip's Docker image.
- Use a preconfigured DigitalOcean droplet
- Use Zulip Cloud hosting. Read our guide to choosing between Zulip Cloud and self-hosting.
To import data from Slack, Mattermost, Rocket.Chat, Zulip Cloud, or another Zulip server, follow the linked instructions.
You can try out Zulip before setting up your own server by checking it out in the Zulip development community, or creating a free test organization on Zulip Cloud.
:::{note} These instructions are for self-hosting Zulip. To contribute to the project, set up the development environment. :::
Installation process overview
- Set up a base server
- Download the latest release
- Install Zulip
- Create a Zulip organization, and log in
That's it! Once installation is complete, you can configure Zulip to suit your needs.
Step 0: Set up a base server
Provision and log in to a fresh Ubuntu or Debian system in your preferred hosting environment that satisfies the installation requirements for your expected usage level.
Step 1: Download the latest release
Download and unpack the latest server release (Zulip Server {{ LATEST_RELEASE_VERSION }}) with the following commands:
cd $(mktemp -d)
curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
tar -xf zulip-server-latest.tar.gz
To verify the download, see the sha256sums of our release tarballs.
Step 2: Install Zulip
To set up Zulip with the most common configuration, first become the
root
user, if you are not already:
[ "$(whoami)" != "root" ] && sudo -s
Then, run the installer, providing your email address and the public hostname that users will be able to access your server with:
./zulip-server-*/scripts/setup/install --push-notifications --certbot \
--email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
This command will immediately prompt you to agree to Zulip's Terms of
Service, so that your server can be registered for the Mobile Push
Notification Service. To skip registering for
access to push notifications at this time, remove the --push-notifications
flag.
:::{note}
When registering for push notifications, you can configure whether your server
will submit aggregate usage statistics. See --no-submit-usage-statistics
installer option for details.
:::
The installer takes a few minutes to run, as it installs Zulip's dependencies. It is designed to be idempotent: if the script fails, once you've corrected the cause of the failure, you can just rerun the script. For more information, see installer details and troubleshooting.
Installer options
-
--email=it-team@example.com
: A real email address for the person or team who maintains the Zulip installation. Zulip users on your server will see this as the contact email in automated emails, on help pages, on error pages, etc. If you use the Mobile Push Notification Service, this is used as a point of contact. You can later configure a display name for your contact email with theZULIP_ADMINISTRATOR
setting. -
--hostname=zulip.example.com
: The user-accessible domain name for this Zulip server, i.e., what users will type in their web browser. This becomesEXTERNAL_HOST
in the Zulip settings. -
--certbot
: With this option, the Zulip installer automatically obtains an SSL certificate for the server using Certbot, and configures a cron job to renew the certificate automatically. If you prefer to acquire an SSL certificate another way, it's easy to provide it to Zulip. -
--push-notifications
/--no-push-notifications
: With this option, the Zulip installer registers your server for the Mobile Push Notification Service, and sets up the initial default configuration. You will be immediately prompted to agree to the Terms of Service, and your server will be registered at the end of the installation process. You can learn more about the service and why it's necessary for push notifications. -
--no-submit-usage-statistics
: If you enable push notifications, by default your server will submit basic metadata (required for billing and for determining free plan eligibility), as well as aggregate usage statistics. You can disable submitting usage statistics by passing this flag. If push notifications are not enabled, no data will be submitted, so this flag is redundant. -
--agree-to-terms-of-service
: If you're using the--push-notifications
flag, you can pass this additional flag to indicate that you have read and agree to the Terms of Service. This skips the Terms of Service prompt, allowing for running the installer with--push-notifications
in scripts without requiring user input. -
--self-signed-cert
: With this option, the Zulip installer generates a self-signed SSL certificate for the server. This isn't suitable for production use (unless your server is behind a reverse proxy), but may be convenient for testing.
For advanced installer options, see our deployment options documentation.
:::{important}
If you are importing data, stop here and return to the import instructions for Slack, Mattermost, Rocket.Chat, Zulip Cloud, a server backup, or another Zulip server.
:::
Step 3: Create a Zulip organization, and log in
When the installation process is complete, the install script prints a secure one-time-use organization creation link. Open this link in your browser, and follow the prompts to set up your organization and your own user account. Your Zulip organization is ready to use!
:::{note}
You can generate a new organization creation link by running manage.py generate_realm_creation_link
on the server. See also our guide on running
multiple organizations on the same server.
:::
Getting started with Zulip
To really see Zulip in action, you'll need to get the people you work together with using it with you.
- Set up outgoing email so Zulip can confirm new users' email addresses and send notifications.
- Learn how to get your organization started using Zulip at its best.
Learning more:
- Subscribe to the Zulip announcements email list for server administrators. This extremely low-traffic list is for important announcements, including new releases and security issues.
- Follow us on Mastodon or X/Twitter.
- Learn how to configure your Zulip server settings.
- Learn about Backups, export and import and upgrading a production Zulip server.