This is a guide to running the Zulip desktop app from a source tree, in order to contribute to developing it.
To build and run the app from source, you'll need the following:
- Git
- Node.js >= v6.9.0
- Python (v2.7.x recommended)
- A C++ compiler compatible with C++11
- Linux users also need Snapcraft
- Development headers for the libXext, libXtst, and libxkbfile libraries
On a system running Debian, Ubuntu, or another Debian-based Linux distribution, you can install all dependencies through the package manager (see here for more on the first command):
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt install git nodejs python build-essential snapcraft libxext-dev libxtst-dev libxkbfile-dev libgconf-2-4
Other developers run the app on Windows, macOS, and possibly other OSes. PRs to add specific instructions to this doc are welcome!
On Windows, your C++ compiler should be Visual Studio 2015 or later.
Clone the source locally:
$ git clone https://github.com/zulip/zulip-electron
$ cd zulip-electron
Install project dependencies:
$ npm install
Start the app:
$ npm start
Start and watch changes:
$ npm run dev
If you have any problems running the app, see the most common issues.
To package the app into an installer:
npm run dist
This command will produce distributable packages or installers for the operating system you're running on:
- on Windows, a Windows installer file
- on macOS, a
.dmg
file - on Linux, a plain
.zip
file as well as a.deb
file,.snap
file and anAppImage
file. To generate all three types, you will need all three operating systems.
The output files appear in the dist/
directory.