最終更新日: 2025年11月6日
テンプレート説明
Zulipは、ストリームとトピックによる独自のスレッド構造を採用したオープンソースのチームコラボレーションツールです。リアルタイムチャットと非同期コミュニケーションの両方をサポートし、リモートワークやオープンソースプロジェクトの効率的な情報共有を実現します。Fortune 500企業や世界中のオープンソースプロジェクトで広く利用されています。
本テンプレートでは、Zulipをすべての依存関係を含むDocker環境で自動セットアップします。インストール完了後、組織作成用のランダムURLが生成されるため、セキュアな初期設定が可能です。
メモ
本テンプレートではインストール完了後にサービスが起動状態となります。初期管理者設定画面へのアクセスは、インストール時に生成される推測不可能なランダムURLでのみ可能なため、第三者による不正アクセスのリスクは低く抑えられています。
仕様
対応OSイメージ
Ubuntu 24.04 LTS
主要ソフトウェア
| ソフトウェア名 | バージョン | ライセンス | 用途 |
|---|---|---|---|
| Zulip | latest | Apache 2.0 | チームコラボレーションプラットフォーム |
| Docker | latest | Apache 2.0 | コンテナ仮想化プラットフォーム |
| Docker Compose | latest | Apache 2.0 | マルチコンテナDocker管理ツール |
| PostgreSQL | 14 | PostgreSQL License | リレーショナルデータベース |
| Redis | alpine | BSD-3-Clause | キャッシュ・セッション管理 |
| RabbitMQ | 3.13-alpine | MPL 2.0 | メッセージキューシステム |
| Memcached | alpine | BSD-3-Clause | 分散メモリキャッシュシステム |
| Nginx | latest | BSD-2-Clause | Webサーバー・リバースプロキシ |
| Let’s Encrypt | latest | MPL 2.0 | SSL/TLS証明書発行 |
スタートアップスクリプト情報
| 項目 | 説明 |
|---|---|
| アプリケーション利用ポート | 80/tcp (HTTP), 443/tcp (HTTPS) |
| インストールディレクトリ | /opt/zulip |
| 管理スクリプト | /root/zulip-*.sh |
| 初期状態 | サービス起動中 |
| ドメイン設定 | ConoHa逆引きDNS自動検出(カスタムドメイン指定可能) |
その他
最小システム要件
- CPU: 1コア以上(100+ユーザーの場合は2コア以上推奨)
- メモリ: 最小2GB + 2GB swap、推奨4GB以上(100+ユーザーの場合)
- ディスク容量: 10GB以上(SSD推奨)
- ネットワーク: パブリックIPアドレス、ポート80/443へのアクセス
メモ
Zulipは100名以下の小規模チームから大規模組織まで柔軟にスケールします。公式ドキュメントでは、100名以上のユーザーを想定する場合は2CPU/4GBメモリ以上を推奨しています。本テンプレートでは、メモリ4GB以上のVPSプランでのご利用を推奨いたします。
利用手順
メモ
スタートアップスクリプトにてアプリケーションのインストールが完了するまで数分かかります。
インストール完了後、rootディレクトリに「zulip-info.txt」というファイルが作成されますのでご確認ください。
ファイルが存在しない場合、作成されるまでしばらくお待ちください。
Step 0: セキュリティグループについて
ConoHa VPS(Ver.3.0)ではサーバー毎にIPアドレスまたはポートでトラフィックを制御するセキュリティグループ(仮想ファイアウォール)が設定されます。
本テンプレートをご利用の場合は、予め利用するポートの通信許可設定が必要です。
詳細はセキュリティグループを参照してください。
Step 1: VPSへの接続
VPSが起動したら、SSH接続を行います。
# ssh root@[VPSのIPアドレス]
メモ
インストール完了までには数分程度かかります。スタートアップスクリプトの実行状況は、SSH接続後に以下のコマンドで確認できます:
# tail -f /var/log/zulip-install.log
Step 2: インストール情報の確認
インストールが完了すると、組織作成用のURLやシステム情報が記載されたファイルが生成されます。このファイルから組織作成リンクを確認してください。
# cat /root/zulip-info.txt
重要
組織作成リンク(Setup Link)は推測不可能なランダムURLです。このリンクはZulip組織の初期管理者を作成する際に必要となります。リンクは安全に管理し、初期セットアップが完了するまで外部に共有しないでください。
Step 3: 初期セットアップ(組織・管理者作成)
ブラウザでStep 2で確認した組織作成リンクにアクセスし、以下の手順で初期設定を行います:
- 組織名の入力: チームや企業の名称を入力します
- 管理者アカウント作成: メールアドレスとパスワードを設定します
- 初期設定完了: 組織の基本設定を行い、ログインします
メモ
初回アクセス時、自己署名SSL証明書による警告が表示される場合があります。ブラウザの「詳細設定」→「続行」をクリックしてアクセスしてください。Let’s Encrypt証明書への切り替えは、Step 4で行うことができます。
Step 4: HTTPS設定(Let’s Encrypt証明書への切り替え)
運用環境では、Let’s Encrypt証明書による正式なHTTPS設定を推奨します。
前提条件
- 独自ドメインのAレコードがVPSのIPアドレスを指していること
- ポート80が外部からアクセス可能であること
証明書取得手順
下記コマンドの「[email protected]」は自身のメールアドレスに置き換えてください。
# /root/zulip-letsencrypt.sh -e [email protected]
このスクリプトは以下を自動実行します:
- Let’s Encrypt証明書の取得
- 証明書のZulipへの適用
- 証明書自動更新設定(ランダムな時刻に1日2回実行)
メモ
Let’s Encrypt証明書は90日間有効です。本スクリプトにより、証明書は自動的に更新されます。更新処理は1日2回(12時間ごと)にランダムな遅延を含めて実行され、証明書の有効期限が30日以内になると自動更新されます。
Step 5: ドメイン変更(オプション)
後からカスタムドメインに変更する場合は、以下のスクリプトを使用します。下記コマンドの「your-domain.com」は自身の独自ドメインに置き換えてください。
# /root/zulip-change-domain.sh -d your-domain.com
このスクリプトは以下を実行します:
- Zulipサービスの一時停止
- ホスト名とDocker Compose設定の更新
- サービスの再起動
重要
ドメイン変更後は、新しいドメインでLet’s Encrypt証明書を再取得する必要があります。Step 4の手順を新しいドメインで実行してください。
Step 6: システム診断
Zulipの動作状況を確認するには、診断スクリプトを実行します。
# /root/zulip-diagnose.sh
診断スクリプトでは以下の情報を確認できます:
- Dockerサービスの状態
- Zulipコンテナの稼働状況
- ドメイン設定とIPアドレス
- ポート80/443の待ち受け状態
- 最近のログ(直近10行)
管理スクリプト一覧
| スクリプト名 | 機能 | 使用例 |
|---|---|---|
| zulip-diagnose.sh | システム診断 | # /root/zulip-diagnose.sh |
| zulip-letsencrypt.sh | Let’s Encrypt証明書設定 | # /root/zulip-letsencrypt.sh -e [email protected] |
| zulip-change-domain.sh | ドメイン変更 | # /root/zulip-change-domain.sh -d new.domain.com |
基本的なDocker操作
Zulipサービスの起動・停止・再起動は、以下のコマンドで実行できます。
サービスの起動
# cd /opt/zulip && docker-compose up -d
サービスの停止
# cd /opt/zulip && docker-compose down
サービスの再起動
# cd /opt/zulip && docker-compose restart
コンテナ状態の確認
# docker ps --filter name=zulip
ログの確認
# docker logs zulip-zulip-1 -f
セキュリティグループ設定
以下のポートを開放する必要があります。
| ポート番号 | プロトコル | 用途 | 必須/オプション |
|---|---|---|---|
| 22 | TCP | SSH | 任意 |
| 80 | TCP | HTTP | 必須 |
| 443 | TCP | HTTPS | 推奨 |
セキュリティ重要
本スクリプトでは、UFW(Uncomplicated Firewall)が自動的に設定され、上記のポートのみが開放されます。セキュリティ向上のため、必要に応じてSSHポートの変更や、特定IPアドレスからのアクセス制限を追加で設定することを推奨します。
アプリケーションの具体的な利用方法につきましては、サービス開発元やサービス提供元の公式サイト、Wikiなどで最新情報をご確認ください。
外部リンク
| サイト名 | URL | 説明 |
|---|---|---|
| Zulip公式サイト | https://zulip.com/ | プロダクト情報・機能紹介 |
| Zulip公式ドキュメント | https://zulip.readthedocs.io/ | 技術ドキュメント・インストールガイド |
| ZulipのGitHubリポジトリ | https://github.com/zulip/zulip | ソースコード・イシュートラッカー |
| Zulip Help Center | https://zulip.com/help/ | エンドユーザー向けヘルプセンター |
| Zulip Community | https://chat.zulip.org/ | 開発者コミュニティ・サポートチャット |