Zulipは、Microsoft Teams、Rocket Chat、Slackに似たオープンソースのチャットサーバーです。 Pythonで記述されており、Django、PostgreSQL、JavaScriptを使用しています。 Github、Jira、Stripe、Zendesk、Sentryなどを含む90を超えるサードパーティのプラグインと統合されます。ZapierやIFTTTと接続することで、統合を拡張できます。プライベートメッセージング、グループチャット、スレッド化された会話、カスタムチャネル、ビデオコール、ドラッグアンドドロップファイルのアップロード、カスタム絵文字、Giphy統合、画像とツイートのプレビューなどの機能が付属しています。 Zulipには、すべてのプラットフォームに対応するデスクトップアプリとモバイルアプリが付属しているため、プラットフォームに依存しません。
このチュートリアルでは、Debian11ベースのサーバーにZulipチャットをインストールして構成する方法を学習します。
-
Debian11を実行しているサーバー。
-
100人未満のユーザーが予想される場合は、少なくとも2GBのRAM。 100人以上のユーザーの場合は、4GBのRAMと2つのCPUサーバーを入手してください。
-
sudo権限を持つroot以外のユーザー。
-
サーバーを指すように構成されたドメイン名、
zulip.example.com
。 -
すべてが更新されます。
$ sudo apt update &&sudo apt upgrade
-
システムに必要なパッケージはほとんどありません。
$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
これらのパッケージの一部は、システムにすでにインストールされている可能性があります。
最初のステップは、ファイアウォールを構成することです。 Debianにはufw(Uncomplicated Firewall)が付属しています。
ファイアウォールが実行されているかどうかを確認します。
$ sudo ufw status
次の出力が得られるはずです。
ステータス:非アクティブ
SSHポートを許可して、ファイアウォールが有効にしたときに現在の接続を切断しないようにします。
$ sudo ufw allow OpenSSH
HTTPポートとHTTPSポートも許可します。
$ sudo ufw allow 80 / tcp $ sudo ufw allow 443 / tcp
ファイアウォールを有効にする
$ sudo ufw enableCommandは、既存のssh接続を中断する可能性があります。操作を続行しますか(y | n)? yFirewallはアクティブであり、システムの起動時に有効になります
ファイアウォールのステータスをもう一度確認してください。
$ sudo ufw status
同様の出力が表示されるはずです。
ステータス:activeTo Action From-- ------ ---- OpenSSH ALLOW Anywhere80 / tcp ALLOW Anywhere443 / tcp ALLOW AnywhereOpenSSH(v6)ALLOW Anywhere(v6)80 / tcp(v6)ALLOW Anywhere(v6) 443 / tcp(v6)どこでも許可(v6)
Zulipには、次の機能を実行するインストーラースクリプトが付属しています。
- ユーザーを作成します
zulip
Zulipサーバーを実行します。 -
zulip
を使用してホームディレクトリを作成します ディレクトリ/home/zulip/deployments
の下にすべてのパブリックコードを格納するユーザー 。 - Zulipに必要なすべての依存関係をインストールします。
- PostgreSQLデータベース、Nginx Webサーバー、RabbitMQ、Redis Cache、およびMemcachedをインストールします。
- Zulipのデータベースを初期化します。
mktemp
を使用して一時ディレクトリを作成します Zulipのインストーラーをダウンロードして切り替えるコマンド。
$ cd $(mktemp -d)
Zulipの最新バージョンをダウンロードします。
$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz
すべてのファイルを抽出します。
$ tar -xf zulip-server-latest.tar.gz
インストーラースクリプトを実行します。
$ sudo ./zulip-server-*/scripts/setup/install --certbot \ --email =YOUR_EMAIL --hostname =YOUR_HOSTNAME
--certbot
フラグを設定すると、インストーラーはCertbotをダウンロードし、SSL証明書を自動的にインストールします。 YOUR_EMAIL
を置き換えます メールIDとYOUR_HOSTNAME
Zulipのドメイン名(zulip.example.com
。
ステップ3-Zulipインターフェースへのアクセス
インストーラースクリプトが終了すると、一意のURLが提供されます。このURLをコピーします。
....... zulip-workers:zulip_deliver_scheduled_messages:started + set + x + su zulip -c'/home/zulip/deployments/current/manage.py generate_realm_creation_link'登録するには、次の安全な使い捨てリンクにアクセスしてくださいyournew Zulip組織:https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
にアクセスします ブラウザに次の画面が表示されます。
メールIDを入力して、組織の作成を開始します。次の画面でアカウントを設定するように求められます。
組織の名前と名前を入力し、ログイン用のパスワードを選択して、サインアップをクリックします。 ボタンをクリックして続行します。
完了すると、Zulipダッシュボードが開き、使用を開始できます。
Zulipサーバーは定期的にメールを送信する必要があります。このためには、送信メールを設定する必要があります。この例では、AmazonのSESサービスを使用します。すべてのメールは、手順3で組織を作成するために使用したメールIDから送信されます。
Zulipは、すべての設定を/etc/zulip/settings.py
に保存します ファイル。編集のために開きます。
$ sudo nano /etc/zulip/settings.py
#を削除して、次の変数のコメントを解除します それらの前に対応する値を入力します。
##EMAIL_HOSTとEMAIL_HOST_USERは通常必須です。EMAIL_HOST='email-smtp.us-west-2.amazonaws.com'EMAIL_HOST_USER='yoursmpt_username'##パスワードとシークレットはこのファイルに保存されません。ユーザーEMAIL_HOST_USERのpassword##は、 `/etc/zulip/zulip-secrets.conf`にあります。##そのファイルで、`email_password`を設定します。例:#email_password =abcd1234##ほとんどのSMTPプロバイダーにはEMAIL_USE_TLSとEMAIL_PORTが必要です。EMAIL_USE_TLS=TrueEMAIL_PORT=587
次の追加の変数を入力します。 1つ目は、返信なしの電子メールアドレスへのランダムなトークンを削除し、2つ目は、メールの返信なしの電子メール送信者を構成します。
ADD_TOKENS_TO_NOREPLY_ADDRESS =False#TOKENIZED_NOREPLY_EMAIL_ADDRESS ="noreply- {token}@example.com" ## NOREPLY_EMAIL_ADDRESSは、確認リンクを含まない##返信メールの送信者です(セキュリティの問題は## ADD_TOKENS_TO_によって修正されます)。存在する)、およびADD_TOKENS_TO_NOREPLY_ADDRESS =False.NOREPLY_EMAIL_ADDRESS='[メール保護]'の場合の##確認メール
終了したら、 Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
ZulipはEメールのパスワードを別のファイルに保存します。ファイル/etc/zulip/zulip-secrets.conf
を開きます 編集用。
$ sudo nano /etc/zulip/zulip-secrets.conf
ファイルの最後に次の行を貼り付けます。
email_password =yoursmtp_password
Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
送信メールの構成をテストするには、次のコマンドを使用してテストメールを送信できます。
$ sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email [メール保護]問題が発生した場合は、https://zulip.readthedocs.io/en/latest/production/をお読みください。 email.html#troubleshooting最も一般的なエラーは、その機能をサポートしていないメールプロバイダーを使用しているときに `ADD_TOKENS_TO_NOREPLY_ADDRESS=False`を設定しないことです。メールで保護]
サーバーを再起動します。
$ sudo -u zulip / home / zulip / deployments / current / scripts / restart-server
Zulipサーバーは、zulip
としてのみ起動または停止できることに注意してください。 ユーザー。
Zulipサーバーを停止するには、次のコマンドを使用します。
$ sudo -u zulip / home / zulip / deployments / current / scripts / stop-server
サーバーを再起動するには、次のコマンドを使用します。
$ sudo -u zulip / home / zulip / deployments / current / scripts / start-server
同様の方法でサーバーを再起動します。
$ sudo -u zulip / home / zulip / deployments / current / scripts / restart-server
manage.py
を使用して実行できる管理タスクはたくさんあります。 Zulipに同梱されているスクリプト。
次のコマンドを使用してスクリプトを実行できます。 help
を使用します 実行可能なすべての操作を一覧表示するサブコマンド。
$ sudo -u zulip /home/zulip/deployments/current/manage.py helpType'manage.py help'特定のサブコマンドのヘルプ。使用可能なサブコマンド:[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 makemigrationsmigrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver [otp_static] addstatictoken [sessions] clearsessions [sessions] [two_factor] two_factor_disable two_factor_status [zerver] add_users_to_streams archive_messages audit_fts_indexes backup Bulk_change_user_nam電子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_single_user export_usermessage_batch fill_memcached_caches fix_unreads generate_invite_links generate_multiuse_invite_link generate_realm_creation_link get_migration_status輸入list_realms logout_all_users makemessagesの節MERGE_STREAMS print_email_delivery_backlog process_queue purge_queue query_ldap RATE_LIMIT reactivate_realm realm_dom ain 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_test_email send_to_email_mirror send_webhook_fixture_message set_message_flags ステップ6-Zulipのアップグレード Zulipをアップグレードするには、サーバーから最新リリースをダウンロードしてください。
$ curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz次のコマンドを実行して、アップグレードを実行します。
$ sudo /home/zulip/deployments/current/scripts/upgrade-zulip〜/zulip-server-latest.tar.gzスクリプトは次の機能を実行します。
apt upgrade
を実行します システムをアップグレードします。- 新しいバージョンのZulipの依存関係をインストールします。
- Zulipサーバーをシャットダウンします。
puppet apply
を実行します コマンド。- 必要に応じてデータベースの移行を実行します。
- Zulipサーバーを再起動します。
ステップ7-Zulipのバックアップと復元 すべてを処理する組み込みのスクリプトのおかげで、Zulipのバックアップと復元は簡単です。
Zulipの完全バックアップを作成するには、次のコマンドを実行します。
$ sudo -u zulip /home/zulip/deployments/current/manage.py backup --output =〜/backups/zulip-backup.tar.gz上記のコマンドは、
zulip-backup.tar.gz
を作成します~/backups
内のファイル ディレクトリ。これには、Zulipを転送または復元するために必要なすべてのものが含まれています。既存のバックアップを復元するには、手順2を実行してZulipをインストールします。
終了したら、次のコマンドを実行して復元を終了します。
$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup〜/backups/zulip-backup.tar.gzドメインを変更する場合は、変数
EXTERNAL_HOST
を変更できます。 ファイル/etc/zulip/settings.py
次に、次のコマンドを使用してサーバーを再起動します。$ sudo -u zulip / home / zulip / deployments / current / scripts / restart-server結論 これで、Debian11ベースのシステムへのZulipチャットサーバーのインストールと構成に関するチュートリアルは終了です。 Zulipの公式ドキュメントに従って、詳細を調べることができます。ご不明な点がございましたら、下のコメント欄に投稿してください。
Debian