如何在 Ubuntu 16.04 上设置 Zammad 票务系统
在此页
- 我们将做什么
- 先决条件
- 第 1 步 - 配置区域设置
- 第 2 步 - 安装 Zammad 票务系统
- 第 3 步 - 安装和配置 SSL Letsencrypt
- 第 4 步 - 为 Zammad 配置 Nginx
- 第 5 步 - Zammad 配置
- 第 6 步 - 其他提示
- 参考资料
Zammad 是一个用 Ruby 编写的开源帮助台/客户支持系统。它是一个基于 Web 的票务系统,具有许多功能,包括支持通过 Facebook、电报、聊天和电子邮件等多个渠道管理客户通信。 Zammad 在 GNU AFFERO 通用公共许可证 (AGPL) 下分发,可以安装在多个平台上,如 Linux、AIX、FreeBSD、OpenBSD 和 MacOSX。它在 Github 上可用,可以免费安装在您自己的服务器上。
在本教程中,我们将向您展示如何使用 Nginx Web 服务器和数据库系统的 PostgreSQL 安装和配置 Zammad 票务系统。操作系统将是 Ubuntu 16.04 Xenial Xerus,我们将使用 SSL Letsencrypt 来保护客户端-服务器连接。
我们将要做什么
- 在 Ubuntu 16.04 上配置语言环境
- 安装 Zammad 票务系统
- 安装和配置 SSL Letsencrypt
- 配置 Nginx HTTPS
- Zammad 配置
- 其他提示
先决条件
- Ubuntu 16.04
- 内存:2GB 或更多
- 根权限
第 1 步 - 配置语言环境
我们需要将语言环境系统设置为 UTF-8 以安装 PostgreSQL 数据库。使用以下 apt 命令在系统中安装语言环境。
apt install locales
生成新的 UTF-8 语言环境并将其作为系统的默认语言环境。
locale-gen en_US.UTF-8
echo 'LANG=en_US.UTF-8' > /etc/default/locale

接下来,使用以下命令检查区域设置。
locale
并且您应该将当前使用的系统区域设置为 UTF-8。

第 2 步 - 安装 Zammad 票务系统
Zammad 可以通过以下两种方式安装:从源手动安装或从存储库包安装。在本教程中,我们将从存储库安装 Zammad。
向系统添加新的 Zammad 密钥和存储库。
wget -qO - https://deb.packager.io/key | sudo apt-key add -
echo "deb https://deb.packager.io/gh/zammad/zammad xenial stable" | sudo tee /etc/apt/sources.list.d/zammad.list
更新存储库并使用 apt 命令安装 Zammad,如下所示。
sudo apt update
sudo apt install zammad

笔记:
Zammad 将自动安装其他所需的包,包括 Nginx Web 服务器和 PostgreSQL 数据库。
完成安装后,您将看到类似于以下屏幕截图所示的结果。

Zammad 连同其他所需的软件包已安装在系统上。
第 3 步 - 安装和配置 SSL Letsencrypt
在本教程中,我们将配置 Zammad 以使用 HTTPS 在客户端和服务器之间建立安全连接。我们将使用来自 Letsencrypt 的免费 SSL,它可以使用 letsencrypt 工具进行配置。
使用 apt 命令从官方存储库安装 letsencrypt 工具。
apt install letsencrypt
Letsencrypt 工具已安装。现在进入 Nginx 配置目录 /etc/nginx/ 并编辑默认虚拟主机文件。
cd /etc/nginx/sites-available/
vim default
将下面的配置粘贴到服务器 {..} 部分。
location ~ /.well-known {
allow all;
}
就是这样。保存更改,然后重新启动 nginx。
systemctl restart nginx
接下来,使用下面的 letsencrypt 命令为您自己的域名生成一个新的 SSL 证书。
letsencrypt certonly --standalone -d zammad.hakase-labs.co
系统会询问您有关电子邮件更新通知的信息,请输入您的电子邮件。

并且还会询问 Letsencrypt 服务条款 (TOS),选择同意并按 Enter。

生成 SSL 证书后,您将看到类似于下图所示的结果。

所有证书文件都在 /etc/letsencrypt/live/ 目录中可用,并且已经为 Zammad 生成了新的 SSL 证书文件。
第 4 步 - 为 Zammad 配置 Nginx
Nginx Web 服务器在 Zammad 安装过程中自动安装。 Zammad 有一个虚拟主机配置,位于 /etc/nginx/sites-available 目录中。
在这一步中,我们需要编辑zammad虚拟主机文件zammad.conf来实现SSL配置。
转到 sites-available 目录并使用 vim 编辑 zammad.conf 文件。
cd /etc/nginx/sites-available/
vim zammad.conf
删除所有行并粘贴下面的配置。
#
# this is the nginx config for zammad
#
upstream zammad {
server localhost:3000;
}
upstream zammad-websocket {
server localhost:6042;
}
# Added - Automatically redirect HTTP to HTTPS Nginx
server {
listen 80;
server_name zammad.irsyadf.me;
return 301 https://$host$request_uri;
}
# Added - HTTPS configuration for Zammad
server {
listen 443 http2 ssl;
ssl_certificate /etc/letsencrypt/live/zammad.irsyadf.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zammad.irsyadf.me/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
# replace 'localhost' with your fqdn/domain name if you want to use zammad from remote
server_name zammad.irsyadf.me;
root /opt/zammad/public;
access_log /var/log/nginx/zammad.access.log;
error_log /var/log/nginx/zammad.error.log;
client_max_body_size 50M;
location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
expires max;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 86400;
proxy_pass http://zammad-websocket;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header CLIENT_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 180;
proxy_pass http://zammad;
gzip on;
gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
gzip_proxied any;
}
}
保存更改并退出编辑器。
因此,Zammad 虚拟主机启用了 SSL。现在,测试配置并确保没有错误。然后重启 nginx 网络服务器。
nginx -t
systemctl restart nginx
Zammad 虚拟主机现在正在使用 SSL 配置。
第 5 步 - Zammad 配置
安装了 Zammad 和其他包括 Nginx 和 PostgreSQL 的软件包,虚拟主机配置也已完成。现在我们需要通过 Web 浏览器执行 Zammad 安装和配置。
打开您的 Web 浏览器并输入 zammad URL zammad.hakase-labs.co。您将被自动重定向到 HTTPS 连接。
单击设置新系统。

下一页用于管理员配置。在这里,输入管理员用户、电子邮件和密码等详细信息。然后点击创建

对于组织名称,输入您的组织名称 Hakase-labs Inc,然后单击下一步。

对于电子邮件配置,单击继续。我们可以从设置页面进行电子邮件通知配置。

接下来,在频道配置窗口中,单击跳过。

现在您会看到带有漂亮 UI 的 Zammad 管理仪表板。

Zammad 已安装并启用 HTTPS。它在 Linux Ubuntu 16.04 上安装了 Nginx 作为 Web 服务器和 PostgreSQL 作为数据库。
第 6 步 - 其他提示
Zammad 具有三个组件,包括 Web 应用程序服务器、工作进程和 WebSocket 服务器。我们可以使用下面的 systemcl 命令管理所有服务。
systemctl start zammad
systemctl status zammad
systemctl restart zammad
如果要配置个别服务,可以使用如下所示的特定命令。
systemctl status zammad-web
systemctl status zammad-worker
systemctl status zammad-websocket
Zammad 在 Ubuntu 16.04 Xenial Xerus 上的安装已经完成。
参考
- https://docs.zammad.org/