0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Navidromeの音楽聞くサーバー構築

Posted at

まえがき

前回(というかさっきw)の記事でAmpacheのサーバー構築したんですができたのはできたんです。けど、高度な機能が多すぎて使いこなせず...
ほんとはカスタマイズできるからと言ってあれにしたんですが結局使うことやめました。
ってことでシンプルそうなNavidromeをインストールしていこうと思います。

  • 1-1 Navidromeのインストール

お手始めに

bash
sudo apt update
sudo apt upgrade
sudo apt install ffmpeg

これでffmpegをインストールしてください。公式ではvimをインストールしてますが使いづらすぎて死んじゃうので私はnanoエディター使います。vimを愛してやまないユーザーの方すみません!(いないだろうけど)絶対みんな嫌ってますよね。まあその話は置いといて次行きましょう。

bash
sudo install -d -o <user> -g <group> /opt/navidrome
sudo install -d -o <user> -g <group> /var/lib/navidrome

userとgroupは任意のものにしてください。

それが終わったらnavidromeのtar.gzダウンロードしていきます。githubのリリースはこちらです。最新のもののurlをコピーしてこのコマンドを実行します。

bash
wget <copy-url>
sudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
sudo chown -R <user>:<group> /opt/navidrome

wgetのあとにコピーしたurlを貼り付けてダウンロードしてください。それが終わったらnavidromeのダウンロードしたファイル解答してアクセス権の設定します。またここのユーザーとグループは適宜変えてください。

次にtouchでファイル作成します。

bash
sudo touch /var/lib/navidrome/navidrome.toml

その次にnanoエディターでこの中身を編集します。

bash
sudo nano /var/lib/navidrome/navidrome.toml

そのなかにこれを記述します。

navidrome.toml
MusicFolder = '/var/music'

曲を保存しているディレクトリを/var/musicに指定します。
次にsystemdのやつのサービス作成します。(systemdは俺わからん)

bash
touch /etc/systemd/system/navidrome.service

これが終わったら同じようにnanoエディターで

bash
sudo nano /etc/systemd/system/navidrome.service

で編集します。入力内容はこちらです。

navidrome.service
[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome

[Install]
WantedBy=multi-user.target

[Service]
User=<user>
Group=<group>
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
DevicePolicy=closed
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
ReadWritePaths=/var/lib/navidrome

# You can uncomment the following line if you're not using the jukebox This
# will prevent navidrome from accessing any real (physical) devices
#PrivateDevices=yes

# You can change the following line to `strict` instead of `full` if you don't
# want navidrome to be able to write anything on your filesystem outside of
# /var/lib/navidrome.
ProtectSystem=full

# You can uncomment the following line if you don't have any media in /home/*.
# This will prevent navidrome from ever reading/writing anything there.
#ProtectHome=true

# You can customize some Navidrome config options by setting environment variables here. Ex:
#Environment=ND_BASEURL="/navidrome"

上の方にあるユーザーとグループもまた適宜変更してください。ここまで終わったらもう楽勝(なはず?)
作ったサービスを動かします。

bash
sudo systemctl start navidrome.service

この後ファイアウォールの設定やっていきます。

bash
sudo ufw allow 4533
sudo ufw reload
sudoufw status

4533の文字列があったらうまくできてます。
これでlocalhost:4533に行ってみてください。
adminを作成していきます。完了したらconfirmかな?そんなやつを押してください。完了です。早すぎますね。

ってことでsubstreamerで行けるか試します。
行けました。

image.png

ということで!!終わりたいと思います!今回は意外とスムーズだったと思います!ありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?