Raspberry PiでNextCloud
少し前に昔から撮り溜めたDVを動画変換サービスでMP4にしてもらったので家族との共有したかったのですが、 放置していました。 サイズが大きくクラウドベースのストレージだと現実的には共有が難しいので、家庭内にRaspberry Piでサーバーでも立てることにしました。
Raspberry Piの購入
Raspberry Pi 5が日本でも購入できるようになったばかりですが、 そんなにヘビーに使うわけでもないのでRaspberry Pi 4とケースを適当に購入しました。
本体が届いたら、Raspberry Piの公式サイトから macOS用のImagerをインストールして、余っていたMicro SDカードにイメージを焼きます。
Raspberry Pi と NextCloudのセットアップ
Raspberry Pi本体の設定
最初はRaspberry Piにディスプレイとキーボード、マウスを接続して設定しましょう。
GUIが立ち上がっているので、PreferenceからSSHを有効にします。GUIが立ち上がっていなければ、
sudo raspi-config
で設定画面が起動します。
SSHを有効にしたらMacのターミナルからssh hogehoge@192.168.1.34
などとしてログインします。
hogehoge
はイメージを焼くときに設定した管理者のIDです。
まずは、OSのアップデートをしましょう。
sudo apt update -y sudo apt upgrade -y
念のためIPアドレスの確認をします。
ifconfig
次に面倒なので、固定IPアドレスに設定します。
sudo vi /etc/dhcpcd.conf
で設定ファイルを編集します。
次の例は有線LANで接続している場合で、IPアドレスなどは自身の環境に従って読み替えてください。
interface eth0 static ip_address=192.168.1.34/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.34 8.8.8.8
外付けディスクの設定
余っていた外付けHDDを使います。外付けSSDは相性なのか認識されませんでした。
# 外付けHDDが認識されているか確認します。 sudo fdisk -l Disk /dev/sda: 2.73 TiB, 3000558944256 bytes, 5860466688 sectors Disk model: Elements 25A1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 91EB8536-D584-4815-8365-37C3E2B6C7CE Device Start End Sectors Size Type /dev/sda1 2048 5860464639 5860462592 2.7T Linux filesystem # ファイルシステムの構築 # dコマンドで既存の区画を削除し、nコマンドで新規にファイルシステムを作成します。 sudo fdisk /dev/sda # フォーマット sudo mkfs.ext4 /dev/sda1 # autofsインストール sudo apt install autofs # USB接続ストレージは/mediaディレクトリにマウントしようと思います # /etc/auto.master.d/usb.autofsファイル作成 echo "/media /etc/auto.usb" | sudo tee /etc/auto.master.d/usb.autofs # /etc/auto.usbファイル作成 echo "hdd1 -fstype=ext4,rw :/dev/disk/by-uuid/"`sudo blkid /dev/sda1 | grep -o '\sUUID=\"[0-9a-f\-]*\"' | grep -o '[0-9a-f\-]*'` | sudo tee -a /etc/auto.usb # autofsサービス有効化 sudo systemctl enable autofs --now # 再起動して設定変更を反映 sudo reboot # 再起動後確認 ls /media/hdd1 df -l Filesystem 1K-blocks Used Available Use% Mounted on udev 1669488 0 1669488 0% /dev tmpfs 388432 1320 387112 1% /run /dev/mmcblk0p2 60765468 5642424 52016360 10% / tmpfs 1942148 140 1942008 1% /dev/shm tmpfs 5120 16 5104 1% /run/lock /dev/loop3 36096 36096 0 100% /snap/snapd/20674 /dev/loop0 95232 95232 0 100% /snap/core/16578 /dev/loop1 50304 50304 0 100% /snap/core18/2810 /dev/loop2 303232 303232 0 100% /snap/nextcloud/40247 /dev/mmcblk0p1 522232 75042 447190 15% /boot/firmware tmpfs 388428 40 388388 1% /run/user/1000 /dev/sda1 2883097784 48894772 2687675064 2% /media/hdd1
NextCloudインストール
次のような手順です。
# snapのインストール sudo apt install snapd # Snap Core のインストール sudo snap install core # NextCloudインストール sudo snap install nextcloud # NextCloud起動 sudo snap start nextcloud # NextCloudが/mediaにアクセス出来るよう設定 sudo snap connect nextcloud:removable-media # データディレクトリをコピー sudo cp -r /var/snap/nextcloud/common/nextcloud/data /media/hdd1/nextcloud_data sudo ls -al /media/hdd1/nextcloud_data sudo vi /var/snap/nextcloud/current/nextcloud/config/config.php
この状態でvi
でconfig.php
が開かれているので、
datadirectory
の設定を/media/hdd1/nextcloud_data
に変更します。
修正が終わったら sudo reboot
で再起動します。
まとめ
今回は自宅内での使用しか想定していないので自宅外から使用するための設定など行っていませんが、 意外に簡単に導入できました。
ここからはNextCloud上で管理者作っての設定となります。 NextCloudは単にファイルサーバーでなく、動画などもブラウザ経由ですが閲覧できるので便利です。
NextCloudの使い方を極めたら、またまとめたいと思います。