Cách cài đặt Zulip Chat Server trên Debian 11

theanh

Administrator
Nhân viên
Zulip là một máy chủ trò chuyện mã nguồn mở, tương tự như Microsoft Teams, Rocket Chat hoặc Slack. Nó được viết bằng Python và sử dụng Django, PostgreSQL và JavaScript. Nó tích hợp với hơn 90 plugin của bên thứ ba, bao gồm Github, Jira, Stripe, Zendesk, Sentry, v.v. Bạn có thể mở rộng các tích hợp bằng cách kết nối chúng với Zapier và IFTTT. Nó đi kèm với các tính năng như nhắn tin riêng tư, trò chuyện nhóm, hội thoại theo chủ đề, kênh tùy chỉnh, cuộc gọi video, tải tệp kéo và thả, biểu tượng cảm xúc tùy chỉnh, tích hợp Giphy, xem trước hình ảnh và Tweet và nhiều tính năng khác. Zulip đi kèm với các ứng dụng dành cho máy tính để bàn và thiết bị di động cho mọi nền tảng, khiến nó không phụ thuộc vào nền tảng nào.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt và cấu hình Zulip Chat trên máy chủ chạy Debian 11.

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


  • Máy chủ chạy Debian 11.

  • Ít nhất 2GB RAM nếu bạn dự kiến có ít hơn 100 người dùng. Đối với 100+ người dùng, hãy mua máy chủ có RAM 4GB và 2 CPU.

  • Người dùng không phải root có quyền sudo.

  • Tên miền được định cấu hình để trỏ đến máy chủ, zulip.example.com.

  • Mọi thứ đều được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
