TL;DR
- Webサービス型オフィススイートONLYOFFICEをオンプレミス環境にセットアップする方法を紹介します
- ONLYOFFICE用のdocker-compose.ymlを作ったので,これを使います
- Google Document, Spreadsheet, Presentationのようなものを,オンプレで実現します
- 複数ユーザが共同編集できます
- https接続して通信の安全性を向上させます
- Let's Encryptで発行してもらった証明書を組み込みます
- 各種ドキュメントファイル(プレゼンテーション,スライド,ドキュメント)の閲覧・編集ができます
- カレンダーの共有やメッセージングなどの機能も付いています
ONLYOFFICE概要
- ONLYOFFICEは,オンラインで複数ユーザが同時編集可能なオフィススイートです
- doc{x}, ppt{x}, xls{x}ファイルを共有し,編集することができます
ONLYOFFICE構造
- 2つのサーバと1つのデータベースで運用します
- Community Server
- ユーザがアクセスするフロントエンドです
- ファイル共有,カレンダー,メッセージング,メールなど,いくつかのアプリケーションが付属しています
- Document Server
- オフィスファイルの閲覧,編集に関するサービスを提供します
- Mariadb (MySQL5.5互換版)
- Community Server
- これらのサーバをdocker-compose.ymlでコンテナとして稼働させます
使い方
-
Let's Encryptなどで発行してもらったfullchain.pem,privkey.pemをコピーして,
docker-compose upします
git clone https://github.com/myoshimi/onlyoffice-docker-compose
cd onlyoffice-docker-compose
cp <Directory Path>/fullchain.pem ./keys/
cp <Directory Path>/privkey.pem ./keys/
docker-compose up -d
-
https://<server-domain>:3443/にアクセスする -
https://<CommunityServer-domain>:4443/は,ドキュメントサーバでユーザからのアクセスで処理をするわけではないので,稼働状況が表示されるだけです
docker-compose.ymlについて
アクセスポート
- 3443/TCP, 4443/TCPを,それぞれCommunity Server, Document Serverへのアクセスポートにしています
- 他のポートを使用したい場合は,該当行のポート番号を書き換えてください
不揮発化ボリューム
ONLYOFFICE用のdocker-compose.ymlでは,docker-compose.ymlがあるローカルディレクトリに不揮発領域を作成し,マウントします.必要があれば,記述を修正して使用してください
- Community Server用
- /var/log/onlyoffice : Comunity Serverのログが格納されるディレクトリ
- /var/www/onlyoffice/Data : データが格納されるディレクトリ
- Document Server用
- /var/log/onlyoffice : Document Serverのログが格納されるディレクトリ
- Database用
- /var/lib/mysql : MariaDBのデータが格納されるディレクトリ
ONLYOFFICE用のdocker-compose.ymlでは,別途,https用の鍵ファイルを,読み出し専用でマウントしています.
今後の課題
- 適切に前段階でリバースプロキシすることで,ホスト名ベースで各サーバに接続する
- 参考(Using Document Server behind the proxy)にヒントがあります
- イントラネット内での運用であれば,httpsでなくても良い場合があるので,その場合の対応
- NextCloud連携




