満月紀行

備忘録

USB 外付け HDD な Raspberry Pi で Nextcloud

Raspberry Pi 3 Model B+ を購入し、 USB 外付け HDD に Fedora 29 をインストールして Nextcloud を使えるようにしたのでそのメモです。

この記事について

  • microSD なしで Raspberry Pi 上に Nextcloud を構築します。
    • そのために、 USB 外付け HDD を使用します。
    • 外部には公開せず、宅内でのみ使用します。
  • Markdown で書いてるんですが、
    • ←これ白丸になるはずが黒丸ですよね。ネストできてるんでしょうか。
  • 間違いがあればコメント等で連絡ください。

参考にしたサイト一覧

大変わかりやすくまとまっており、一度目を通すことをおすすめします。 denor.daa.jp denor.daa.jp denor.daa.jp

Fedora 29 Server のインストール

  • 32 bit OS だと扱えるファイルサイズに制限があるようです。
  • Raspbian は 32 bit しかないので、今回は Fedora を使うことにしました。

    USB 外付け HDD に Fedora 29 Server をインストールする

  • イメージファイルを Fedora の公式サイトからダウンロードします。
    • aarch64 Images の Raw イメージを選択してください。 getfedora.org
  • xz ファイルなので、 7zip かなんかで解凍します。
    • 7 GB くらいの Raw ファイルができあがります。
    • Windows には一眼レフカメラ等の RAW 画像ファイルと認識されているようです。
  • HDD に焼きます。初めて Etcher を使いましたが大変わかりやすい UI でした。
    • Windows/macOS/Linux に対応しています。Linux の人は dd でも。
    • HDD などの大きいストレージに焼こうとすると「本当にいいのか?」と確認されますが本当にいいので Continue します。
      f:id:tenkanomanuke:20190317172559p:plain
      Etcherの画面。左から順番にイメージファイルとドライブを選択しFlashボタンを押せばよく、わかりやすい。
  • Raspberry Pi に HDD を接続し、電源を入れます。
    • 電源ボタンはないのでケーブルを繋いだ瞬間に起動します。
    • CLI なのでキーボードとディスプレイだけ用意しておきましょう。

Fedora のセットアップ

  • 初期設定画面が出てきます。画面に従って設定しましょう。
    • 言語、タイムゾーン、ネットワーク、 root のパスワードの設定とユーザーの追加ができます。

ルートパーティションの拡張

  • fdisk -lしてみるとわかるんですが、このままでは HDD の内 5.8 GB 分しか使えません。以下のコマンドによりパーティションを拡張します。
# growpart /dev/sda 3
# pvresize /dev/sda3
# lvextend -l +100%FREE /dev/fedora/root
# xfs_growfs -d /

fedoraproject.org

  • SD カードの人はデバイス名が異なると思います。

ユーザーの設定

  • 初期設定のときにユーザーを追加しなかった人は追加しましょう。
    • wheel グループに追加します。何らかの方法でsudoできることを確認してください。
  • root でリモートログインできないようにします。/etc/ssh/sshd_configを書き換えます。
PermitRootLogin no
  • 以降は一般ユーザーで作業します。

Cockpit を使う

  • ログイン時画面の一番上に書いてありますが、 <Raspberry Pi の IP アドレス>:9090に他の PC のブラウザでアクセスすると、 Web コンソールを使うことができます。 IP アドレスが分からない時はifconfigしましょう。
  • 自動で用意され、ダッシュボード機能もありなかなか便利です。
  • 普通に root でログインできるんですよね。 SSH ではログイン禁止するよう教わったんですが、セキュリティ的にどうなんでしょう?
  • 以降は Cockpit の端末か SSH から作業します。ディスプレイとキーボードは片付けて構いません。
    f:id:tenkanomanuke:20190317191505p:plain
    Webコンソール・Cockpitの端末画面。割とレスポンスがいい。

dnf update

  • # dnf update しましょう。
  • 結構時間かかります。

Nextcloud のインストール

Snap のインストール

  • パッケージ管理システムです。 Snappy なのか Snaps なのかよくわかりません。
  • 依存関係のものをまとめて 1 つのパッケージにしているそうです。
  • # dnf install snapdでインストールします。

Nextcloud のインストール

  • # snap install nextcloudでインストールします。
  • コマンド 1 つで全てが揃います。
  • snap 版 Nextcloud などと呼ばれ、普通のものと区別されているようです。

ネットワークの設定

ファイアウォールの設定

  • 以下のコマンドを実行します。
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload

ホスト名の変更

  • /etc/hostnameを好きな名前に書き換えます。

IP アドレスを固定する

  • ルーターDHCP 固定設定機能を使い、 Raspberry PiMAC アドレスと適当な IP アドレスを設定しました。
  • または、/etc/sysconfig/network-script/ifcfg-eth0を編集します(有線LANの場合)。
    • この時、他のデバイスと被らないような IP アドレスにする必要があります。 DHCP の割り当て範囲を確認しましょう。
BOOTPROTO=static
IPADDR=<適当なIPアドレス>
NETMASK=255.255.255.0
GATEWAY=<デフォルトゲートウェイのアドレス>
  • 再起動します。

Nextcloud のセットアップ

  • http://<先ほど設定した適当なIPアドレス>にブラウザからアクセスします。
  • Nextcloud の青い画面が出ます。
  • 管理ユーザーのユーザー名とパスワードを設定します。
  • (しばし待ちます)
  • 画像のような画面が出れば成功です。お疲れさまでした。
    f:id:tenkanomanuke:20190317233530p:plain
    あなたの全データの安全な家
  • コンフィグファイルは/var/snap/nextcloud/current/nextcloud/config/config.phpにあります。 github.com

外部からアクセスしたい人は

本記事ではセキュリティについて考慮していません。 SSL 対応などが必要でしょう。