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'