docker nextcloudとminidlnaでネットワークAV環境を作った話

Pocket

ずっと欲しいと思っていたスピーカーを買ったので環境も作った

最近買った Marantz NR1200 (高い)

最近買った JBL STAGE A130


とりあえずTVに繋いでふんふんしてiphoneからairplayで飛ばしてふんふんした
でも曲をメインで入れてるのはAK320っていうDAP
これを毎回起動してってちょっと面倒だなってずっと思ってたのでサーバで曲を管理することにした

このMarantz NR1200にはDLNA機能があるのでNASやPCにある曲を流したりできる
https://manuals.marantz.com/NR1200/JP/JA/GFNFSYtormgerw.php

家のサーバスペック
~docker使うのであんまり晒しても意味ないけど~

[astel@3700x ~]$ uname -a
Linux 3700x 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[astel@3700x ~]$ cat /etc/redhat-release 
CentOS Linux release 8.3.2011
[astel@3700x ~]$ docker --version
Docker version 20.10.6, build 370c289
[astel@3700x ~]$ docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
[astel@3700x ~]$ cat /proc/cpuinfo  | grep "model name" | head -n1 
model name	: AMD Ryzen 7 3700X 8-Core Processor
[astel@3700x ~]$ free -g
              total        used        free      shared  buff/cache   available
Mem:             31          16           0           0          14          14
Swap:            15           1          14
[astel@3700x ~]$ 

1. minidlna
結構前に使ってちゃんと動いて運用できていたので今回もminidlnaを選択
ただ初めてdockerで使う

docker hubで適当に探して
vladgh/minidlnaを採用

docker-compose.yml

[astel@3700x minidlna]$ cat docker-compose.yml 
version: "3.8"
services:
  minidlna:
    image: vladgh/minidlna
    volumes:
      - /hdd2/music-dlna:/hogehoge
    environment:
      TZ: 'Asia/Tokyo'
      MINIDLNA_MEDIA_DIR_1: "/hogehoge"
    network_mode: 'host'
    restart: "always"

/hdd2/music-dlna の部分にホストサーバの共有したいディレクトリを選ぶ
これで/hdd2/music-dlna/hogehoge.flacを入れて見えることが確認できれば成功
動作が確認できたら落としておく

2. nextcloud
dropboxみたいなやつ
過去owncloud使ってたけどその開発者たちが音楽性の違いで分裂してできた(違う)nextcloudを初めて使ってみる

公式がイメージだしてるのでそれを使う
docker-composeのサンプルもあるので真似する docker#base-version—apache

さっきのminidlnaも入れる

[astel@3700x nextcloud]$ cat docker-compose.yml 
version: '3'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 'Root123@'
      MYSQL_PASSWORD: "nextcloudpass"
      MYSQL_DATABASE: "nextcloud"
      MYSQL_USER: "nextcloud"
      TZ: 'Asia/Tokyo'
    restart: "always"

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - /hdd1/nextcloud:/var/www/html
    environment:
      MYSQL_PASSWORD: "nextcloudpass"
      MYSQL_DATABASE: "nextcloud"
      MYSQL_USER: "nextcloud"
      MYSQL_HOST: db
      TZ: 'Asia/Tokyo'
    restart: "always"

  minidlna:
    image: vladgh/minidlna
    volumes:
      - /hdd1/nextcloud/data/astel/files:/astelfiles
    environment:
      TZ: 'Asia/Tokyo'
      MINIDLNA_MEDIA_DIR_1: "astelfiles"
    network_mode: 'host'
    restart: "always"

ip:8080でアクセスしてnextcloudが表示できたらok

/hdd1/nextcloud/data/astel/files
nextcloudのデータは data/user名/files に格納されるのでこうしている

nextcloudに音楽データを入れるとminidlnaで見えるようになるという仕組み

結構いい組み合わせだと思うけどどうだろ
一般的にはiphoneに曲いれてairplayで飛ばしたりUSBに曲入れてそれを聞けば良いんじゃね?が回答になりそうだけど

NR1200の操作は公式アプリのHEOSが便利なので入れましょう
そこからDLNA選んで再生するのが良いです

ミュージックのプレイリストを作る話はまた今度

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください