MirrorNest
← All guides

Zulip

Zulip is an open-source team chat app organized around topic-based threads, distributed as an official Docker image for teams who prefer containers over Zulip's native installer.

Target: Linux server (Docker, root access required)CommunicationOfficial homepage ↗Official docs ↗
This guide is synthesized from Zulip's own official documentation, linked above — always cross-check exact package/version names there before running these commands on a production server, since distro and project versions move over time.
  1. 1Clone the docker-zulip repository

    git clone https://github.com/zulip/docker-zulip.git
    cd docker-zulip

    Zulip's docs note that Docker moderately increases the effort to install/maintain versus their native installer, and that Docker rootless is not supported since Zulip needs root to set ulimits.

  2. 2Create your local override file

    compose.override.yaml holds your deployment-specific configuration and is not tracked by git.

    cp compose.override.yaml.example compose.override.yaml
  3. 3Configure server settings and TLS

    Set your domain and any SETTING_* environment variables (mapped to /etc/zulip/settings.py) in compose.override.yaml, following Zulip's separate 'Providing settings via environment' and 'Configuring TLS' guides.

  4. 4Pull images and initialize

    docker compose pull
    docker compose run --rm zulip app:init
    docker compose up zulip --wait

    At least 2GB RAM is recommended for running Zulip; 4GB if you build the image yourself.

  5. 5Create your first organization

    Open the returned link in a browser to finish creating your organization and admin account.

    docker compose exec -u zulip zulip /home/zulip/deployments/current/manage.py generate_realm_creation_link

    The link will not work if your domain resolves to localhost/127.0.0.1.