憨豆说安全 · 2020年08月12日

云芯一号教程 - Zulip安装及配置教程

  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-node

failed: 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'
推荐阅读
关注数
4278
内容数
71
低成本Arm微服务器开发平台“云芯1号”教程及应用,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息