これはなに

NavidromeのサーバをDockerで構築したときの手順メモ。
構築した環境は以下。
Navidromeとは

NavidromeはSubsonic APIを実装した軽量な音楽サーバである。OSSであり、無料で利用できる。
Subsonic APIをサポートするクライアントアプリを用いれば、スマートフォンやPCから音楽をストリーミング再生できる。
環境

- OS: Ubuntu Server 22.04
- Docker 28.3.3
- Docker Compose 2.39.1
サーバの構築手順

まず、作業用ディレクトリを作成する。
cd ~/workspace
mkdir navidrome
cd navidrome次に、Docker Composeの設定ファイルを作成する。
nano compose.yaml以下の内容を記述する。
compose.yaml
services:
navidrome:
container_name: navidrome
image: deluan/navidrome:latest
restart: unless-stopped
user: 1000:1000
ports:
- "45335:4533" # Navidromeのポート
volumes:
- /mnt/nas_buffalo:/music:ro # NASをマウントした音楽フォルダ(読み取り専用)
- ./data:/data # 設定・再生履歴・プレイリストの保存先
environment:
- ND_SCANINTERVAL=1h # 音楽の再スキャン間隔
- ND_LOGLEVEL=info
- ND_SESSIONTIMEOUT=24h
- ND_MUSICFOLDER=/music
- ND_BASEURL=portsでは、コンテナの4533ポートをホストの45335ポートにマッピングしている。必要に応じて変更する。volumesで、コンテナの/musicにホストマシンの音楽データ置き場(例だと/mnt/nas_buffalo/music)をマウントしている。これは環境に応じて変更する必要がある。volumesで、/dataにホストマシンの./dataをマウントしている。設定・再生履歴・プレイリストはここに保存される。environmentでは、Navidromeの各種設定を環境変数で指定している。ND_MUSICFOLDERには、音楽フォルダのパスを指定する。上記の例では/musicを指定している。
上記の内容でcompose.yamlを作成した場合は、コンテナをビルドする前に、dataディレクトリを作成しておく。
mkdir data最後に、以下のコマンドでコンテナを起動する。
docker compose up -dログは以下で確認できる。
docker compose logs起動したら、http://<サーバのIP>:<ポート番号>にアクセスする。例のとおりに設定した場合は、http://<サーバのIP>:45335にアクセスする。
アクセスすると、管理者ユーザーの作成画面が表示されるので、ユーザー名とパスワードを設定する。
管理者ユーザーのユーザー名とパスワードは忘れないように注意する。
次回以降はこれでログインする。
クライアントからの接続

NavidromeはSubsonic APIをサポートするクライアントアプリを用いて接続できる。このときはiOSでSubStreamerというアプリを利用した。
アプリを起動し、サーバのURL、ユーザー名、パスワードを入力して接続する。
ちなみにPCからはブラウザでhttp://<サーバのIP>:<ポート番号>にアクセスしてつかっている。PCのアプリを使っても良かったのだが、ブラウザで十分だったので。



