GNU/Linux >> Linux の 問題 >  >> Ubuntu

DockerなしでUbuntu上のNextcloudとCollaboraOnlineを統合する

このチュートリアルでは、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

Ubuntu
  1. UbuntuにDockerでWordPressをインストールする方法

  2. Ubuntu14.04でAlfrescoをONLYOFFICEOnlineEditorと統合する方法

  3. Ubuntu20.04でCollaboraOnlineをNextcloudと統合する方法

  1. Ubuntu16.04LTSでDockerfileを使用してDockerイメージを作成する方法

  2. UbuntuでRancherを使用してDockerコンテナを管理する方法

  3. UbuntuでDockerを使用してONLYOFFICE8.9.0をインストールする方法

  1. Dockerを使用したLEMPスタックのDocker化-Ubuntuで作成

  2. Ubuntu20.04LTSにDockerを使用してGitLabをインストールする方法

  3. UbuntuでONLYOFFICEエディターをMoodleと統合する方法