Zulip是一款功能强大的开源群组聊天软件,采用Python编写,使用 Django 框架,支持Linux、Windows、Mac等平台,支持私人消息和群聊。Zulip还支持快速搜索、拖放文件上传、图像预览、电子邮件消息提醒等功能。  
  Zulip配置服务器时,有两种方式:一种适用于部署在线上product环境下,一种适用于测试服务器。由于线上product环境需要域名证书,本教程中,按照测试服务器搭建。     
1.系统配置    
1.1 配置hosts文件   
  Zulip需要将服务器的IP地址映射到域名,因此在服务器上修改hosts文件,自定义域名为zulip.ts。
  jishu@Jishu:~$ sudo vim /etc/hosts
  ...... 
  127.0.0.1  localhost
  127.0.0.1  Jishu
  #服务器ip地址映射为自定义域名
  192.168.1.4  zulip.ts
1.2 安装OpenSSL   
  Zulip的安装命令格式如下:
  ./zulip-server-*/scripts/setup/install --certbot \
--email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
  安装命令中可以带两种参数:  
  --cerbot:用于线上product环境搭建,需要有域名SSL证书;  
  --self-signed-cert:用于测试服务器搭建,Zulip安装程序会生成只签名SSL证书,需要确保安装OpenSSL。
  jishu@Jishu:~$ sudo apt-get install openssl
1.3 安装PostgreSQL 10    
  从Zulip的配置脚本中,可以看到Zulip不支持PostgreSQL 11以上版本,所以安装PostgreSQL 10。
  jishu@Jishu:~/zulip-server-2.1.7/puppet/zulip/templates/postgresql$ ls
  10  11  9.3  9.5  9.6
  #如果服务器已经安装其它版本的PostgreSQL,请先删除
  jishu@Jishu:~$ sudo apt-get purge postgre*
  jishu@Jishu:~$ sudo apt-get install postgresql-10   
PostgreSQL的基本使用请参考"PostgreSQL指导安装及基础使用教程" 。
2.安装Zulip   
2.1 下载Zulip安装包
  jishu@Jishu:~$ wget https://www.zulip.org/dist/releases/zulip-server-latest.tar.gz
  jishu@Jishu:~$ tar -xvf zulip-server-latest.tar.gz
如果wget下载比较慢,也可以在Windows上用迅雷下载后scp拷贝到开发板中。
2.1 安装Zulip  
  Zulip安装命令需要切换到root用户下执行。
  sudo -s 
  ./zulip-server-*/scripts/setup/install --self-signed-cert --email="注册的Email地址" --hostname=zulip.ts  
安装过程需要下载很多依赖包,安装时间取决与Internet连接的速度。如果系统配置了pip的国内安装源,需要取消掉,否则会安装出错。
安装中会出现如下错误:
  ......
  + ln -nsf /srv/zulip-venv-cache/826354bbbf28aa841c7cfbea5f493add062f946f/zulip-thumbor-venv /home/  jishu/tools/zulip-server-2.1.7/zulip-thumbor-venv
  + /home/jishu/zulip-server-2.1.7/scripts/lib/install-nodefailed: Connection refused.
  ......
查看出现错误处的代码,错误出在wget的连接失败。
  ......
  if [ -n "${CUSTOM_CA_CERTIFICATES:-}" ]; then
        wget_opts+=(--ca-certificate "${CUSTOM_CA_CERTIFICATES}")
  fi
  wget "${wget_opts[@]}" -O- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
  ......
解决方法是到https://site.ip138.com网址上...,把ip配置到hosts文件中。
  jishu@Jishu:~$ sudo vim /etc/hosts
  ......
  127.0.0.1  localhost
  127.0.0.1  Jishu
  192.168.1.4  zulip.ts
  151.101.76.133 raw.githubusercontent.com
  重新执行安装命令后,等待Zulip安装完成。   
  Zulip安装完成后,会出现如下提示:
  ......
  + su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'
  Please visit the following secure single-use link to register your 
  new Zulip organization:
      https://zulip.ts/new/6e593k2i8rguu0bx8x09md31
  在本机浏览器中访问该URL,进行账号的相关配置后,即可使用Zulip系统。      
  在其它服务器上访问该URL时,需要把zulip.ts的映射关系写到该服务器的hosts文件中。   
2.2 为Zulip配置电子邮件    
  Zulip配置电子邮件后,即可发送邮件通知。
  jishu@Jishu:~$ sudo vim /etc/zulip/settings.py
  ......
  #EMAIL_HOST = 'smtp url'
  #EMAIL_HOST_USER = 'your email'
  #EMAIL_USE_TLS = True
  #EMAIL_PORT = 587
在配置文件中找到并修改Email相关字段。
2.3 配置远程PostgreSQL服务器   
  远程PostgreSQL服务器一般用于线上product环境,在配置文件中修改相关字段即可。
  jishu@Jishu:~$ sudo vim /etc/zulip/settings.py
  ......
  #REMOTE_POSTGRES_HOST = 'dbserver.example.com' 
  #REMOTE_POSTGRES_PORT = '5432'
  #REMOTE_POSTGRES_SSLMODE = 'require'
2.4 Zulip服务重启命令    
  Zulip参数修改后,需要重启Zulip服务生效。Zulip重启命令如下:
  su zulip -c'/home/zulip/deployments/current/scripts/restart-server'
 
                