Cách cài đặt hệ thống hỗ trợ khách hàng Zammad trên Debian 12

theanh

Administrator
Nhân viên
Zammad là giải pháp hỗ trợ khách hàng/vé nguồn mở giúp quản lý thông tin liên lạc trên nhiều kênh khác nhau như email, trò chuyện và phương tiện truyền thông xã hội.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Hệ thống hỗ trợ khách hàng Zammad với PostgreSQL và Nginx trên máy chủ Debian 12. Bạn cũng sẽ tích hợp Zammad với Elasticsearch và Redis, vì vậy hãy chú ý theo dõi.

Điều kiện tiên quyết​

Trước khi tiếp tục, hãy đảm bảo rằng bạn đã chuẩn bị những điều sau:
  • Máy chủ Debian 12 có bộ nhớ 4GB trở lên.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt các phụ thuộc​

Bước đầu tiên, bạn cài đặt các phụ thuộc gói cho Hệ thống hỗ trợ khách hàng Zammad. Bao gồm các gói sau:
  • Elasticsearch
  • Máy chủ cơ sở dữ liệu PostgreSQL
  • Redis
  • Máy chủ web Nginx
  • Node.js
  • UFW
Những gói bạn sẽ cài đặt trên máy chủ Debian của mình.

Đầu tiên, hãy chạy lệnh sau để cài đặt các gói cơ bản nhằm quản lý kho lưu trữ. Nhập y để xác nhận cài đặt.
Mã:
sudo apt install curl apt-transport-https gnupg

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22663%22%20height=%22286%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để thêm kho lưu trữ Elasticsearch 7.x vào máy chủ Debian 12 của bạn.
Mã:
echo "deb [signed-by=/etc/apt/trusted.gpg.d/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main"| \
tee -a /etc/apt/sources.list.d/elastic-7.x.list > /dev/null
Sau đó thêm khóa GPG vào kho lưu trữ Elasticsearch bằng lệnh bên dưới.
Mã:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null
Tiếp theo, hãy cập nhật kho lưu trữ Debian của bạn bằng lệnh sau.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22162%22%3E%3C/svg%3E


Sau khi kho lưu trữ được cập nhật, hãy cài đặt các phần phụ thuộc cho Zammand bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs locales ufw

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22383%22%3E%3C/svg%3E


Sau khi mọi thứ đã được cài đặt, hãy xác minh từng dịch vụ để đảm bảo rằng dịch vụ đang chạy và được bật.

Xác minh máy chủ PostgreSQL bằng cách sử dụng lệnh.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Bên dưới, bạn có thể thấy PostgreSQL đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E


Xác minh máy chủ Redis bằng lệnh sau lệnh.
Mã:
sudo systemctl is-enabled redis
sudo systemctl status redis
Bạn có thể thấy Redis đang chạy bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E


Bây giờ hãy xác minh Nginx bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Máy chủ web Nginx phải chạy và được bật như thế này:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22238%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh bên dưới để bắt đầu và bật Elasticsearch.
Mã:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Sau đó xác minh bằng lệnh bên dưới. Bạn sẽ thấy Elasticsearch đang chạy và được bật.
Mã:
sudo systemctl status elasticsearch

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22320%22%3E%3C/svg%3E

Cấu hình các phụ thuộc​

Sau khi bạn đã cài đặt các phụ thuộc gói cho Zammad, bước tiếp theo là cấu hình từng phụ thuộc cho Zammad. Bạn sẽ cấu hình những mục sau:
  • PostgreSQL: Tăng max_connections mặc định lên 2000.
  • Elasticsearch: Cài đặt plugin ingest-attachment cần thiết cho Zammad.
  • Thiết lập ngôn ngữ mặc định thành en_US.UTF-8
  • UFW: Khởi động và kích hoạt, mở các cổng SSH, HTTP và HTTPS.

Thiết lập PostgreSQL​

Mở cấu hình PostgreSQL mặc định /etc/postgresql/15/main/postgresql.conf bằng lệnh trình soạn thảo nano bên dưới.
Mã:
sudo nano /etc/postgresql/15/main/postgresql.conf
Thay đổi max_connections mặc định trong PostgreSQL thành 2000m, được Zammad yêu cầu.
Mã:
max_connections = 2000
Lưu tệp và thoát khỏi trình soạn thảo.