[*]
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Tường lửa đơn giản).

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Trạng thái: không hoạt động
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cũng cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo ufw allow 80/tcp$ sudo ufw allow 443/tcp
Bật Tường lửa
Mã:
$ sudo ufw enableLệnh có thể làm gián đoạn các kết nối ssh hiện có. Tiến hành thao tác (y|n)? yTường lửa đang hoạt động và được bật khi khởi động hệ thống
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy đầu ra tương tự.
Mã:
Trạng thái: đang hoạt độngĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80/tcp (v6) ALLOW Anywhere (v6)443/tcp (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Zulip​

Zulip đi kèm với một tập lệnh cài đặt thực hiện các thao tác sau:
  1. Tạo người dùng zulip để chạy máy chủ Zulip.
  2. Tạo thư mục gốc bằng cách sử dụng zulip người dùng lưu trữ tất cả mã công khai trong thư mục /home/zulip/deployments.
  3. Cài đặt tất cả các phụ thuộc mà Zulip cần.
  4. Cài đặt cơ sở dữ liệu PostgreSQL, máy chủ web Nginx, RabbitMQ, Redis Cache và Memcached.
  5. Khởi tạo cơ sở dữ liệu Zulip.
Tạo một thư mục tạm thời bằng lệnh mktemp để tải xuống trình cài đặt Zulip và chuyển sang thư mục đó.
Mã:
$ cd $(mktemp -d)
Tải xuống phiên bản Zulip mới nhất.
Mã:
$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Giải nén tất cả các tệp.
Mã:
$ tar -xf zulip-server-latest.tar.gz
Chạy tập lệnh cài đặt.
Mã:
$ sudo ./zulip-server-*/scripts/setup/install --certbot \ --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
Cờ --certbot khiến trình cài đặt tải xuống Certbot và tự động cài đặt chứng chỉ SSL. Thay thế YOUR_EMAIL bằng id email của bạn và YOUR_HOSTNAME bằng tên miền của Zulip (zulip.example.com).

Bước 3 - Truy cập Giao diện Zulip​

Sau khi tập lệnh cài đặt hoàn tất, bạn sẽ được cung cấp một URL duy nhất. Sao chép URL này.
Mã:
.......zulip-workers:zulip_deliver_scheduled_messages: started+ set +x+ su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'Vui lòng truy cập liên kết sử dụng một lần an toàn sau để đăng kýtổ chức Zulip mới của bạn: https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
Truy cập https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46 trong trình duyệt của bạn và màn hình sau sẽ xuất hiện.



Nhập ID email của bạn để bắt đầu tạo tổ chức của bạn. Bạn sẽ được yêu cầu thiết lập một tài khoản trên màn hình tiếp theo.



Nhập tên tổ chức của bạn và tên của bạn và chọn mật khẩu để đăng nhập và nhấp vào nút Đăng ký để tiếp tục.

Sau khi hoàn tất, bảng điều khiển Zulip sẽ mở ra và bạn có thể bắt đầu sử dụng.


Bước 4 - Cấu hình Email gửi đi​

Máy chủ Zulip cần gửi email thường xuyên. Để thực hiện việc này, bạn nên thiết lập email gửi đi cho máy chủ. Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng dịch vụ SES của Amazon. Tất cả các email được gửi từ ID email mà bạn đã sử dụng để tạo tổ chức ở bước 3.

Zulip lưu trữ tất cả các thiết lập của mình trong tệp /etc/zulip/settings.py. Mở tệp để chỉnh sửa.
Mã:
$ sudo nano /etc/zulip/settings.py
Bỏ chú thích các biến sau bằng cách xóa # trước chúng và nhập các giá trị tương ứng.
Mã:
## EMAIL_HOST và EMAIL_HOST_USER thường là bắt buộc.EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'EMAIL_HOST_USER = 'yoursmpt_username'## Mật khẩu và bí mật không được lưu trữ trong tệp này. Mật khẩu## cho người dùng EMAIL_HOST_USER nằm trong `/etc/zulip/zulip-secrets.conf`.## Trong tệp đó, hãy đặt `email_password`. Ví dụ:# email_password = abcd1234## EMAIL_USE_TLS và EMAIL_PORT là bắt buộc đối với hầu hết các nhà cung cấp SMTP.EMAIL_USE_TLS = TrueEMAIL_PORT = 587
Điền các biến bổ sung sau. Đầu tiên, xóa bất kỳ mã thông báo ngẫu nhiên nào khỏi địa chỉ email không trả lời và thứ hai, cấu hình người gửi email không trả lời cho email của bạn.
Mã:
ADD_TOKENS_TO_NOREPLY_ADDRESS = False# TOKENIZED_NOREPLY_EMAIL_ADDRESS = "noreply-{token}@example.com"## NOREPLY_EMAIL_ADDRESS là người gửi cho các email không trả lời không## chứa liên kết xác nhận (khi sự cố bảo mật được khắc phục bởi## ADD_TOKENS_TO_NOREPLY_ADDRESS không tồn tại), cũng như cho## email xác nhận khi ADD_TOKENS_TO_NOREPLY_ADDRESS=False.NOREPLY_EMAIL_ADDRESS = '[emailprotected]'
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Zulip lưu mật khẩu Email vào một tệp khác. Mở tệp /etc/zulip/zulip-secrets.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/zulip/zulip-secrets.conf
Dán dòng sau vào cuối tệp.
Mã:
email_password = yoursmtp_password
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Để kiểm tra cấu hình email gửi đi của bạn, bạn có thể gửi thư thử nghiệm bằng lệnh sau.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email [emailprotected]Nếu bạn gặp bất kỳ sự cố nào, hãy đọc: https://zulip.readthedocs.io/en/latest/production/email.html#troubleshootingLỗi phổ biến nhất là không thiết lập `ADD_TOKENS_TO_NOREPLY_ADDRESS=False` khisử dụng nhà cung cấp email không hỗ trợ tính năng đó.Gửi 2 email thử nghiệm từ: * [emailprotected] * [emailprotected]Đã gửi thành công 2 email đến [emailprotected]
Khởi động lại máy chủ.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Lưu ý rằng bạn chỉ có thể khởi động hoặc dừng máy chủ Zulip với tư cách là người dùng zulip.

Bước 5 - Lệnh máy chủ Zulip​

Để dừng máy chủ Zulip, hãy sử dụng lệnh sau.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Để khởi động lại máy chủ, hãy sử dụng lệnh sau.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/start-server
Khởi động lại máy chủ theo cách tương tự.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Có rất nhiều tác vụ quản lý mà bạn có thể thực hiện bằng cách sử dụng tập lệnh manage.py đi kèm với Zulip.

Bạn có thể chạy tập lệnh bằng lệnh sau. Chúng tôi sẽ sử dụng lệnh phụ help để liệt kê tất cả các thao tác có thể thực hiện.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/manage.py helpNhập 'manage.py help ' để được trợ giúp về một lệnh phụ cụ thể.Các lệnh con có sẵn:[analytics] check_analytics_state clear_analytics_tables clear_single_stat populate_analytics_db stream_stats update_analytics_counts[auth] changepassword createsuperuser[contenttypes] remove_stale_contenttypes[django] check createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemigrations migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver[otp_static] addstatictoken[sessions] clearsessions[social_django] clearsocial[staticfiles] collectstatic findstatic runserver[two_factor] two_factor_disable two_factor_status[zerver] add_users_to_streams archive_messages audit_fts_indexes backup bulk_change_user_name change_password change_realm_subdomain change_user_email change_user_role check_redis checkconfig compilemessages convert_gitter_data convert_mattermost_data convert_slack_data create_default_stream_groups create_large_indexes create_realm_internal_bots create_stream create_user deactivate_realm deactivate_user delete_old_unclaimed_attachments delete_realm delete_user deliver_scheduled_emails deliver_scheduled_messages dump_messages edit_linkifiers email_mirror enqueue_digest_emails enqueue_file export export_single_user export_usermessage_batch fill_memcached_caches fix_unreads generate_invite_links generate_multiuse_invite_link generate_realm_creation_link get_migration_status import list_realms logout_all_users makemessages merge_streams print_email_delivery_backlog process_queue purge_queue query_ldap rate_limit reactivate_realm realm_domain register_server remove_users_from_stream rename_stream reset_authentication_attempt_count restore_messages runtornado scrub_realm send_custom_email send_password_reset_email send_realm_reactivation_email send_stats send_test_email send_to_email_mirror send_webhook_fixture_message set_message_flags show_admins soft_deactivate_users sync_ldap_user_data transfer_uploads_to_s3 turn_off_digests

Bước 6 - Nâng cấp Zulip​

Để nâng cấp Zulip, hãy tải xuống bản phát hành mới nhất từ máy chủ.
Mã:
$ curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
Chạy lệnh sau để thực hiện nâng cấp.
Mã:
$ sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gz
Tập lệnh sẽ thực hiện các chức năng sau.
  1. Chạy apt upgrade để nâng cấp hệ thống.
  2. Cài đặt phiên bản mới của các phụ thuộc của Zulip.
  3. Tắt máy chủ Zulip.
  4. Chạy lệnh puppet apply.
  5. Thực hiện di chuyển cơ sở dữ liệu nếu cần.
  6. Khởi động lại máy chủ Zulip.

Bước 7 - Sao lưu và khôi phục Zulip​

Sao lưu và khôi phục Zulip rất dễ sử dụng, nhờ các tập lệnh tích hợp có thể xử lý mọi thứ.

Để sao lưu toàn bộ Zulip, hãy chạy lệnh sau.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz
Lệnh trên sẽ tạo tệp zulip-backup.tar.gz trong thư mục ~/backups. Lệnh này chứa mọi thứ bạn cần để chuyển hoặc khôi phục Zulip.

Để khôi phục bản sao lưu hiện có, hãy cài đặt Zulip bằng cách thực hiện bước 2.

Sau khi hoàn tất, hãy chạy lệnh sau để hoàn tất quá trình khôi phục.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup ~/backups/zulip-backup.tar.gz
Nếu bạn muốn thay đổi tên miền, bạn có thể thay đổi biến EXTERNAL_HOST trong tệp /etc/zulip/settings.py rồi khởi động lại máy chủ bằng lệnh sau.
Mã:
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server

Kết luận​

Như vậy là kết thúc hướng dẫn của chúng tôi về cách cài đặt và cấu hình máy chủ Zulip Chat trên hệ thống dựa trên Debian 11. Bạn có thể theo dõi tài liệu chính thức của Zulip để khám phá chi tiết. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên