音楽ファイルのストリーミングでWebDAVを利用していた。これまではNASで構築していたのだけれど、Linuxサーバ移行の流れで自分でサーバ組むことにした。
環境
- Linux Mint Xfce 22.3
- ThinkPad L390
- docker 29.4.1
- BytemarkHosting/docker-webdav
apache生で入れると融通きかなくなりそうなので、docker使うよ。
docker-compose.yml
services:
webdav:
image: bytemark/webdav
container_name: webdav_server
restart: always
ports:
- "${WEBDAV_PORT}:80"
environment:
- AUTH_USER=${WEBDAV_USER}
- AUTH_PASSWORD=${WEBDAV_PASSWORD}
volumes:
- "${HOST_DATA_PATH}:/var/lib/dav/data"
# 環境変数からユーザーIDを指定して権限問題を回避
user: "${PUID}:${PGID}"これの変更部分は .envで以下。
# WebDAV 認証情報
WEBDAV_USER=user1
WEBDAV_PASSWORD=your_secure_password
# 接続ポート
WEBDAV_PORT=8080
# ホスト側のデータ保存先 (外付けHDDのパスなど)
HOST_DATA_PATH=/mnt/external_hdd/webdav_data動作確認
そしたらupで動作確認。
docker compose up特にエラーが出なかったら、ファイラを起動する。パス部分をクリックして dav://localhost:ポートとしてやると、ユーザ名とパスワードが求められるので、入力した情報を記述。
ブラウザで開けたらOK。そしたらバックグラウンドで動かす。
docker compose up -d(おまけ)証明書発行してCloudBeatsでストリーミング再生
CloudBeatsは音楽再生のAndroidアプリ。これでWebDAV選択してストリーミングできる。ただCloudBeatsはHTTPS必須。なのでなんらかの手段で証明書発行が必要。
多分一番楽なのは、Cloudflare Tunnelでつなぐ。常にインターネット接続になってしまうが、まぁ音楽ファイルの再生くらいならそんなに気にもならないのでは。
次に楽なのはTailscale。Tailscaleで発行されるドメイン*.ts.netを使ってアクセス。
普通の独自ドメインやインターネット接続前提を頑張るなら、Caddy(リバースプロキシ) + AdGuardHome(LAN内DNS)でスプリットDNS。Tailscaleネットワークでも独自ドメインでやりたいならこれ。この設定はけっこう頑張る。

メモ大事
Geminiの提案が意味不明かつ、bytemark/webdavのdocker-compose.ymlも完全に妄想を出してきて時間を無駄にした。というか、以前にブックマーク同期のfloccusで既にWebDAVサーバたててたの完全に忘れていた。最初から自分の書いた記事を参照すべきだった。

コメント