Ubuntu Weekly Recipe

第754回ownCloud Infinite Scaleを小スケールデプロイする[ローカルデプロイ編]

今回は新たに生まれ変わったownCloudである、ownCloud Infinite Scaleを簡単に使用する方法を紹介します。

ownCloudってなんだっけ

ownCloudという名称には、なじみがあるでしょうか。久しぶりに聞いたという場合もあれば、初耳という場合もあるでしょう。

というのも、近年特にUbuntuユーザーにはownCloudはすっかり縁遠いものになっていました。

本連載の過去記事を振り返ると、第231回『ownCloudで自分専用クラウドストレージ』というタイトルでした。今から10年以上前の記事です。

そこでも説明されていますが、ownCloudは「オープンソースのファイル共有サーバーアプリケーション」です。当時としてはかなりエポックメイキングなものでした。しかしその後Nextcloudとしてフォークされ、Snapパッケージで提供されました。これがまたとても使い勝手のいいもので、あくまで筆者の個人的な感想ではあるもののSnapパッケージの最高傑作といってもいいくらいのものです。本連載でも第476回を始め数回紹介しています。古い記事であり、今となっては(特にクライアント部分は)役に立ちません。クライアントに関しては素直にDebianパッケージ版を使用しましょう。第703回で取り上げたNASは、現在も使用中です。

ownCloudとそのフォークであるNextcloudはPHPで書かれ、多数のアドオン(アプリ)があるのが特徴です。Snapパッケージ版Nextcloudはアップデートを自動的に行うので、⁠アップデートがうまくいく限りではという制限付きですが)メンテナンスが楽ですし、アプリを組み合わせることによってコラボレーションツール(昔風に表現するとグループウェア)的な使い方ができます。

近年はNextcloudのエコシステムがすっかりできあがっており、第610回で紹介したNextcloud TalkなどはownCloudでは実現されませんでした。

ownCloudもこのような状況で手をこまねいていたわけではなく、乾坤一擲の手を打ちます。PHPではなくGo言語で書き直すという決断です。

直感的には、Go言語で書かれるということはシングルバイナリで動作するので、アップデートが簡単になります。また高速化も図れるでしょう。一方、PHPで書かれたアプリは動作しなくなるのでエコシステムをまるごと捨てることにもなります。

Go言語で書かれたownCloudはownCloud Infinite Scaleという名称で、昨年11月30日にリリースされました。

「ownCloud Infinite Scale」という名称からは、大規模運用を意図しているのかという印象がありますが、自らSmall-Scale Deployment with systemdというその名に反する(?)ドキュメントを公開しています。

前置きが長くなりましたが、今回は原則としてこのドキュメントに従ってownCloud Infinite Scaleをデプロイしていきます。以後ownCloud Infinite Scaleは長いのでoCISと略します。

ローカルデプロイ編

まずは練習として、手元の環境にoCISをデプロイします。場所はどこでも構いません。筆者はブリッジネットワークに設定したVirtualBoxの仮想マシン(Ubuntu Server 22.04 LTS)にデプロイしましたが、LXDやDockerといったコンテナでも構いません。もちろん今お使いのUbuntuも、不要になった場合の削除方法がわかっているのであればデプロイ先にしてもいいでしょう。

なおデプロイ先についての差異については触れませんが、Ubuntu Serverをそのまま使用するのであればavahi-daemonパッケージをインストールしておくことを強くおすすめします。

今回は本記事の掲載時点で最新版の2.0.0を使用しますが、もっと新しいバージョンがリリースされているかもしれません。事前にダウンロードサーバーで最新版を確認しておくことをおすすめします。今回はAMD64版を使用しますが、他にもさまざまなアーキテクチャ向けのバイナリが用意されていることがわかります。またmacOS版があることもわかります。

また前提として、設定ファイルは/etc/ocisに、共有ファイルは/var/lib/ocisに配置します。コンテナーを使用する場合は、より適切な場所に変更するといいでしょう。

ではデプロイを開始しましょう。次のコマンドを実行してください。

$ sudo wget -O /usr/local/bin/ocis https://download.owncloud.com/ocis/ocis/stable/2.0.0/ocis-2.0.0-linux-amd64
$ sudo chmod +x /usr/local/bin/ocis
$ sudo useradd --system --no-create-home --shell=/sbin/nologin ocis
$ sudo mkdir -p /var/lib/ocis
$ sudo chown ocis:ocis /var/lib/ocis
$ sudo mkdir -p /etc/ocis
$ sudo touch /etc/ocis/ocis.env
$ sudo chown -R ocis:ocis /etc/ocis

何をしているのかは極めてわかりやすいですが、oCISのバイナリを/usr/loca/bin/以下にダウンロードし、ocisユーザーを作成して設定ファイルと共有ファイルを置くフォルダーを作成し、それぞれパーミッションを変更しています。

さらに、肝となる設定ファイルの/etc/ocis/ocis.envを作成しています。次はこのファイルに追記します。

$ sudo editor /etc/ocis/ocis.env

OCIS_INSECURE=true
PROXY_HTTP_ADDR=0.0.0.0:9200 
OCIS_URL=https://example.local:9200 

OCIS_LOG_LEVEL=warn

OCIS_CONFIG_DIR=/etc/ocis
OCIS_BASE_DATA_PATH=/var/lib/ocis

設定ファイルもまたわかりやすいので、解説は不要でしょう。OCIS_URIは実際にアクセスするURLを記述します。ここだけではお手元の環境にあわせて変更してください。

いよいよ初期化します。次のコマンドを実行してください。

$ sudo -u ocis ocis init --config-path /etc/ocis

OCIS_CONFIG_DIRの値を引数にすると、そこにあるocis.envの内容を元に初期化を行います。ここで重要なのは、ユーザー名(admin)とパスワードが表示されることです。忘れずにどこかに控えておいてください。一例として、次のような内容です。

=========================================
 generated OCIS Config
=========================================
 configpath : /etc/ocis/ocis.yaml
 user       : admin
 password   : aH=IKe&RavoiPawuCxThB0=RgBLb*4zr

oCISはsystemdで自動起動すると便利なので、そのように設定します。次のコマンドを実行してください。

$ sudo systemctl edit --force --full ocis.service

/etc/systemd/system/ocis.serviceが編集できるようになります。内容は以下のとおりにしてください。もちろん設定ファイルの置き場所を変更した場合はそれに合わせてください。

[Unit]
Description=OCIS server

[Service]
Type=simple
User=ocis
Group=ocis
EnvironmentFile=/etc/ocis/ocis.env
ExecStart=/usr/local/bin/ocis server
Restart=always

[Install]
WantedBy=multi-user.target

続けて次のコマンドを実行して、systemdでoCISを起動してください。

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now ocis
$ sudo systemctl restart ocis

これでデプロイしたホスト名とポート(今回の例だとhttps://example.local:9200にアクセスし、提示されたユーザー名とパスワードを入力してログインします。

図1 GNOME Web(Epiphany)でデプロイしたoCISにアクセスした例。「リスクを許容して実行」をクリックする
図1

/etc/ocis/ocis.envOCIS_URLを見てもわかるとおり、HTTPSでのログインが必須です。もちろん自己署名証明書となるため、Webブラウザーは警告を表示します。これを突破するとログインフォームが表示され、生成されたユーザー名(admin)とパスワードを入力してログインします。

図2 表示されたログインフォーム
図2

ちょうどキリがいいので今回はここまでとします。⁠VPSデプロイ編」に続きます。

図3 oCISにログインしたところ。左ペインに表示されている「Spaces」が気になる
図3

おすすめ記事

記事・ニュース一覧