Bây giờ hãy chạy lệnh systemctl sau để khởi động lại PostgreSQL và áp dụng các thay đổi,
Mã:
sudo systemctl restart postgresql

Thiết lập Elasticsearch​

Sau khi cấu hình PostgreSQL, hãy thiết lập Elasticsearch.

Cài đặt plugin ingest-attachment cho Zammad bằng lệnh elasticsearch-plugin bên dưới.
Mã:
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Nhập y để xác nhận cài đặt. Khi hoàn tất, bạn sẽ nhận được kết quả sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22373%22%3E%3C/svg%3E


Bây giờ hãy khởi động lại elasticsearch bằng lệnh bên dưới.
Mã:
sudo systemctl restart elasticsearch
Cuối cùng, hãy xác minh rằng Elasitcsearch đang chạy bằng curl.
Mã:
curl -X GET 'http://localhost:9200'
Bạn có thể thấy bên dưới rằng Elasitcsearch đang chạy trên máy chủ Debian.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22565%22%20height=%22408%22%3E%3C/svg%3E

Thiết lập ngôn ngữ mặc định​

Để Zammad hoạt động bình thường, bạn cần để thiết lập ngôn ngữ mặc định thành en_US.UTF-8.

Chạy lệnh bên dưới để tạo ngôn ngữ en_US.UTF-8.
Mã:
locale-gen en_US.UTF-8
Sau đó, thiết lập ngôn ngữ mặc định thành en_US.UTF-8 bằng cách thêm cấu hình mới vào /etc/default/locale tập tin.
Mã:
echo "LANG=en_US.UTF-8" > /etc/default/locale

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22612%22%20height=%22164%22%3E%3C/svg%3E

Thiết lập UFW​

Bây giờ hãy chạy lệnh ufw bên dưới để bật cấu hình OpenSSHWWW Đầy đủ.
Mã:
sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"
Sau đó, bật UFW bằng lệnh bên dưới. gõ y để xác nhận và khởi động UFW.
Mã:
sudo ufw enable
Sau khi bật, bạn sẽ nhận được thông báo sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22721%22%20height=%22266%22%3E%3C/svg%3E


Khi UFW đã bật, hãy chạy lệnh bên dưới để xác minh nó.
Mã:
sudo ufw status
Bạn có thể thấy UFW với trạng thái Hoạt động và các cấu hình được bật OpenSSHWWW Đầy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22501%22%20height=%22215%22%3E%3C/svg%3E

Cài đặt Hệ thống hỗ trợ khách hàng Zammad​

Tại thời điểm này, bạn đã hoàn tất việc cài đặt và cấu hình các Dependencies cho Zammad. Bây giờ bạn sẽ bắt đầu cài đặt Zammad, có thể thực hiện bằng nhiều phương pháp. Cách dễ nhất là sử dụng các gói từ kho lưu trữ Zammad chính thức.

Chạy lệnh bên dưới để thêm khóa GPG cho kho lưu trữ Zammad.
Mã:
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/pkgr-zammad.gpg> /dev/null
Bây giờ hãy thêm kho lưu trữ Zammad cho Debian 12 bằng lệnh sau.
Mã:
echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main"| \
tee /etc/apt/sources.list.d/zammad.list > /dev/null
Cập nhật và làm mới kho lưu trữ Debian của bạn bằng lệnh sau lệnh.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22154%22%3E%3C/svg%3E


Sau khi kho lưu trữ được cập nhật, hãy cài đặt Zammad bằng lệnh bên dưới.
Mã:
sudo apt install zammad
Bên dưới cài đặt Zammad:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22256%22%3E%3C/svg%3E


Trong quá trình cài đặt, cơ sở dữ liệu PostgreSQL và người dùng sẽ được tạo, cùng với quá trình di chuyển cơ sở dữ liệu.




data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22355%22%3E%3C/svg%3E


