mirror of https://github.com/zulip/zulip.git
95 lines
3.2 KiB
Markdown
95 lines
3.2 KiB
Markdown
|
# Production Installation on Existing Ubuntu Server
|
||
|
|
||
|
Here are some tips for installing the latest release Zulip on a
|
||
|
production server running Ubuntu. The Zulip installation scripts
|
||
|
assume that it has carte blanche to overwrite your configuration files
|
||
|
in /etc, so we recommend against installing it on a server running
|
||
|
other nginx or django apps.
|
||
|
|
||
|
But if you do, here are some things you can do that may make it
|
||
|
possible to retain your existing site. However, this is *NOT*
|
||
|
recommended, and you may break your server. Make sure you have backups
|
||
|
and a provisioning script ready to go to wipe and restore your
|
||
|
existing services if (when) your server goes down.
|
||
|
|
||
|
These instructions are only for experts. If you're not an experiecned
|
||
|
Linux sysadmin, you will have a much better experience if you get a
|
||
|
dedicated VM to install Zulip on instead (or [use zulipchat.com](https://zulipchat.com).
|
||
|
|
||
|
## Nginx
|
||
|
|
||
|
Copy your existing nginx configuration to a backup and then merge the
|
||
|
one created by Zulip into it:
|
||
|
|
||
|
```shell
|
||
|
$ sudo cp /etc/nginx/nginx.conf /etc/nginx.conf.before-zulip-install
|
||
|
$ wget https://raw.githubusercontent.com/zulip/zulip/master/puppet/zulip/files/nginx/nginx.conf -O /tmp/nginx.conf.zulip
|
||
|
$ sudo meld /etc/nginx/nginx.conf /tmp/nginx.conf.zulip # be sure to merge to the right
|
||
|
```
|
||
|
|
||
|
After the zulip installation completes, then you can overwrite (or
|
||
|
merge) your new nginx.conf with the installed one:
|
||
|
|
||
|
```shell
|
||
|
$ sudo meld /tmp/nginx.conf.zulip /etc/nginx/nginx.conf # be sure to merge to the right
|
||
|
$ sudo service nginx restart
|
||
|
```
|
||
|
|
||
|
Zulip's puppet configuration will change the ownership of
|
||
|
`/var/log/nginx` so that the `zulip` user can access it. Depending on
|
||
|
your configuration, this may or may not cause problems.
|
||
|
|
||
|
## Upstart
|
||
|
|
||
|
The latest releases of Ubuntu (later than 16.04 Xenial) have
|
||
|
deprecated `upstart` in favor of `systemd`. Unfortunately,
|
||
|
Ubuntu 16.04 often still has `upstart` installed, which can cause
|
||
|
various services like `nginx` to not start properly (because they
|
||
|
auto-detect that `upstart` is present, and try to use that, rather
|
||
|
than `systemd`). you can remove it as follows:
|
||
|
|
||
|
```shell
|
||
|
$ sudo apt remove upstart
|
||
|
```
|
||
|
|
||
|
## Puppet
|
||
|
|
||
|
If you have a puppet server running on your server, you will get an
|
||
|
error message about not being able to connect to the client during the
|
||
|
install process:
|
||
|
|
||
|
```shell
|
||
|
puppet-agent[29873]: Could not request certificate: Failed to open TCP connection to puppet:8140
|
||
|
```
|
||
|
|
||
|
So you'll need to shutdown any puppet servers.
|
||
|
|
||
|
```shell
|
||
|
$ sudo service puppet-agent stop
|
||
|
$ sudo service puppet stop
|
||
|
```
|
||
|
|
||
|
## Postgres
|
||
|
|
||
|
If you have an existing postgres database, note that Zulip will use
|
||
|
the default `main` as its database name; make sure you're not using
|
||
|
that.
|
||
|
|
||
|
## Memcached, redis, and rabbitmq
|
||
|
|
||
|
Zulip will, by default, configure these services for its use. The
|
||
|
configuration we use is pretty basic, but if you're using them for
|
||
|
something else, you'll want to make sure the configurations are
|
||
|
compatible.
|
||
|
|
||
|
## No uninstall process
|
||
|
|
||
|
We don't provide a convenient way to uninstall a Zulip server.
|
||
|
|
||
|
## No support, but contributions welcome!
|
||
|
|
||
|
Most of the limitations are things we'd accept a pull request to fix;
|
||
|
we welcome contributions to shrink this list of gotchas. Chat with us
|
||
|
in the [chat.zulip.org community](/chat-zulip-org.html) if you're
|
||
|
interested in helping!
|