TrueNASにNextcloudプラグインを入れる

2022-10-06
  • B!

Nextcloud TrueNAS サーバ構築

TrueNASにデジカメで撮った写真と動画のバックアップをしている。

そのようにNASに写真と動画を保存していると、内容をwebギャラリーでちょっと確認するようなことができれば便利そうだなと考えるのが自然の流れ。

そんなわけで、TrueNASにNextcloudプラグインを入れてたのでインストールの状況とより快適に大量の写真を扱えるようにカスタマイズも進めていくことにする。

Nextcloudの特徴

  • GNU AGPL v3+のオープンソース
  • 有償サポート版もある
  • NASの機能が基本で、格納したファイルをWeb UIで閲覧したり共有する機能に強い
  • iOSアプリやmacOS, PCアプリがあり、DropBoxやOneDriveのような使い方ができる
  • Microsoft Teamsのようなグループウェア機能もある

グループウェアとしての機能が盛りだくさんであるので、個人で使う場合は必要な機能だけ有効にして使用した方がサーバリソースを節約できる。

インストール - TrueNASのプラグインとして

今回はTrueNASのプラグインとしてインストールした。TrueNASのプラグインとは要するにFreeBSDのJail環境でもう一つサーバを稼働させるというもの。

ワンクリックでインストール

NextcloudはTrueNASのプラグインにはじめから登録されているので、Plugins管理画面からインストールボタンを押すだけで作業は完了する。
インストール時の設定確認画面では、サーバに割り当てる固定IPアドレスだけ設定しておく。

インストールが始まったら、完了まで10分以上じっくり待つ。進捗50%のpy38-cerbotのインストールで進捗が遅くなり、さらに最終段でMySQL起動に時間がかかり進捗が90%で止まったように見えるががじっくり待てばセットアップは完了する。

Web UIでインストールをじっくり待つのは心臓に悪い。万が一セッションが切れたら残ったインストールプロセスはどうなるんだろうかと考えると、、、プラグインはSSHシェルからインストールコマンドを叩いた方が安心かもしれない。

インストール完了後にNextcloudの管理者パスワードとバックエンドで使用しているMySQLのDB adminのログインパスワードがWeb UI上に表示されるのでメモっておく。なお、このメモはJailの/root配下にテキストファイルで格納されているので、メモを取り損ねても心配しなくても良い。

初期設定とNextcloudの起動

最低限の初期設定を済ませてからNextcloudを起動する。
NextcloudのJailのシェルに入って設定を行う。TrueNASのシェルからJailへはroot権限のままJailのディレクトリへ入る方法もあるが、正式には次のような手順でsudoで入る方が安全だ。
% sudo iocage console (jail名)
sudoコマンドのインストール方法はこちら。
TrueNASやJailでsudoを使えるようにする

HTTPSではなくHTTPで使用する

今のご時世もあり、デフォルトではHTTPSで起動する。しかし自宅LAN用であるので今回はHTTPで運用する。HTTPで起動したい場合の注意点は、ついうっかりデフォルトのHTTPSの状態でNextcloudを起動している状態でNextcloudのweb画面をブラウザで開かないこと。ブラウザがHSTSリダイレクトを記憶してしまい、解除する手順がそれなりに面倒なことになる。

Webブラウザで開く前に、httpdに使われているnginxまわりの設定を変更し、HTTP起動にする
以降のコマンドはNextcloudのJailのコンソールに入ってからの作業となる。
ファイルを新規作成。
#vi /root/jail_options.env

次のように1行書く
ALLOW_INSECURE_ACCESS=true
nginxのconfig書き換えスクリプトをいちど動かしてからhttpで起動する。上記の初期設定ファイルを見てsync-confというサービス(実態はスクリプト)がnginxがconfをHTTPSではなくHTTP動作になるように書き換える。
# service sync-conf restart
# service nginx restart
# cat /usr/local/etc/nginx/conf.d/nextcloud.conf
NextcloudのPHPスクリプトの設定を行う。1箇所だけ設定してあげないとセキュリティ対策の機能が発動してログインできない。自分のURLとなるIPアドレスかホスト名を記載する。
# vi /usr/local/www/nextcloud/config/config.php
 
'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => '192.168.0.123’,
  ),
以上で、HTTPで動作するNextcloudのWeb画面にアクセスできるようになる。
次はNextcloud本体の詳細設定やカスタマイズを行う。