2021 年公司開始實施 322 WFH,少了通勤的時間,在家的時間也多了,就想在上班時也能好好對待自己,雖然是木耳但始終會想知道,網路上說的獨立訊源減少雜訊是有多重要,亦或只是玄學?於是誕生了Raspberry pi 4 + piCorePlayer 7.0.0 折騰筆記這篇筆記,到現在這個部落格的累積曝光最高的也是因為這篇吧。
雖然說現在已經出到 8.2.0,但也已經是 2022 年六月的版本了,起初因為 raspberry pi 4b 便宜而使用 piCorePlayer,後來也因 raspberry pi 4b 漲價(漲幅超過 100%)進而不使用 piCorePlayer,不知道官方後來沒更新了是因為樹莓派太穩定,還是真的太貴了…。
從 Bare Metal 到 Docker
當時在學習 HomeLab,首先是從 portainer 開始玩,也因此誕生了 logitech media server 搭配 docker 實現雙機分離。後來也用著同樣的 image 將 lms 建在 k8s cluster 內,遇到的比較髒的問題是 nginx 的 port 用非正式的方式解決。
這時候其實已經不在乎 logitech media server 是否帶來更好的音質了,也沒有連動 NAS 的音樂,主要是使用 Youtube Plugin 播放 Youtube 上的內容(即便有訂閱 Youtube Premium)。以及使用 Podcast Plugin 收聽 podcast。
使用 docker 的好處不外乎一個字,省,於是我把 raspberry pi 4b 也給賣了。
從 Docker 到 Podman 與 LXC
2022 年台灣疫情大爆發,公司也從 322 變成全遠端,但也在 2022 下半年恢復 322,於 2023 年正式恢復正常進辦公室。在這期間發現 logitech media server 使用 docker 做為執行環境,除了省物理機的錢(相較 bare metal),更省顯示卡資源。
公司電腦是內顯,若是常駐 youtube 視窗,十分浪費顯示卡資源,甚至會影響到頁面切換效能,這時候起一個 container 來跑 lms,再用 Squeezelite-X 來做為撥放器,算是十分清量的解決方案了。再更後來將 docker desktop 移除了,詳細可以參閱 WSL2 中使用 systemd 管理 podman 的 container。
在公司,就用 podman 起一個 container:
mkdir -p ~/.config/systemd/user
mkdir -p ~/podman/lms/config ~/podman/lms/playlist ~/podman/lms/music
podman create \
--name=lms \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Taipei \
-p 9000:9000/tcp \
-p 9090:9090/tcp \
-p 3483:3483/tcp \
-p 3483:3483/udp \
-v /home/raiven/lms/config:/config:rw \
-v /home/raiven/lms/music:/music:ro \
-v /home/raiven/lms/playlist:/playlist:rw \
--restart always \
lmscommunity/logitechmediaserver:latest
podman generate systemd --new --files --name lms
cp -Z container-lms.service ~/.config/systemd/user
systemctl --user enable container-lms.service
systemctl --user start container-lms.service
systemctl --user status container-lms.service
在家裡,也將 lms 從 k8s cluster 中移到 proxmox ve LXC ,基於 debian 11,作為更「顯眼」的 container。
# http://downloads.slimdevices.com/
sudo apt install perl libssl-dev
wget http://downloads.slimdevices.com/LogitechMediaServer_v8.3.1/logitechmediaserver_8.3.1_amd64.deb
sudo dpkg -i logitechmediaserver_8.3.1_amd64.deb
sudo apt --fix-broken install
總結
這次遷移是一個很好的經歷。不僅讓我更好地理解了容器技術,還讓我的 logitech media server 更加穩定和可靠。在這個過程中,我學到了很多關於 docker 和 podman 的知識。我希望這個遷移紀錄可以幫助到其他人,並且鼓勵大家去嘗試使用容器技術。容器技術已經成為現代應用程序開發和部署的核心技術之一,並且它在未來也會繼續發揮重要作用。