メインコンテンツまでスキップ

ローカルサーバーにDocker用ONLYOFFICE Docsをインストールする

はじめに​

コミュニティ版では、ONLYOFFICE Docsをローカルサーバーにインストールし、ONLYOFFICEコラボレーションプラットフォームや他の人気システムとオンラインエディターを統合することができます(機能の詳細なリストをご覧ください)。このガイドでは、ONLYOFFICE Docs コミュニティ版のDockerバージョンをマシンにインストールする方法を示します。

システム要件​

  • CPU:デュアルコア2 GHz以上
  • RAM:4 GB以上
  • HDD:少なくとも40 GBの空き容量
  • SWAP:少なくとも4 GB、ただしホストOSに依存。多いほど良い
  • OS:カーネルバージョン3.10以降のamd64 Linuxディストリビューション
  • 追加要件

ONLYOFFICE Docsのインストール​

注記

最新のDockerバージョンがインストールされている必要があります。インストールされていない場合は、Dockerのウェブサイトのインストールセクションを参照して入手方法を確認してください。

注記

DockerはデフォルトでGoogle DNSサーバーを指定します。ONLYOFFICE Docsがインターネットにアクセスしない場合、デフォルトのDocker DNSアドレスをローカルDNSサーバーのアドレスに変更することをお勧めします。そのためには、/etc/default/dockerファイルに移動し、次の行のIPアドレスをローカルネットワーク内のDNSサーバーのIPアドレスに変更します:

docker_OPTS="--dns 8.8.8.8"

CentOSのようなRPMベースのオペレーティングシステムの場合:

  1. 次の内容で/etc/docker/daemon.json設定ファイルを作成します:

    { "dns" : [ "8.8.8.8" ] }
  2. Dockerサービスを再起動します:

    sudo systemctl restart docker.service

Dockerをインストールした後、Dockerを実行し、次のコマンドを実行します:

sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
重要

バージョン7.2以降、JWTシークレットのランダム生成を追加しました。環境変数でJWTシークレットが指定されていない場合、VMまたは物理サーバーの再起動時に再生成されるため、統合に問題が生じる可能性があります。この問題を避けるために、-e JWT_SECRET=my_jwt_secretで独自の値を指定してください。

インストールでJWTを使用しない場合は、-e JWT_ENABLED=falseを使用してください。

ONLYOFFICE Docsを個別にインストールしたい場合は、このコマンドを使用してください。ONLYOFFICE WorkspaceおよびONLYOFFICE Mailと統合されたONLYOFFICE Docsをインストールするには、以下の対応する指示を参照してください。

注記

デフォルトでは、ONLYOFFICE Docsはポート80を使用して着信接続をリッスンします。バージョン4.3以降、デフォルトのポートの代わりに使用する予定がある場合は、ONLYOFFICE Docsのポートを変更できます。これは、インストール中にマッピングポートを変更することで簡単に行えます:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

ここで、<PORT_NUMBER>はONLYOFFICE Docsが使用するポート番号です。

これにより、ONLYOFFICE Docsと必要なすべての依存関係がインストールされます(スクリプトが行うことのリストはこちらで確認できます)。

インストールの確認​

コンテナが起動したら、ブラウザでhttp://localhost(またはサーバーのIPアドレス)を開きます。ONLYOFFICE Docsのウェルカムページが表示されれば、インストールは成功です。

ウェルカムページが表示されない場合は、コンテナのログでエラーを確認してください:

sudo docker logs <CONTAINER_ID>

よくある問題:

  • ポート80がすでに別のアプリケーションで使用されています。競合しているアプリケーションを停止するか、-p <PORT_NUMBER>:80で別のポートを使用してください。
  • コンテナが再起動を繰り返します。ログでデータベース接続エラーやメモリ不足を確認してください。
  • ブラウザに「接続が拒否されました」と表示されます。1~2分待ってください。初回起動時はデータベースの初期化に時間がかかります。

コンテナ外へのデータ保存​

すべてのデータは、以下の場所にあるデータボリュームという特別に指定されたディレクトリに保存されます:

  • /var/log/onlyoffice:ONLYOFFICE Docsのログ用
  • /var/www/onlyoffice/Data:証明書用
  • /var/lib/onlyoffice:ファイルキャッシュ用
推奨

新しいバージョンがリリースされた際にデータを失うことなくONLYOFFICE Docsを簡単に更新できるように、データをDockerコンテナの外にホストマシン上に保存することを強くお勧めします。

コンテナ外にあるデータにアクセスするには、ボリュームをマウントする必要があります。これは、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
注記

まだ作成されていないフォルダをマウントしようとする場合、これらのフォルダは作成されますが、アクセスが制限されます。アクセス権を手動で変更する必要があります。

通常、コンテナデータを保存する必要はありません。コンテナの動作はその状態に依存しないためです。データを保存することは次の場合に有用です:

  • ログなどのコンテナデータに簡単にアクセスするため;
  • コンテナ内のデータサイズの制限を解除するため。

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

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

ここで:

  • 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}}

これで、アプリケーションを安全にするための最後のステップです。

利用可能な設定パラメータ​

注記

すべての必要な環境変数を1つのファイルで指定できる--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ファイルを使用してクライアント証明書の検証を有効にします。デフォルトはfalseです。
  • NGINX_WORKER_PROCESSES:NGINXワーカープロセスの数を定義します。
  • NGINX_WORKER_CONNECTIONS:NGINXワーカープロセスが開くことができる同時接続の最大数を設定します。
  • SECURE_LINK_SECRET:nginx設定ディレクティブsecure_link_md5のシークレットを定義します。デフォルトはrandom string(ランダム文字列)です。
  • JWT_ENABLED:ONLYOFFICE DocsによるJSON Webトークンの検証を有効にするかどうかを指定します。デフォルトはtrueです。
  • JWT_SECRET:ONLYOFFICE DocsへのリクエストでJSON Webトークンを検証するためのシークレットキーを定義します。デフォルトはランダム値です。
  • JWT_HEADER:JSON Webトークンを送信するために使用される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:ストレージサーバー(例:Nextcloud)に自己署名証明書を使用している場合はtrueに設定します。デフォルトは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 WorkspaceおよびONLYOFFICE Mailと統合されたONLYOFFICE Docsのインストール​

ONLYOFFICE Docsは、ONLYOFFICE Workspaceの一部であり、ONLYOFFICE Community Server、ONLYOFFICE Control Panel、ONLYOFFICE Mailも含まれています。すべてをインストールして相互に統合したい場合は、こちらの手順をお読みください。

ONLYOFFICE Docsをインストールするための代替方法​

代わりに、自動インストールスクリプトを使用してWorkspace全体を一度にインストールすることもできます。メールサーバーが正しく動作するためには、そのホスト名yourdomain.comを指定する必要があります。

ステップ1:インストールスクリプトファイルをダウンロードする

次のコマンドを実行します:

curl -O https://download.onlyoffice.com/install/workspace-install.sh

ステップ2:Workspaceをインストールする

これを行うには、次のコマンドを実行します:

bash workspace-install.sh -md yourdomain.com

または、docker-composeを使用してONLYOFFICE Docsをインストールすることもできます。こちらの手順を参照してください。

ONLYOFFICE DocsのIPv6設定​

注記

Linuxホストでのみ動作し、サポートされています

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マニュアルサイトをご覧ください。