音楽サーバーとしてRaspberryPi4にNavidromeをインストールしてみる。
ncos1.hatenablog.com
1. Dockerのインストール
# システムの更新
sudo apt update && sudo apt upgrade -y
# Docker公式インストールスクリプト
curl -fsSL https://get.docker.com | sh
エラーした。
curl -fsSL https://get.docker.com | sh# Executing docker install script, commit: 2b32480025b223ebfddae9a3a8bef09027680f53 Warning: the "docker" command appears to already exist on this system.If you already have Docker installed, this script can cause trouble, which is why we're displaying this warning and provide the opportunity to cancel the installation.If you installed the current Docker package using this script and are using it again to update Docker, you can ignore this message, but be aware that the script resets any custom changes in the deb and rpm repo configuration files to match the parameters passed to the script.You may press Ctrl+C now to abort this script.
- sleep 20
- sudo -E sh -c apt-get -qq update >/dev/null
- sudo -E sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates curl >/dev/null
- sudo -E sh -c install -m 0755 -d /etc/apt/keyrings
- sudo -E sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" -o /etc/apt/keyrings/docker.asc
- sudo -E sh -c chmod a+r /etc/apt/keyrings/docker.asc
- sudo -E sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" > /etc/apt/sources.list.d/docker.list
- sudo -E sh -c apt-get -qq update >/dev/null
- apt_flags=-y -qq
- [ -n ]
- sudo -E sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin docker-model-plugin >/dev/null E: Sub-process /usr/bin/dpkg returned an error code (1)
検証のために実施していた既存のDocker関連パッケージが残っていた事が要因みたいなので、きれいに削除してから再インストール実行。
# 既存のDocker関連を削除
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin docker-model-plugin docker.io docker-doc docker-compose podman-docker
# 残骸を掃除
sudo apt autoremove -y
sudo apt autoclean
# 関連ファイルも削除
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo rm -f /etc/apt/keyrings/docker.asc
sudo rm -f /etc/apt/keyrings/docker.gpg
再実行
curl -fsSL https://get.docker.com | sh
完了
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the 'Docker daemon attack surface'
documentation for details: https://docs.docker.com/go/attack-surface/
================================================================================
# 現在のユーザーをdockerグループに追加(再ログインが必要)
sudo usermod -aG docker 現在のユーザー名
一度ログアウトして再ログイン。
または
newgrp docker
確認:
docker --version
docker compose version
2. ディレクトリの準備
mkdir -p ~/navidrome/data
# 音楽フォルダのパスをメモしておく(例: /mnt/usb/music や /home/pi/Music)
3. docker-compose.yml の作成
cd ~/navidrome
nano docker-compose.yml
内容
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000 # 通常のpiユーザーのUID:GID(idコマンドで確認)
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h # 1時間ごとにスキャン
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
# ND_DEFAULTLANGUAGE: ja # 日本語UIにしたい場合
volumes:
- ./data:/data
- /path/to/your/music:/music:ro # ← ここを実際の音楽フォルダのパスに変更(:roは読み取り専用)
はてなの仕様問題でコピペ実行時に不可視文字が混入するので、この下記コマンドを実行。
sed -i 's/\xc2\xa0/ /g; s/\xe3\x80\x80/ /g' docker-compose.yml
ポイントuser: 1000:1000 は id コマンドで自分のUID/GIDを確認して合わせる(piユーザーなら通常1000:1000)
音楽フォルダは**読み取り専用(:ro)**でマウントするのが安全
パスの例:/home/pi/Music や /mnt/hdd/music
保存して終了(Ctrl+O → Enter → Ctrl+X)
4. 起動
docker compose up -d
ログ確認:
docker compose logs -f
ライブラリ更新している

5. アクセスブラウザで以下にアクセス:
http://RaspberryPiのIPアドレス:4533
起動した

初回アクセス時に管理者アカウントの作成画面が出るので、ユーザー名とパスワードを設定。

日本語化も可能

補足・ffmpegはDockerイメージに含まれているので別途インストール不要。
外付けストレージを使う場合は、マウントポイントを正確に指定。
ポート4533が空いているか確認(ファイアウォールを使っている場合は開放が必要)。
更新する場合は
cd ~/navidrome
docker compose pull
docker compose up -d
スマホ側にはとりあえず無料で使える
flo -Navidrome Client をインストール、サーバーアドレスと設定したユーザー名・パスワードで接続。



レスポンスはとても速い、KODIのDLNAサーバーとは雲泥の違い。
画面も見やすくて好印象。
だが、プレイリストの作成がスマホアプリからできない?
ブラウザから作成してみるが、アルバム・曲単位で個別に設定していくしかなさそう。
KODIのスマートプレイリストの様に、アーティスト名で一括指定等の機能がない?
音楽データが少ない場合は良いが、タイトルが100以上になると面倒になりそう。
Plex Media Serverと違ってアカウントを取得する必要もなく、完全に自分の環境内で構築できるのでNavidromeの方が良さそう。
ncos1.hatenablog.com
Cloudflare Tunnel を設定して外部から使える環境も検証してみたくなった。
