Raspberry PiでNextCloud

カテゴリー:  Tech タグ:  raspberry-pi

Raspberry Pi

少し前に昔から撮り溜めた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

この状態でviconfig.phpが開かれているので、 datadirectoryの設定を/media/hdd1/nextcloud_dataに変更します。 修正が終わったら sudo rebootで再起動します。

まとめ

今回は自宅内での使用しか想定していないので自宅外から使用するための設定など行っていませんが、 意外に簡単に導入できました。

ここからはNextCloud上で管理者作っての設定となります。 NextCloudは単にファイルサーバーでなく、動画などもブラウザ経由ですが閲覧できるので便利です。

NextCloudの使い方を極めたら、またまとめたいと思います。

コメント

Comments powered by Disqus