TrueNAS SCALEにNextcloudをインストールする【自作NAS】

インターネット

本記事では、TrueNAS SCALEにNextcloudをインストールする方法を画像付きで詳しく紹介します。

はじめに

本記事では、TrueNAS SCALEにNextcloudをインストールする方法を画像付きで詳しく紹介します。また、インストール時の一部のエラーについても対応方法を記載しました。

NASとは

NASとは、Network Attached Storageの略でネットワーク経由で複数のユーザーやデバイスからアクセス可能なファイル保存専用のストレージシステムです。

TrueNASとは

TrueNASとは、オープンソースで作られたNAS用のOSです。

TrueNASの概要や、インストール方法については、以下の記事を参照ください。

Nextcloudとは

Nextcloud(ネクストクラウド)は、オープンソースで提供されているセルフホスト型のクラウドストレージサービスです。Google DriveやDropboxのようにファイルの保存・共有・同期ができるだけでなく、サーバーを自分で用意するためデータの管理をすべて自分自身でコントロールできるのが大きな特徴です。

ユーザー管理、外部アクセス、写真バックアップ、カレンダー・ToDo・メモなどのアプリ連携にも対応しており、家庭内のNAS用途から小規模オフィスまで幅広く利用されています。
また、Web UI が充実しているため、ブラウザだけでファイル操作が可能です。

TrueNAS SCALEと組み合わせることで、ストレージの冗長化・スナップショット・共有管理といったNASの強力な機能を活かしつつ、自宅専用の“プライベートクラウド” を構築することが可能です。

Nextcloudをインストールするには?

TrueNASのWEB UI上で、インストールを行うことが可能です。

TrueNASのWEB UIにログインする

TrueNASのアドレスにアクセスし、usernameとpasswordを入力し、Log Inをクリックします。

Nextcloudをインストールする場所(Dataset)を作成する

TrueNAS上にNextcloudをインストールしますが、Nextcloudをインストールする場所もTrueNASのDataset上になります。

このDatasetは、既存のものではないアプリ(Nextcloud)専用のDatasetが必要で、かつアクセス設定を適切に行わないとインストールが失敗してしまい、ハマります。

今回は、storage01上に新しいNextcloud用のDatasetを新たに作成します。

TrueNAS WEB UIの画面左側のメニューからDatasetsをクリックします。

storage01のドライブを選択し、画面右側のAdd Datasetをクリックします。

ポップアップ画面で、name欄に任意のDataset名を入力します。アプリ名が分かりやすくてよいと思いますので、今回はnextcloud、Dataset PresetをAppsにし、Saveをクリックします。

作成したDatasetができたら、それをクリックして選択したまま、画面右下のPermissionsのEditをクリックします。

Nextcloud用のDatasetは、権限はrootだけ、ACLがない状態、が正しい状態です。

そのように設定していきます。初めに、Strip ACLをクリックします。

ポップアップが出てくるので、Remove the ACL…にチェックを入れて、Strip ACLsをクリックします。

Datasetの設定に戻ってくるので、再度、nextcloudのDatasetのPermissionsのEditをクリックします。

userとgroupがrootになっていて、Accessmodeが、UserとGroupにはすべてチェックが入り、Otherはすべてのチェックが外れている状態でSaveをクリックします。

画面右側のpermissionsで、先ほど設定したUserとGroupにはRead/Write/ExecuteとなっていてOtherはNoneになっていることを確認します。

Nextcloudをインストールする

TrueNAS WEB UIの画面右側のAppsをクリックし、Discover Appsをクリックします。

Search欄にnextcloudと入力し、結果のnextcloudをクリックします。

Installをクリックします。

設定を入力する画面になるため、設定していきます。

  • Application name:任意のものを入れます。こだわりがなければnextcloudでよいです
  • Version:任意のものを選択します。これもこだわりなければ最新でよいでしょう

