前回紹介した,NextCloud+CloudBeatsによるストリーミング再生環境のうち,NextCloudの構築方法を記載します.
0. 環境
- H/W:Raspberry Pi 4B 8GBRAM
- OS:Ubuntu 20.04 LTS 64bit
1. snapとNextCloudのインストール
以下のコマンドでインストールします.
sudo apt update
sudo apt install snapd -y
sudo snap install nextcloud
snap changes nextcloud # インストールが成功したか確認
2. 管理アカウントとポート番号の設定
管理者のユーザー・パスワードおよびポート番号を変更します.ポート番号はなんでもいいのですが,私の自宅の環境では外部から標準的なポートでのアクセスできなかったので,使えるポート範囲の中から選びました.
sudo nextcloud.manual-install user password
sudo snap set nextcloud ports.http=12345 ports.https=23456
3. SSL化
導入したNextCloudをSSL化(HTTPS)対応します.SSL化の手段は,①セルフサイン証明書を使う方法,②Let's encryptを使う方法があります.
- ①セルフサイン証明書(オレオレ証明書)を使う場合は以下をすれば終わりです.ただしブラウザによって警告が出たり,アプリによってはファイルダウンロードできなかったりします.そのため,今回のように外部公開する場合には向きませんし,CloudBeatsではセルフサイン証明書だとファイルダウンロードできませんでしたので,この方法は使えません.
sudo snap run nextcloud.enable-https self-signed
- ②Let's encryptにより証明書を発行する場合,ポート80番か443番が開けれてWAN側からアクセス可能であれば,以下のコマンドだけで済みます.
sudo nextcloud.enable-https lets-encrypt
私の場合,②Let's encryptを使いたかったのですが80番や443番が使えませんでした.このような場合,DNS認証でLet's encryptの証明書を取得し,証明書ファイルをカスタムインポートすることで対応可能です.詳細は次回に記載します.
4. アクセス可能IPアドレス・ドメイン名追加
外部からアクセス可能なIPアドレス・ドメイン名を指定します.IPアドレスには,NextCloudをインストールしたRaspberry PiのローカルIPアドレスを,ドメイン名には,WAN側から自宅のIPアドレスを参照できるドメイン名を記載します.私の場合,MyDNSというDDNSサービスのドメインを取得していましたので,それを記載しておきます.
sudo nextcloud.occ config:system:set trusted_domains 1 --value=XXX.XXX.XXX.XXX
sudo nextcloud.occ config:system:set trusted_domains 2 --value=xxxx.mydns.jp
sudo nextcloud.occ config:system:get trusted_domains # 確認
5. ポート開放
さらに,Raspberry Piに外部からアクセスするため,ファイアウォールのうち2.で指定したポートを開けておきます.
sudo ufw allow 12345/tcp
sudo ufw allow 23456/tcp
sudo ufw status numbered # 許可したポート一覧を見る
6. 保存ディレクトリ変更
ここまで設定出来たら,動作を確認するため,ローカルネットワークの別PCから,"http://[IPアドレス]:12345"および"https://[IPアドレス]:23456"にアクセスしてみましょう.NextCloudの画面が表示されればOKです.
無事動作が確認出来たら,以下の手順で保存ディレクトリを設定します.NextCloudのdataディレクトリは"/var/snap/nextcloud/common/nextcloud/data"にユーザー毎に作成されるので,保存容量が限られてしまいます.
- 2. で設定した管理者アカウントでログイン
- アプリからExternal storage supportを有効にする
- 設定に"外部ストレージ"という項目が現れるので,ストレージ設定を追加する
追加したストレージに音楽ファイルを置くか,もともと音楽ファイルを置いてあったストレージを外部ストレージとして追加すれば,NextCloud側のセットアップは完了です.これだけでもWEBブラウザからフォルダ参照して楽曲のダウンロード・再生自体をすることは可能になりますが,GooglePlayMusicのようなIFでの再生を実現するため,CloudBeatsを使います.
参考サイト
- ラズパイでNextCloudサーバを動かす | ラズパイ好きの日記
- Ubuntu 20.04にNextcloudをインストールして設定する方法 | DigitalOcean
- Ubuntu 20.04 LTS : NextCloud : 外部ストレージを利用する : Server World
- Raspberry Pi4で簡単おうちNextcloud外部公開まで - Qiita