- ホーム
- Docs
- インストールと設定
- 開発者
- Docker バージョン
- ローカルサーバーにDockerを使用してONLYOFFICE Docsをインストールする
ローカルサーバーにDockerを使用してONLYOFFICE Docsをインストールする
はじめに
デベロッパー版を使用すると、ONLYOFFICE Docsをローカルサーバーにインストールし、オンラインエディターをウェブアプリケーションに統合することができます。
ONLYOFFICE Docsは、テキスト、スプレッドシート、プレゼンテーション用のビューアーとエディターを含むオンラインオフィススイートであり、Office Open XML形式(.docx、.xlsx、.pptx)と完全に互換性があり、リアルタイムでの共同編集を可能にします。
機能
- ドキュメントエディター
- スプレッドシートエディター
- プレゼンテーションエディター
- モバイルウェブビューアー
- モバイルウェブエディター
- 共同編集
- 漢字サポート
- すべての一般的なフォーマットのサポート:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML
ONLYOFFICE Docs デベロッパー版で利用可能な詳細な機能一覧をご覧ください。
このガイドでは、ONLYOFFICE Docs デベロッパー版のDockerバージョンをマシンにインストールする方法を説明します。
システム要件
-
CPUデュアルコア2 GHz以上
-
RAM4 GB以上
-
HDD少なくとも40 GBの空き容量
-
SWAP少なくとも4 GB、ただしホストOSに依存します。多いほど良いです。
-
OSamd64 Linuxディストリビューション、カーネルバージョン3.10以降
-
追加要件
- Docker:Dockerチームがサポートするバージョンのいずれか
ONLYOFFICE Docsのインストール
/etc/default/dockerファイルに移動し、次の行のIPアドレスをローカルネットワークのDNSサーバーのIPアドレスに変更します:
docker_OPTS="--dns 8.8.8.8"
CentOSのようなRPMベースのオペレーティングシステムの場合:
-
次の内容で
/etc/docker/daemon.json設定ファイルを作成します:{ "dns" : [ "8.8.8.8" ] } -
Dockerサービスを再起動します:
sudo systemctl restart docker.service
Dockerをインストールした後、実行して次のコマンドを実行します:
sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
-e JWT_SECRET=my_jwt_secretで独自の値を指定してください。
インストールでJWTを使用しない場合は、-e JWT_ENABLED=falseを使用してください。
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
ここで<PORT_NUMBER>は、ONLYOFFICE Docsが使用するポート番号です。
これにより、ONLYOFFICE Docsと必要なすべての依存関係がインストールされます(スクリプトが行うことのリストはこちらで確認できます)。
コンテナ外でのデータ保存
すべてのデータは、特別に指定されたディレクトリ、データボリュームに保存され、次の場所にあります:
/var/log/onlyoffice:ONLYOFFICE Docsのログ用/var/www/onlyoffice/Data:証明書用/var/lib/onlyoffice:ファイルキャッシュ用/var/lib/postgresql:データベース用
コンテナ外にあるデータにアクセスするには、ボリュームをマウントする必要があります。これは、docker runコマンドで-vオプションを指定することで行えます。
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/
onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
通常、コンテナのデータを保存する必要はありません。コンテナの動作はその状態に依存しないためです。データを保存することが有用な場合:
- ログなどのコンテナデータに簡単にアクセスするため;
- コンテナ内のデータサイズの制限を解除するため;
- PostgreSQL、Redis、RabbitMQなど、コンテナ外で起動されたサービスを使用する場合。
HTTPSを使用してONLYOFFICE Docsを実行する
sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
onlyofficeアプリケーションへのアクセスは、SSLを使用して保護することができます。CA認定のSSL証明書は、CAを介して信頼を検証することができますが、自己署名証明書も、各クライアントがウェブサイトのアイデンティティを確認するための追加の手順を踏む限り、同等の信頼性を提供することができます。これを達成するための手順は以下に示されています。
SSLを介してアプリケーションを保護するためには、基本的に2つのものが必要です:
- 秘密鍵 (.key)
- SSL証明書 (.crt)
したがって、次のファイルを作成してインストールする必要があります:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
CA認定の証明書(例:Let's Encrypt)を使用する場合、これらのファイルはCAから提供されます。自己署名証明書を使用する場合は、これらのファイルを自分で生成する必要があります。
certbotを使用してONLYOFFICE DocsをHTTPSに切り替える
ONLYOFFICE DocsをHTTPSに切り替える最も簡単な方法は、Let's Encrypt SSL証明書をcertbotを使用して自動的に取得することです。
ポート80と443を指定し、変数に独自の値を設定してONLYOFFICE Docs Dockerコンテナを実行します:
sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
ここで:
- LETS_ENCRYPT_DOMAIN - 証明書に使用するドメイン名。
- LETS_ENCRYPT_MAIL - 登録および復旧連絡用のメールアドレス。
letsencrypt.orgのCA署名付き証明書が自動的に生成され、サーバーにインストールされます。これで、ONLYOFFICE Docsはhttps://yourdomain.comアドレスで利用可能になります。
自己署名証明書の生成
自己署名SSL証明書の生成は、簡単な3ステップの手順です。
ステップ1:サーバーの秘密鍵を作成
openssl genrsa -out onlyoffice.key 2048
ステップ2:証明書署名要求(CSR)を作成
openssl req -new -key onlyoffice.key -out onlyoffice.csr
ステップ3:秘密鍵とCSRを使用して証明書に署名
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
これで、365日間有効なSSL証明書が生成されました。
サーバーセキュリティの強化
このセクションでは、サーバーセキュリティを強化するための手順を提供します。
これを達成するためには、より強力なDHEパラメータを生成する必要があります。
openssl dhparam -out dhparam.pem 2048
SSL証明書のインストール
上記で生成された4つのファイルのうち、onlyoffice.key、onlyoffice.crt、dhparam.pemファイルをonlyofficeサーバーにインストールする必要があります。CSRファイルは必要ありませんが、念のためにファイルを安全にバックアップしておいてください(再度必要になる場合があります)。
onlyofficeアプリケーションがSSL証明書を探すように設定されているデフォルトのパスは/var/www/onlyoffice/Data/certsですが、これはSSL_KEY_PATH、SSL_CERTIFICATE_PATH、SSL_DHPARAM_PATHの設定オプションを使用して変更することができます。
/var/www/onlyoffice/Data/パスはデータストアのパスであるため、/app/onlyoffice/DocumentServer/data/内にcertsという名前のフォルダを作成し、ファイルをそこにコピーし、セキュリティ対策としてonlyoffice.keyファイルの権限を所有者のみが読み取り可能に更新します。
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/
data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
そしてDockerコンテナを再起動します:
sudo docker restart {{DOCUMENT_SERVER_ID}}
これで、アプリケーションのセキュリティを確保するための最後のステップです。
利用可能な設定パラメーター
--env-fileフラグのdocker runコマンドオプションを参照してください。これにより、長いdocker runコマンドを書く手間が省けます。以下は、環境変数を使用して設定できるパラメーターの完全なリストです。
- ONLYOFFICE_HTTPS_HSTS_ENABLED:HSTS設定をオフにするための高度な設定オプション。SSL使用時のみ適用されます。デフォルトは
trueです。 - ONLYOFFICE_HTTPS_HSTS_MAXAGE:onlyoffice NGINX vHost設定でHSTSの最大年齢を設定するための高度な設定オプション。SSL使用時のみ適用されます。デフォルトは
31536000です。 - SSL_CERTIFICATE_PATH:使用するSSL証明書のパス。デフォルトは
/var/www/onlyoffice/Data/certs/tls.crtです。 - SSL_KEY_PATH:SSL証明書の秘密鍵のパス。デフォルトは
/var/www/onlyoffice/Data/certs/tls.keyです。 - SSL_DHPARAM_PATH:Diffie-Hellmanパラメーターのパス。デフォルトは
/var/www/onlyoffice/Data/certs/dhparam.pemです。 - SSL_VERIFY_CLIENT:
CA_CERTIFICATES_PATH fileを使用してクライアント証明書の検証を有効にします。デフォルトはfalseです。 - DB_TYPE:データベースの種類。サポートされている値は
postgres、mariadb、mysqlです。デフォルトはpostgresです。 - DB_HOST:データベースサーバーが稼働しているホストのIPアドレスまたは名前。
- DB_PORT:データベースサーバーのポート番号。
- DB_NAME:イメージの起動時に作成されるデータベースの名前。
- DB_USER:データベースアカウントのスーパーユーザー権限を持つ新しいユーザー名。
- DB_PWD:データベースアカウントに設定されたパスワード。
- AMQP_URI:メッセージブローカーサーバーに接続するためのAMQP URI。
- AMQP_TYPE:メッセージブローカーの種類。サポートされている値は
rabbitmqまたはactivemqです。デフォルトはrabbitmqです。 - REDIS_SERVER_HOST:Redisサーバーが稼働しているホストのIPアドレスまたは名前。
- REDIS_SERVER_PORT:Redisサーバーのポート番号。
- REDIS_SERVER_PASS:Redisサーバーのパスワード。デフォルトでは設定されていません。
- NGINX_WORKER_PROCESSES:NGINXワーカープロセスの数を定義します。
- NGINX_WORKER_CONNECTIONS:NGINXワーカープロセスが開くことができる同時接続の最大数を設定します。
- SECURE_LINK_SECRET:nginx設定ディレクティブsecure_link_md5のシークレットを定義します。デフォルトは
ランダム文字列です。 - JWT_ENABLED:ONLYOFFICE DocsによるJSONウェブトークンの検証を有効にするかどうかを指定します。デフォルトは
trueです。 - JWT_SECRET:ONLYOFFICE DocsへのリクエストでJSONウェブトークンを検証するためのシークレットキーを定義します。デフォルトはランダム値です。
- JWT_HEADER:JSONウェブトークンを送信するために使用されるHTTPヘッダーを定義します。デフォルトは
Authorizationです。 - JWT_IN_BODY:ONLYOFFICE Docsへのリクエストボディでのトークン検証を有効にするかどうかを指定します。デフォルトは
falseです。 - ALLOW_META_IP_ADDRESS:メタIPアドレスへの接続を許可するかどうかを定義します。デフォルトは
falseです。 - ALLOW_PRIVATE_IP_ADDRESS:プライベートIPアドレスへの接続を許可するかどうかを定義します。デフォルトは
falseです。 - WOPI_ENABLED:wopiハンドラーの有効化を指定します。デフォルトは
falseです。 - USE_UNAUTHORIZED_STORAGE:ストレージサーバーに自己署名証明書を使用する場合に
trueに設定します(例:Nextcloud)。デフォルトはfalseです。 - GENERATE_FONTS:
trueの場合、起動時にフォントリストやフォントサムネイルなどを再生成します。デフォルトはtrueです。 - METRICS_ENABLED:ONLYOFFICE DocsのStatsDの有効化を指定します。デフォルトは
falseです。 - METRICS_HOST:StatsDのリスニングホストを定義します。デフォルトは
localhostです。 - METRICS_PORT:StatsDのリスニングポートを定義します。デフォルトは
8125です。 - METRICS_PREFIX:バックエンドサービス用のStatsDメトリクスプレフィックスを定義します。デフォルトは
ds.です。 - LETS_ENCRYPT_DOMAIN:Let's Encrypt証明書のドメインを定義します。
- LETS_ENCRYPT_MAIL:Let's Encrypt証明書のドメイン管理者のメールアドレスを定義します。
ONLYOFFICE DocsのIPv6設定
Dockerは現在、デフォルトでコンテナにIPv6アドレスを提供していません。この機能は現在実験的です。
IPv6を介した相互作用を設定するには、この機能のサポートをDockerで有効にする必要があります。これには以下が必要です:
-
次の内容で
/etc/docker/daemon.jsonファイルを作成します:{ "ipv6": true, "fixed-cidr-v6": "2001:db8:abc1::/64" } - 次のコマンドでDockerを再起動します:
systemctl restart docker
その後、すべての実行中のコンテナはIPv6アドレスを受け取り、inet6インターフェースを持つようになります。
デフォルトのブリッジネットワークを確認し、EnableIPv6=trueというフィールドがあることを確認できます。新しいIPv6サブネットも追加されます。
詳細については、公式のDockerマニュアルサイトをご覧ください。
デベロッパー版の登録
デベロッパー版を購入し、license.licファイルを受け取った場合は、インストールに配置してソフトウェアのフルバージョンを取得できます。
Dockerコンテナを使用している場合、license.licファイルは任意のフォルダーに配置できます(例:/app/onlyoffice/DocumentServer/data/license.lic)。ただし、コンテナの起動時にこのフォルダーをマウントする必要があります:
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
その後、デベロッパー版のバージョンが登録され、フル機能が利用可能になります。