ONLYOFFICE を Docker でインストールする方法

はじめに
ONLYOFFICE は法人向けオフィススイートで、CRM、プロジェクト管理、ドキュメント共有、カレンダー、メールが統合されています。主要コンポーネントは次の通りです。
- Community Server: People、Projects、CRM、Documents、Community、メールクライアント、カレンダー、チャットなどのモジュールを提供します。
- Document Server: テキスト、スプレッドシート、プレゼンテーションのオンライン編集とリアルタイム共同編集、コメント、バージョン管理を提供します。
- Mail Server: メール送受信と連携機能を担います。
新機能(抜粋):
- Community Server 8.9.0: メール・カレンダー統合、メール自動応答、アドレス帳、ドキュメントのアクセス権見直し。
- Document Server 4.0: 高速なリアルタイム共同編集、コメント・統合チャット、変更履歴の追跡。
システム要件と依存関係
次の最低要件を満たしていることを確認してください。
- RAM: 6 GB 以上
- HDD: 空き容量 2 GB 以上
- スワップファイル: 2 GB 以上
- メール用に登録済みドメイン名
- Docker: バージョン 1.10 以降
補足: 大規模ユーザーや多量の同時編集がある環境では、RAM とディスク容量を増やしてください。
Docker のインストール手順は公式ドキュメントを参照してください。
重要: 本番環境ではファイアウォール設定とメール用の正引き/DKIM/SPF/DMARC 設定を忘れずに行ってください。
インストール手順
以下は単一マシン上で Docker を使って ONLYOFFICE の主要コンポーネントをデプロイする最短手順です。コマンドはルート権限または sudo を用いて実行してください。
ターミナルを開く (Ctrl+Alt+T)
onlyoffice 用の Docker ネットワークを作成する
docker network create --driver bridge onlyoffice
- Document Server をインストールする
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server onlyoffice/documentserver
- Mail Server をインストールする
sudo docker run --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server \
-p 25:25 -p 143:143 -p 587:587 \
-h yourdomain.com \
onlyoffice/mailserver
注: yourdomain.com はメール用に登録済みのドメイン名に置き換えてください。
- Community Server をインストールする
sudo docker run --net onlyoffice -i -t -d -p 80:80 --restart=always --name onlyoffice-community-server \
-p 80:80 -p 5222:5222 -p 443:443 \
-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
-e MAIL_SERVER_DB_HOST=onlyoffice-mail-server \
onlyoffice/communityserver
これらのコマンドにより、すべてのコンポーネントが onlyoffice という Docker ブリッジネットワークに配置され、他の Docker コンテナから隔離されます。
サービス起動と初期設定
ブラウザでサーバーの IP アドレスまたはホスト名にアクセスしてください。初回はメールアドレスとパスワードで管理者アカウントを作成します。タイムゾーン、インターフェース言語を設定して保存すると、Welcome ページが表示されます。
必要なツールを選んで作業を開始できます。
運用チェックリスト
- 起動確認: docker ps で onlyoffice コンテナが起動しているか確認。
- ネットワーク: コンテナ間疎通を docker exec から ping で確認。
- ポート: 80/443/5222/25/143/587 が適切に開放されていること。
- メール: DNS の MX、SPF、DKIM 設定を検証。
- バックアップ: Community Server と Mail Server のデータベース/ストレージの定期バックアップを計画。
よくあるトラブルと対処
- 起動しない: docker logs <コンテナ名> を確認。ログにエラーがあれば原因を特定。
- ポート競合: 既に 80/443 を使用するサービスがある場合、ポートを変更するか既存サービスを停止。
- メール送受信不可: DNS レコードとファイアウォール、さらにコンテナのポートマッピングを再確認。
- Document Server に接続できない: Community Server の環境変数 DOCUMENT_SERVER_PORT_80_TCP_ADDR が正しいか確認。
セキュリティとハードニング
- TLS: 本番環境では必ず TLS を有効にする。Let’s Encrypt などで証明書を取得して nginx プロキシ経由で TLS 終端することを推奨。
- 最小権限: Mail Server コンテナは –privileged を極力避け、必要な機能に絞ったキャパビリティで実行する設計を検討。
- ユーザー管理: 管理者アカウントの 2 要素認証や強力なパスワードポリシーを適用。
代替アプローチと拡張
- docker-compose を使う: 複数コンテナの管理や環境変数管理に docker-compose.yml を使うと運用が簡単になります。
- 仮想マシンを使う: セキュリティ分離が重要な場合は VM ごとに分けて配置する。
- Kubernetes へ移行: スケールや可用性が必要なら Kubernetes によるオーケストレーションを検討。
運用のための簡易 SOP
- 環境準備: OS 更新、Docker インストール、ドメイン取得、DNS 設定
- ネットワーク作成: docker network create
- 各コンテナの展開: Document→Mail→Community の順で実行
- 動作確認: 各サービスのログとブラウザからのアクセス確認
- バックアップと監視: 定期バックアップ、ログ監視、ディスク/メモリ監視の設定
判断フロー(簡易)
graph LR
A[導入目的の確認] --> B{小規模?}
B -- はい --> C[単一マシンに Docker 展開]
B -- いいえ --> D{可用性必要?}
D -- はい --> E[Kubernetes 検討]
D -- いいえ --> F[複数 VM に分散配置]
いつ使うべきでないか(反例)
- 既に高度に分散したインフラで、すべてをマイクロサービスとして管理している場合は Kubernetes への直接デプロイが適することが多いです。
- メールのみを外部サービス(G Suite や Microsoft 365)で運用している場合、Mail Server を立てる必要がないことがあります。
移行・互換性メモ
- バージョン互換: Community Server と Document Server の互換性はリリースノートで確認してください。
- データ移行: 既存の ONLYOFFICE から移行する場合、ドキュメントストレージと DB のバックアップ/リストア手順を先に検証しておくこと。
終わりに
まとめ:
- Docker による ONLYOFFICE の単一マシン展開は迅速で依存関係の衝突を避けられます。
- 本番環境では TLS、DNS、メール関連の設定とバックアップの仕組みを整えることが重要です。
補足リンク:
- 公式インストールと設定ドキュメント
- ONLYOFFICE がプレインストールされた仮想マシンのダウンロードページ
- ソースコードとバイナリ情報: onlyoffice.org
- サポート: dev.onlyoffice.org
重要: 本番運用前にテスト環境で一通りの検証を行ってください。
著者
編集