timezoneは自分の国と地域を指定します。今回はAsia Tokyoを選択します。

  • Timezone:どこでもよいが、自分の国と地域で、今回はAsia Tokyoを選択します。
  • Postgres Image:Postgres 17しか選択できないのでそのまま。
  • Admin User、Admin Password:
    Nextcloud用のユーザー名とパスワードを設定します。これを設定しないと、インストールできません。
  • APT Packages:APTをインストールする際はチェックします。よくわからない場合は無視します。
  • Tesseract Language Codes:APT Packagesでocrmypdfを選択していない場合は設定不要。
    TesseractはPDFOCRツールですので、変換される言語を指定するものみたいです。
  • Imaginary:画像プレビュー生成用の速度向上に役立つ、と書いています。必要ならチェック。
  • Host:ここにはTrueNASのWEB UIのIPアドレスを入れます。

  • Data Directory Path:デフォルトの/var/www/html/dataでよい
  • Redis Password、Database Password:ここは設定しないとインストールできないので入力します。
  • 後の設定:デフォルトのまま

  • Network Configuration:すべてデフォルトのまま

  • Storage Configuration:Nextcloud User Data StorageをHost Pathにし、Host Pathを先ほど設定したDatasetにする。

  • Labels Configuration
  • Resources Configuration
    いずれもデフォルトのまま

Installをクリックします。Installがクリックできないときは、Admin User、Admin Password、Redis Password、Database Passwordの少なくとも1つが空なので、設定します。

インストールが行われます。

しばらくすると、Appsの画面に戻り、Runningになります。

正しく動作していると、Workloadsは上記の画像のように、以下になります。

  • nextcloud:Running
  • postgres:Running
  • postgres_upgrade:Exited
    →postgresがupgradeされるときだけRunningになる。
  • redis:Running
  • permissions:Exited
    →Nextcloud のデータフォルダに初期パーミッションを設定するためのジョブなので、起動するときだけRunningになる。

インストールに失敗する

以下の画面のように、インストールに失敗したり、いつまでたってもNextcloudがStartingのままで、ステータスがRunningにならないときは、DatasetのPermissionの設定が誤っているか、インストール時のStorage Configurationの設定が間違っていることがほとんどなので、見直してください。

Nextcloudにアクセスする

WEB ブラウザから、以下のアドレスでアクセスします。

http://TrueNASのアドレス:インストール時に設定したNetwork ConfigurationのPort Number(デフォルト30027)

正しくインストールできていると、以下のようにログイン画面が表示されるので、インストール時に設定したUserIDとパスワードを入力します。

信頼できないドメインを介したアクセスと出る場合

ポート指定でURLを入力して入ろうとすると、ログイン画面が出ず、以下のような、「信頼できないドメインを介したアクセス」と表示される場合は、インストール時のhosts設定が正しく行われないです。

これは、Nextcloud があなたのアクセスしてきた URL(IPアドレス/ホスト名)を
信頼できるドメインとして登録していないために起こります。

具体的には、config.phpIPアドレス/ホスト名を追加する必要があります。

TrueNASのWEB UIにログインし、画面右側のAppsをクリックし、画面右側のWorkloadsからnextcloudの右側のShellボタンをクリックします。

Shellが起動したら、以下を入力します。

php occ config:system:get trusted_domains

入力すると、以下のような出力が行われます。

0 => 127.0.0.1
1 => localhost
2 => nextcloud

ここに、TrueNASのIPが入っている必要があります。以下のコマンドを入力します。

php occ config:system:set trusted_domains 追加する番号 --value="TrueNASのIPアドレス"
  • 追加する番号:上記でいうと、0,1,2は既にあるので、3となります。
  • TrueNASのIPアドレス:WEB UIのhttp://以降のIPアドレスがTrueNASのアドレス。

入力後、以下のようなメッセージが出ていれば成功です。

System config value trusted_domains => 番号 set to string IPアドレス

再度、以下のコマンドを入力し、先ほど入力したアドレスが出ていれば成功です。

php occ config:system:get trusted_domains
0 => 127.0.0.1
1 => localhost
2 => nextcloud
番号 => IPアドレス

まとめ

TrueNASにNextcloudをインストールする方法と、エラー時の対応方法について、画像付きで紹介しました。

コメント

タイトルとURLをコピーしました