2016-08-09 22:21:19 +02:00
|
|
|
# Requirements
|
2016-07-12 21:35:25 +02:00
|
|
|
|
2017-11-13 23:27:36 +01:00
|
|
|
Note that if you just want to play around with Zulip and see what it looks
|
|
|
|
like, we recommend creating an account on the
|
2017-11-16 20:39:29 +01:00
|
|
|
[Zulip community server](../contributing/chat-zulip-org.html), or creating a test
|
2017-11-13 23:27:36 +01:00
|
|
|
organization on <https://zulipchat.com>.
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2018-03-03 03:12:40 +01:00
|
|
|
## Summary
|
|
|
|
|
|
|
|
To run a Zulip server, you will need:
|
|
|
|
* A dedicated machine or VM
|
|
|
|
* A supported OS:
|
|
|
|
* Ubuntu 16.04 Xenial 64-bit
|
|
|
|
* Ubuntu 14.04 Trusty 64-bit (not recommended for new installations)
|
|
|
|
* At least 2GB RAM, and 10GB disk space
|
|
|
|
* If you expect 100+ users: 4GB RAM, and 2 CPUs
|
|
|
|
* A hostname in DNS
|
|
|
|
* An SSL certificate; for most users, you can just use our handy
|
|
|
|
`--certbot` option to obtain one
|
|
|
|
* 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
|
|
|
|
|
2017-10-20 23:33:50 +02:00
|
|
|
Ubuntu 16.04 Xenial and Ubuntu 14.04 Trusty are supported for running
|
|
|
|
Zulip in production. 64-bit is recommended. We recommend Xenial if
|
|
|
|
you have a choice, since 14.04 is approaching end-of-life and you'll
|
|
|
|
save yourself the work of upgrading in a few months.
|
2017-07-26 00:32:51 +02:00
|
|
|
|
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
|
|
|
|
|
2017-12-13 05:08:35 +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. If you'd rather acquire an SSL certificate
|
|
|
|
another way, see our
|
2017-10-28 02:46:31 +02:00
|
|
|
[SSL certificate documentation](ssl-certificates.html).
|
2016-07-28 01:38:02 +02:00
|
|
|
|
2017-12-13 05:08:35 +01:00
|
|
|
[doc-certbot]: ../production/ssl-certificates.html#certbot-recommended
|
|
|
|
|
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).
|