趣味用VPSを自宅サーバーに移しました

公開日:

[tech] #docker #Navidrome #自宅サーバー

経緯

1年ほど前にこのブログで、円安が理由で趣味用VPSをLinodeからWebarena Indigoに移したという記事を投稿しました。

乗っけていたものはざっくり以下

日常的に使ってはいましたが

といった具合で、なんとも安物買いの銭失い的な感じになっておりました。

そんな中久しぶりにスマホとipad miniのobsidianを同期しようとした所エラーで失敗。

中々修正に手間取り一旦直したもののあまり使い続ける気にならず同期についてはRemotely-SaveとS3を使う形に変更しました。(こっちはこっちでそのうち何か書くかも)

そもそもnavidromeに食わせるメディアファイルは家のファイルサーバーにも置いてあるため、オンプレに置いた方が高速な動作が期待できる。(navidrome立てた当初は家には無かった)

VPSを維持する理由が1つ無くなり、また自宅サーバーのリソースが余り気味で活用したく、かねてより試したかったcloudflare tunnelを使うチャンスでもあると思い移行を決定しました。

移行と現在

元々全部docker composeで動かしていたので移行はかなり単純でした。

ざっくりの作業内容は以下の通り

サンプルとしてdocker-compose.ymlも置いときます。

こんなのを書いて、docker-compose up -dして、cloudflare tunnelの設定をすればいい感じに家へアクセスできて非常によろしいです。通勤中でもオタク音源聴き放題。

NASとか持ってる方なら例えばNASにライブラリ置いておいて、昨今流行りのミニPCにUbuntu入れて、とかやると似たような事をいい具合にできそう。

services:
  voice:
    image: deluan/navidrome:0.52.5
    user: 1000:1000
    ports:
      - 4534:4533
    volumes:
      - voice:/music:ro
      - ./nd_voice_data:/data
    environment:
      - ND_IMAGECACHESIZE=1GB
      - ND_SEARCHFULLSTRING=true
      - ND_SCANSCHEDULE=0
      - ND_SESSIONTIMEOUT=8760h
      - ND_DEVENABLESHARE=true
    restart: always
  music:
    image: deluan/navidrome:0.52.5
    user: 1000:1000
    ports:
      - 4533:4533
    volumes:
      - music:/music:ro
      - ./nd_music_data:/data
    environment:
      - ND_IMAGECACHESIZE=1GB
      - ND_SEARCHFULLSTRING=true
      - ND_SCANSCHEDULE=0
      - ND_SESSIONTIMEOUT=8760h
      - ND_DEVENABLESHARE=true
    restart: always

volumes:
  music:
    driver_opts:
      type: cifs
      o: "user=username,domain=fileservername,password=password"
      device: "//192.168.1.1/music"
  voice:
    driver_opts:
      type: cifs
      o: "user=username,domain=fileservername,password=password"
      device: "//192.168.1.1/voice"

cloudflare tunnelを使う以上当たり前ですが、navidromeのログイン画面やsubsonic apiのアクセスポイントがインターネットにさらされることになるのでパスワードには注意しましょう。

移行前はかなりトランスコードの待ち時間があってどんどん使う気が失せてしまうような具合でしたが、今はかなり軽快に動いてくれています。ファイルが大きい音声作品でもすぐ再生される事がここまでありがたいとは…。(まぁそもそもdlsite playで良くねって話ではあるんですが)

ちなみにクライアントはPCはブラウザから直接、スマホはSymfonium(Android/有料)とSubStreamer(iOS/無料)を使っています。iOSは使用頻度低め。

検索 Esc で閉じる