2016-08-09 22:21:19 +02:00
|
|
|
# Requirements
|
2016-07-12 21:35:25 +02:00
|
|
|
|
2018-03-03 03:12:40 +01:00
|
|
|
To run a Zulip server, you will need:
|
|
|
|
* A dedicated machine or VM
|
|
|
|
* A supported OS:
|
2018-06-05 17:03:15 +02:00
|
|
|
* Ubuntu 18.04 Bionic
|
|
|
|
* Ubuntu 16.04 Xenial
|
|
|
|
* Ubuntu 14.04 Trusty (not recommended for new installations)
|
|
|
|
* Debian 9 Stretch
|
2018-03-03 03:12:40 +01:00
|
|
|
* At least 2GB RAM, and 10GB disk space
|
|
|
|
* If you expect 100+ users: 4GB RAM, and 2 CPUs
|
|
|
|
* A hostname in DNS
|
|
|
|
* Credentials for sending email
|
|
|
|
|
|
|
|
For details on each of these requirements, see below.
|
|
|
|
|
2016-08-25 00:19:10 +02:00
|
|
|
## Server
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2017-07-26 00:32:51 +02:00
|
|
|
#### General
|
|
|
|
|
2017-05-24 22:36:15 +02:00
|
|
|
The installer expects Zulip to be the **only thing** running on the
|
2017-07-26 00:32:51 +02:00
|
|
|
system; it will install system packages with `apt` (like nginx,
|
|
|
|
postgresql, and redis) and configure them for its own use. We
|
2017-05-24 22:36:15 +02:00
|
|
|
strongly recommend using either a fresh machine instance in a cloud
|
|
|
|
provider, a fresh VM, or a dedicated machine. If you decide to
|
|
|
|
disregard our advice and use a server that hosts other services, we
|
|
|
|
can't support you, but
|
2017-11-08 17:55:36 +01:00
|
|
|
[we do have some notes on issues you'll encounter](install-existing-server.html).
|
2017-07-26 00:32:51 +02:00
|
|
|
|
|
|
|
#### Operating System
|
|
|
|
|
2018-06-05 17:03:15 +02:00
|
|
|
Ubuntu 18.04 Bionic, Ubuntu 16.04 Xenial, Ubuntu 14.04 Trusty and
|
|
|
|
Debian Stretch are supported for running Zulip in production. 64-bit
|
|
|
|
is recommended. We also recommend installing on the newest option
|
|
|
|
you're comfortable with, to save your organization the work of
|
|
|
|
upgrading.
|
2017-07-26 00:32:51 +02:00
|
|
|
|
2018-10-31 19:53:09 +01:00
|
|
|
If you're using Ubuntu, the
|
|
|
|
[Ubuntu universe repository][ubuntu-repositories] must be
|
2019-01-26 21:27:10 +01:00
|
|
|
[enabled][enable-universe], which is usually just:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo add-apt-repository universe
|
|
|
|
sudo apt update
|
|
|
|
```
|
2018-10-31 19:53:09 +01:00
|
|
|
|
|
|
|
[ubuntu-repositories]:
|
|
|
|
https://help.ubuntu.com/community/Repositories/Ubuntu
|
|
|
|
[enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories
|
|
|
|
|
2016-08-25 00:19:10 +02:00
|
|
|
#### Hardware Specifications
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2016-11-27 04:04:35 +01:00
|
|
|
* CPU and Memory: For installations with 100+ users you'll need a
|
|
|
|
minimum of **2 CPUs** and **4GB RAM**. For installations with fewer
|
2017-04-12 05:48:02 +02:00
|
|
|
users, 1 CPU and 2GB RAM is sufficient. We strongly recommend against
|
2016-11-27 04:04:35 +01:00
|
|
|
installing with less than 2GB of RAM, as you will likely experience
|
|
|
|
out of memory issues installing dependencies. We recommend against
|
|
|
|
using highly CPU-limited servers like the AWS `t2` style instances
|
|
|
|
for organizations with a hundreds of users (active or no).
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2017-06-04 08:38:44 +02:00
|
|
|
See our
|
2017-11-08 17:55:36 +01:00
|
|
|
[documentation on scalability](../production/maintain-secure-upgrade.html#scalability)
|
2017-06-04 08:38:44 +02:00
|
|
|
for advice on hardware requirements for larger organizations.
|
|
|
|
|
2017-07-07 21:40:00 +02:00
|
|
|
* Disk space: You'll need at least 10GB of free disk space for a
|
|
|
|
server with dozens of users. If you intend to store uploaded files
|
|
|
|
locally rather than on S3 you will likely need more, depending how
|
|
|
|
often your users upload large files. You'll eventually need 100GB
|
|
|
|
or more if you have thousands of active users or millions of total
|
|
|
|
messages sent.
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2016-08-25 00:19:10 +02:00
|
|
|
#### Network and Security Specifications
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2017-01-10 20:40:47 +01:00
|
|
|
* Incoming HTTPS access (usually port 443, though this is
|
|
|
|
configurable) from the networks where your users are (usually, the
|
|
|
|
public Internet). If you also open port 80, Zulip will redirect
|
|
|
|
users to HTTPS rather than not working when users type
|
|
|
|
e.g. `http://zulip.example.com` in their browser. If you are using
|
|
|
|
Zulip's [incoming email integration][email-mirror-code] you may also
|
|
|
|
need incoming port 25 open.
|
|
|
|
|
|
|
|
[email-mirror-code]: https://github.com/zulip/zulip/blob/master/zerver/management/commands/email_mirror.py
|
|
|
|
|
|
|
|
* Outgoing HTTP(S) access (ports 80 and 443) to the public Internet so
|
2017-02-22 06:12:12 +01:00
|
|
|
that Zulip can properly manage inline image previews. You'll also
|
|
|
|
need outgoing SMTP access to your SMTP server (the standard port for
|
|
|
|
this is 587) so that Zulip can send email.
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2016-08-25 00:19:10 +02:00
|
|
|
#### Domain name
|
|
|
|
|
2017-12-13 05:08:35 +01:00
|
|
|
You should already have a domain name (e.g., `zulip.example.com`)
|
|
|
|
available for your Zulip server. In order to generate valid SSL
|
|
|
|
certificates [with Certbot][doc-certbot], and to enable other services
|
|
|
|
such as Google authentication, you'll need to set the domain's
|
|
|
|
A record to point to your production server.
|
2016-08-25 00:19:10 +02:00
|
|
|
|
|
|
|
## Credentials needed
|
|
|
|
|
|
|
|
#### SSL Certificate
|
|
|
|
|
2018-03-03 03:24:05 +01:00
|
|
|
Your Zulip server will need an SSL certificate for the domain name it
|
|
|
|
uses. For most Zulip servers, the recommended (and simplest) way to
|
|
|
|
get this is to just [use the `--certbot` option][doc-certbot] in the
|
|
|
|
Zulip installer, which will automatically get a certificate for you
|
|
|
|
and keep it renewed.
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2018-03-03 03:24:05 +01:00
|
|
|
For test installations, an even simpler alternative is always
|
|
|
|
available: [the `--self-signed-cert` option][doc-self-signed] in the
|
|
|
|
installer.
|
|
|
|
|
|
|
|
If you'd rather acquire an SSL certificate another way, see our [SSL
|
|
|
|
certificate documentation](ssl-certificates.html).
|
|
|
|
|
|
|
|
[doc-certbot]: ssl-certificates.html#certbot-recommended
|
|
|
|
[doc-self-signed]: ssl-certificates.html#self-signed-certificate
|
2017-12-13 05:08:35 +01:00
|
|
|
|
2016-08-25 00:19:10 +02:00
|
|
|
#### Outgoing email
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2017-02-22 06:12:12 +01:00
|
|
|
* Outgoing email (SMTP) credentials that Zulip can use to send
|
|
|
|
outgoing emails to users (e.g. email address confirmation emails
|
|
|
|
during the signup process, missed message notifications, password
|
|
|
|
reset, etc.). If you don't have an existing outgoing SMTP solution,
|
|
|
|
read about
|
2017-11-08 17:55:36 +01:00
|
|
|
[free outgoing SMTP options and options for prototyping](email.html#free-outgoing-email-services).
|
2016-07-12 21:35:25 +02:00
|
|
|
|
2016-07-28 01:38:02 +02:00
|
|
|
Once you have met these requirements, see [full instructions for installing
|
2017-11-08 17:55:36 +01:00
|
|
|
Zulip in production](../production/install.html).
|