Raspberry Pi 4 に Home Assistant、 AdGuard Home、 OpenMediaVault をインストールする

created at: 2023-07-12

history

はじめに

先日 Raspberry Pi 4 を買って色々遊びました。
その中で Home Assistant、 AdGuard Home、 OpenMediaValut をインストールしたのでその手順をまとめます。

準備したもの

  • Raspberry Pi 4 Model B 8GB
  • microSDXC 128GB
  • HDD 1TB
  • HDD ケース

OS のインストール

Raspberry Pi Imager で Raspberry Pi OS Lite (64 bit) をインストールします。
設定で事前に SSH、ユーザー名、Wi-Fi の設定をしておきます。

準備

raspberrypi.local でアクセスします。
ユーザー名のパスワードは先程設定したものを入力します。
ssh [email protected]

IP アドレスを固定する

dhcpcd.confに固定したい IP アドレスを設定します。
sudo vi /etc/dhcpcd.conf
# dhcpcd.conf
interface eth0
static ip_address=192.168.0.41/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
設定したら sudo reboot で再起動して固定した IP アドレスで接続できるか確認します。
ssh [email protected]

Home Assistant

基本的に以下の手順に沿ってインストールします。
あとこちらの記事を参考にしました。

Docker をインストールする

curl -fsSL get.docker.com | sh

sudo usermod -aG docker pi # dockerにユーザーを追加

sudo reboot # 再起動

依存関係をインストールする

apt install \
  apparmor \
  jq \
  wget \
  curl \
  udisks2 \
  libglib2.0-bin \
  network-manager \
  dbus \
  lsb-release \
  systemd-journal-remote \
  systemd-resolved -y
私の場合 systemd-resolved がインストール出来なかったので省きました。

OS をインストールする

1.5.1 の部分は最新のバージョンに置き換えてください。
wget https://github.com/home-assistant/os-agent/releases/download/1.5.1/os-agent_1.5.1_linux_aarch64.deb

sudo dpkg -i os-agent_1.5.1_linux_aarch64.deb

appArmor を設定する

こちらを参考に設定します。
sudo vi /boot/cmdline.txt
末尾に以下を追加する。
apparmor=1 security=apparmor

Supervisor をインストールする

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

sudo dpkg -i --ignore-depends=systemd-resolved homeassistant-supervised.deb
先程 systemd-resolved をインストールしなかったため依存関係のエラーが出ます。
そのため以下の issue を参考に --ignore-depends=systemd-resolved を追加してインストールします。
無事インストール出来たら [IPアドレス]:8123 にアクセスして設定します。

HACS をインストールする

HACS を使うことで Store に無いサードパーティ製のプラグインをインストールできるようになります。
私は Alexa Media Player というコンポーネントを使ってます。

用途

まだあまり活用できていないのですが、各スマートデバイスで設定していたものを Home Assistant に集約して管理しています。
あとは Chromecast で毎朝 Youtube のニュースを流したり、予定の 5 分前に Alexa で知らせるようにしてみました。

AdGuard Home

DNS サーバとして使うことで広告をブロックすることが出来ます。
以下を参考にインストールします。
wget 'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_arm64.tar.gz'

tar -f AdGuardHome_linux_arm64.tar.gz -x -v

cd ./AdGuardHome/

sudo ./AdGuardHome -s install
インストールできたら [IPアドレス]:3000 にアクセスして設定します。

53 ポートの重複を回避する

systemd-resolved と重複していたので以下を参考に設定しました。

ダッシュボードの URL を変更する

デフォルトだと 80 ポートで起動するので、OpenMediaValut と重複してしまいます。
なので AdGuardHome.yaml を編集して 3000 ポートで起動するようにしました。
sudo vi ./AdGuardHome/AdGuardHome.yaml
http:
  address: 0.0.0.0:3000
  session_ttl: 720h

...

各デバイスで DNS を設定する

ルータの設定でカスタム DNS を設定すれば必要は無いのですが、私のルータでは出来なかったので各デバイスで設定しました。
Wi-Fi の設定に DNS の項目があるのでそこに IP アドレスを設定します。

OpenMediaVault

1TB の外付け HDD を接続して NAS を作りました。
大したデータを保存するわけではないので RAID は設定しません。

インストール

sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
インストール出来たら IP アドレスでアクセスしログインします。
初期ユーザー名は admin、パスワードは openmediavault です。
あとは HDD を登録してファイル共有を設定します。詳しい手順は割愛します。

用途

主に自炊した漫画を保存するのに使用してます。
iOS だと ComicShare というアプリが便利でした。

最後に

ラズパイを買ったのは初めてだったので少々苦戦しましたが、楽しかったです。
他にも色々出来ないか模索中です。