Ngoài ra, cấu hình khối máy chủ Nginx sẽ được tạo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy chạy lệnh zammad bên dưới để thiết lập tích hợp với Elasticsearch và xây dựng lại chỉ mục tìm kiếm trong Elasticsearch.
Mã:
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E


Sau đó, hãy chạy lệnh bên dưới để khởi động lại dịch vụ zammad. Zammad đi kèm với nhiều dịch vụ, bao gồm zammad, zammad-web, zammad-worker và zammad-websocket.
Mã:
sudo systemctl restart zammad
sudo systemctl restart zammad-web
sudo systemctl restart zammad-worker
sudo systemctl restart zammad-websocket
Cuối cùng, hãy chạy lệnh bên dưới để xác minh trạng thái dịch vụ zammad.
Mã:
sudo systemctl is-enabled zammad
sudo systemctl status zammad
Bên dưới, bạn có thể thấy dịch vụ zammad đang chạy và được bật trên máy chủ Debian.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22266%22%3E%3C/svg%3E

Thiết lập máy chủ web Nginx​

Theo mặc định, zammad tạo cấu hình khối máy chủ Nginx nằm tại /etc/nginx/sites-available/zammad.conf. Để thiết lập Zammad trong môi trường sản xuất, bạn phải đảm bảo thay đổi cấu hình miền. Ngoài ra, bạn phải bảo mật bằng HTTPS khi sản xuất.

Bây giờ hãy mở tệp /etc/nginx/sites-available/zammad.conf bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/nginx/sites-available/zammad.conf
Thay đổi tên miền mặc định trong tùy chọn server_name như sau:
Mã:
server_name help.howtoforge.local;
Lưu và thoát file.

Tiếp theo, chạy lệnh bên dưới để xác minh cú pháp Nginx và khởi động lại dịch vụ Nginx để có hiệu lực.
Mã:
sudo nginx -t
sudo systemctl restart nginx
Bên dưới, bạn có thể thấy thử nghiệm cú pháp Nginx đã thành công.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22642%22%20height=%22181%22%3E%3C/svg%3E

Bảo mật Zammad​

Nếu bạn triển khai trên môi trường sản xuất, hãy đảm bảo bật HTTPS qua Letsencrypt.

Cài đặt certbot và plugin certbot nginx bằng lệnh sau. Nhập y để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-certbot-nginx
Sau khi cài đặt hoàn tất, hãy tạo chứng chỉ SSL/TLS cho tên miền Zammad của bạn bằng lệnh certbot bên dưới. Hãy đảm bảo thay đổi thông tin của tên miền và địa chỉ email trong lệnh này.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d help.howtoforge.local
Quá trình tạo sẽ chạy. Khi hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục /etc/letsencrypt/live/domain.com.

Cài đặt Zammad​

Mở trình duyệt web của bạn và truy cập URL cài đặt zammad (http://help.howtoforge.local). Nhấp vào Thiết lập hệ thống mới để bắt đầu cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E


Bây giờ hãy nhập thông tin chi tiết về người dùng quản trị, email và mật khẩu của bạn. Sau đó nhấp vào Tạo để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22593%22%3E%3C/svg%3E


Nhập tên tổ chức của bạn và nhấp vào Tiếp theo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22708%22%3E%3C/svg%3E


Để nhận thông báo qua email, hãy nhấp vào Bỏ qua ngay bây giờ. Bạn có thể cấu hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22616%22%3E%3C/svg%3E


Nhấp vào Bỏ qua để kết nối cấu hình kênh. Bạn cũng có thể thực hiện thao tác này sau khi cấu hình hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22656%22%3E%3C/svg%3E


Sau khi quá trình hoàn tất, bạn có thể thấy bảng điều khiển quản trị Zammad như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22502%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Hệ thống hỗ trợ khách hàng Zammad trên máy chủ Debian 12. Bạn đã cài đặt zammad với cơ sở dữ liệu PostgreSQL, máy chủ web Nginx, Elasticsearch cho công cụ tìm kiếm chính và Redis để quản lý bộ nhớ đệm và phiên. Hơn nữa, bạn cũng đã học cách bật HTTPS cho Zammad thông qua Certbot và Letsencrypt.
 
Back
Bên trên