UbuntuServer22.04にNextcloudとNextcloudOfficeをセットアップ:2.Collabora Onlineのインストール

2023-03-06

ひとまずdocker-composeでNextcloudとOnlyOfiiceが使える事は確認できました。

Dockerの環境を変更する方法をわかっていないので、勉強も兼ねて実機にセットアップしようと思い参考サイトを見ながらインストールをしていましたが…動きません

ひとまず、Apache2で何とかNextcloudとNextcloudOffice(Collabora Online Development Edition:CODE)が動作するようになったインストール手順を残しておきます。

今回はNextcloudインストール後の、Collabora OnlineのインストールとSSLでNextcloud Officeと接続、動作完了までの記事になります。

Collabora Online Development Edition:CODEのインストール

クラウドコラボレーションサーバ「Collabora Online」を構築してみた(3) を参考に、Collabora Onlineをインストールします。

cd /usr/share/keyrings
sudo wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg
sudo nano /etc/apt/sources.list.d/collaboraonline.sources
----記載内容----
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
----
sudo apt update
sudo apt install coolwsd code-brand

UubuntuServer 22.04で動作させるのでURIsを変更しています(バージョンを合わせないとインストールできませんでした)。

インストール自体は、上記のコピペですんなり終了すると思います。

 /etc/coolwsd/coolwsd.xmlの修正

管理用のユーザー名とパスワードを記述します。

<username desc="The username of the admin console. Ignored if PAM is enabled.">ユーザー名</username>
<password desc="The password of the admin console. Deprecated on most platforms. Instead, use PAM or loolconfig to set up a secure password.">パスワード</password>

CertbotでLet’s Encriptの証明書取得

Collabora Onlineの初期設定ではSSL接続が必須のため、Let’s Encriptで証明書を取得します。

自己署名証明書でも動作はするかもしれませんが、検証はできていません。

sudo apt install certbot python3-certbot-apache
sudo certbot --apache
----
#メールアドレスの入力
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
 cancel):有効な自分のメールアドレス
#利用規約の同意
省略:(A)gree/(C)ancel ←当然同意(A)
#メールアドレスの共有
We'd like to send you email about our work
 encrypting the web, EFF news, campaigns, and ways to support digital freedom.:(Y)es/(N)o ←どちらでも可
#証明書を取得するドメインの入力
Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):ドメイン入力
----

最後のドメインの入力は、Apacheで仮想ホストの設定ファイルを作っていればドメインを読み込んで確認されます。

Collabora Onlineの証明書設定

インストールされた証明書をCollabora Onlineで利用できるように設定します。

インストールと同様、クラウドコラボレーションサーバ「Collabora Online」を構築してみた(3) に書かれている通りに証明書ファイルをコピーして、権限を変更します。

*snapを使っていないので、証明書のディレクトリは修正しています。
cd /etc/coolwsd/
sudo cp /etc/letsencrypt/live/ドメイン名/cert.pem ./cert.pem
sudo cp /etc/letsencrypt/live/ドメイン名/privkey.pem ./key.pem
sudo cp /etc/letsencrypt/live/ドメイン名/fullchain.pem ./ca-chain.cert.pem
sudo chown cool:cool *.pem

内部ネットワークからの接続設定(必要なら)

内部ネットワークで使う場合は、必要に応じて名前解決ができるようにDNSサーバーの設定やhostsファイルを修正して下さい。

Nextcloudからの接続

NextcloudからはNextcloud OfficeのアプリでCollaboraに接続するため、まずはアプリをインストールします。

インストール後は、「管理」 – 「Nextcloud Office」からサーバーのドメインとポートを入力します。

動作確認

Officeファイルをブラウザ上で開くことができれば、正常に動作しています。

もちろん、スマートフォンでも動作します。

PCと違い、編集する場合は画面右下のボタンを押すと編集画面に変更されます(開いただけでは表示のみ)。

見切れていますが、右下の赤丸で囲んだところが編集ボタンになります。

編集画面

編集もできますが、正直使いやすいとは言えません…。

後、外部から接続する場合は必要に応じてルータのポートを開放してください(デフォルトは9980ポート)。

APIで内部的に接続する場合は不要かもしれませんが、この手順でインストールした場合は直接9980ポートでアクセスしていたので、ポートを開放しないと接続できませんでした。

Wordファイルを簡単にテストしたところ、テキストだけファイルは問題ありませんでしたが、画像やテキストボックスを使ったファイルはレイアウト崩れが起きていました。

テキストボックスのレイアウト崩れ

一通りの操作は問題なくできますが、Microsoft Officeと完全な互換性はありません。

フォントも変わるため、レイアウトにこだわる書類をCollaboraで編集するのは避けた方がよさそうです。

おまけ:httpで使う場合

閉じたネットワーク内だけで利用したい等の理由で、SSL接続が必要ない場合はhttpでの接続も可能です。

ただし、その場合はNextcloudもhttpで接続する必要があります。

 /etc/coolwsd/coolwsd.xmlの修正

SSL settingsのセクションで、https接続への強制を「false」に変更します。

<ssl desc="SSL settings">
        <!-- switches from https:// + wss:// to http:// + ws:// -->
        <enable type="bool" desc="Controls whether SSL encryption between coolwsd and the network is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable."default="true">false</enable>

これで、nextcloudからhttpで接続できるようになります。

まとめ

以上が、Ubuntu Server 22.04にNextcloudとCollabora Onlineをインストールする手順です。

基本的にさくらのナレッジで公開されている手順に沿って、多少の修正を加えただけになります。

貴重な情報、感謝しています。

DockerやSNAPを使ったインストールは問題が起きなければ手軽に導入できますが、管理に慣れていないとトラブルが起きた時に対処しづらいため、今回はaptだけでインストールしています。

Nextcloud自体は他にも試してみたので、また情報を公開していきます。