このチュートリアルでは、UbuntuにCollabora Onlineをインストールし、Dockerを使用せずに既存のNextcloudサーバーと統合する方法を説明します。
Collabora Online は、自己ホスト可能なLibreOfficeベースのオープンソースオンラインオフィススイートです。その機能は次のとおりです。
- 基本的な編集
- 忠実度の高いWYSIWYGレンダリング
- DOC、DOCX、PPT、PPTX、XLS、XLSX、ODFドキュメント形式をサポートします
- Visio、Publisher、その他100以上をインポートして表示
- 共有編集
CollaboraはLibreOfficeプロジェクトに大きく貢献しています。 Collabora Onlineのすべてのコードは、最終的にLibreOfficeに含まれる予定です。
注:このチュートリアルは、Ubuntu 20.04、18.04、および16.04で機能します。別のUbuntuバージョンを使用している場合は、Dockerを使用してCollobaoraOnlineをインストールできます。
前提条件
すでにNextcloudサーバーをセットアップしていることを前提としています。これは、任意のLinuxディストリビューションに配置できます。まだ行っていない場合は、次のわかりやすいガイドを確認してください。
- LEMPスタックを使用してUbuntu20.04にNextcloudをインストールする方法
- LAMPスタックを使用してUbuntu20.04にNextcloudをインストールする方法
- LEMPスタックを使用してCentOS8にNextcloudをインストールする方法
- ArchLinuxでNextcloudをセットアップする方法
Collabora OnlineサーバーとNextcloudサーバーは、同じマシン上または2つの異なるマシン上に配置できます。このチュートリアルでは、CollaboraとNextcloudによって構築されたDockerイメージを使用してUbuntuにCollaboraオンラインサーバーをインストールする方法を示します。次に、それを既存のNextcloudサーバーと統合します。
ステップ1:公式リポジトリからUbuntuにCollaboraOnlineをインストールする
Collaboraには、Ubuntu 20.04、18.04、16.04の公式パッケージリポジトリがあります。次のコマンドを実行して、Ubuntuシステムに追加します。
Ubuntu 20.04
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources.list.d/collabora.list
Ubuntu 18.04
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' | sudo tee /etc/apt/sources.list.d/collabora.list
Ubuntu 16.04
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' | sudo tee /etc/apt/sources.list.d/collabora.list
次に、次のコマンドを実行してCollabora公開鍵をダウンロードおよびインポートします。これにより、APTパッケージマネージャーは、このリポジトリからダウンロードされたパッケージの整合性を検証できます。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
上記のコマンドで公開鍵をインポートできない場合は、次のコマンドを使用して鍵をダウンロードしてインポートできます。
wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo apt-key add repomd.xml.key
このリポジトリはHTTPS接続を使用しているため、apt-transport-https
をインストールする必要があります およびca-certificates
パッケージなので、APTパッケージマネージャーはリポジトリへの安全な接続を確立できます。
sudo apt install apt-transport-https ca-certificates
次に、ローカルパッケージインデックスを更新し、CollaboraOnlineをインストールします。 Loolwsd LibreOfficeOnlineWebSocketデーモンです。
sudo apt update sudo apt install loolwsd code-brand
ステップ2:LibreOfficeOnlineWebSocketデーモンを構成する
インストール後、loolwsdのステータスを確認できます。
systemctl status loolwsd
ヒント :上記のコマンドがすぐに終了しなかった場合は、Q
を押すことができます やめるための鍵。
ご覧のとおり、起動に失敗しました。ジャーナルをチェックして、なぜこれが起こったのかを確認できます。
sudo journalctl -eu loolwsd
サンプル出力:
Apr 21 16:13:06 ubuntu loolwsd[13842]: File not found: /etc/loolwsd/ca-chain.cert.pem Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Main process exited, code=exited, status Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'. Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Service hold-off time over, scheduling r Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Scheduled restart job, restart counter i Apr 21 16:13:07 ubuntu systemd[1]: Stopped LibreOffice Online WebSocket Daemon. Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Start request repeated too quickly. Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'. Apr 21 16:13:07 ubuntu systemd[1]: Failed to start LibreOffice Online WebSocket Daemon.
デフォルトでは、loolwsdはTLS接続を有効にします。ただし、TLS証明書ファイルが見つからなかったため、起動に失敗しました。 loolwsdでTLSを無効にし、リバースプロキシでTLSを終了することをお勧めします。 loolwsd構成ファイルは/etc/loolwsd/loolwsd.xml
にあります。 。ただし、これはXMLファイルであるため、読み取りや編集は簡単ではありません。 loolconfig
を使用できます 構成を変更するためのツール。
次のコマンドを実行して、loolwsdでTLSを無効にします。
sudo loolconfig set ssl.enable false
そして、リバースプロキシでTLSターミネーションを有効にします。
sudo loolconfig set ssl.termination true
デフォルトでは、loolwsdは既知のホストのみがそのサービスにアクセスすることを許可します。 Nextcloudがサービスにアクセスできるようにするには、次のコマンドを実行してNextcloudホスト名をホワイトリストに追加します。
sudo loolconfig set storage.wopi.host nextcloud.example.com
次のコマンドを使用して、loolwsdの管理者アカウントを有効にすることもできます。管理者アカウントのユーザー名とパスワードを設定する必要があります。
sudo loolconfig set-admin-password
変更を有効にするには、loolwsdを再起動します。
sudo systemctl restart loolwsd
これで、エラーなしで実行されているはずです。
systemctl status loolwsd
出力:
ステップ3:リバースプロキシを設定する
NextcloudサーバーはCollaboraOnlineでTLS証明書を必要とするため、仮想ホストを作成し、仮想ホストにドメイン名を付け、リバースプロキシを設定し、TLS証明書をインストールする必要があります。 Apacheのいずれかを使用できます またはNginx これを達成するために。
Apache
次のコマンドを使用してApacheWebサーバーをインストールします。
sudo apt install apache2
次のコマンドを実行して、CollaboraOnlineのApache仮想ホストファイルを作成します。
sudo nano /etc/apache2/sites-available/collabora.conf
次のテキストをファイルに入れます。ドメイン名をCollaboraOnlineの実際のドメイン名に置き換えます。このサブドメインのAレコードを作成することを忘れないでください。
<VirtualHost *:80> ServerName collabora.example.com Options -Indexes ErrorLog "/var/log/apache2/collabora_error" # Encoded slashes need to be allowed AllowEncodedSlashes NoDecode # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of Collabora Online ProxyPass /loleaflet http://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet http://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery # Capabilities ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0 ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities # Main websocket ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws ws://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool http://127.0.0.1:9980/lool ProxyPassReverse /lool http://127.0.0.1:9980/lool </VirtualHost>
ファイルを保存して閉じます。 Apacheを使用してトラフィックをプロキシできるようにするには、いくつかのApacheモジュールを有効にする必要があります。
sudo a2enmod proxy proxy_wstunnel proxy_http
次のコマンドを使用して、この仮想ホストを有効にします。
sudo a2ensite collabora.conf
次に、Apacheを再起動します。
sudo systemctl restart apache2
Nginx
次のコマンドを使用して、UbuntuにNginxをインストールします。
sudo apt install nginx
CollaboraOnlineの仮想ホストファイルを作成します。
sudo nano /etc/nginx/conf.d/collabora.conf
次のテキストをファイルに入れます。ドメイン名をCollaboraOnlineの実際のドメイン名に置き換えます。このドメイン名のAレコードを作成することを忘れないでください。
server { listen 80; listen [::]:80; server_name collabora.example.com; error_log /var/log/nginx/collabora.error; # static files location ^~ /loleaflet { proxy_pass http://localhost:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass http://localhost:9980; proxy_set_header Host $http_host; } # Capabilities location ^~ /hosting/capabilities { proxy_pass http://localhost:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/lool/(.*)/ws$ { proxy_pass http://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/lool { proxy_pass http://localhost:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /lool/adminws { proxy_pass http://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } }
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、Nginxサーバーをリロードします。
sudo systemctl reload nginx
ステップ4:TLS証明書を取得してインストールする
それでは、Let'sEncryptから無料のTLS証明書を取得しましょう。次のコマンドを実行して、デフォルトのソフトウェアリポジトリからLet’s Encryptクライアント(certbot)をインストールします。
sudo apt install certbot
Apacheを使用する場合 Webサーバーの場合は、CertbotApacheプラグインもインストールする必要があります。
sudo apt install python3-certbot-apache
次に、次のコマンドを発行して、無料のTLS/SSL証明書を取得します。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com
Nginxを使用する場合 Webサーバーの場合は、CertbotNginxプラグインをインストールする必要があります。
sudo apt install python3-certbot-nginx
次に、Nginxプラグインを使用して、次のコマンドを実行して証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com
TLS証明書を正常に取得したことを示す次のテキストが表示されます。
最終ステップ:NextcloudをCollaboraOnlineに接続する
Nextcloudダッシュボードで、Apps
に移動します ページ。次に、Office & Text
に移動します セクションで、Collabora Online
を見つけます アプリで、Download and Enable
をクリックします ボタン。
(注 :Collabora Online - Built-in CODE server
という別のアプリがあります 、Nextcloudサーバーにインストールしないでください。)
このアプリを有効にしたら、NextcloudのSettings
に移動します ページ。 Collabora Online
をクリックします 左側のタブ。デフォルトでは、組み込みのCODEサーバーを使用しますが、これは本番環境での使用には適していません。 Use your own server
を選択する必要があります https://
を含むCollaboraOnlineのドメイン名を入力します プレフィックスを付けて、Save
をクリックします ボタン。
advance settings
、OOXMLをデフォルトの形式として設定することもできるため、ファイルはMicrosoftOfficeソフトウェアと互換性があります。
これで、Nextcloudの追加ボタン(+)をクリックすると、Nextcloudサーバーから直接Word、スプレッドシート、プレゼンテーションドキュメントを作成できるようになります。
loolwsd管理コンソールはhttps://collabora.example.com/loleaflet/dist/admin/admin.html
で入手できます。 。手順2で作成したユーザー名とパスワードを入力する必要があります。
トラブルシューティング
Nextcloudがcと言った場合 CollaboraOnlineサーバーへの接続を確立できません 、NginxサーバーがHAProxyなどのリバースプロキシの背後で実行されており、/etc/nginx/nginx.conf
に次の2行がある可能性があります 。
set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol;
これは、NginxがリバースプロキシからのHTTP接続を期待していることを意味します。 /etc/nginx/conf.d/collaboara.conf
を編集する必要があります ファイルを作成し、proxy_protocol
を追加します listenディレクティブに。
listen 127.0.0.1:443 ssl http2 proxy_protocol;
次に、/etc/hosts
を編集します ファイルを作成し、以下のように静的DNSレコードを追加します。 12.34.56.78
を交換します サーバーのパブリックIPアドレスを使用します。
12.34.56.78 collaboara.example.com
collabora.example.com
サーバーのパブリックIPアドレスを指す必要があります。 127.0.0.1を指さないでください。
また、loolwsdのログをチェックして手がかりを見つけることもできます。おそらく実行されていません。
sudo journalctl -eu loolwsd
そして、Webサーバーのログを確認してください。
- Apache:
/var/log/apache2/collabora_error
- Nginx:
/var/log/nginx/collabora.error