Các nền tảng phát nhạc trực tuyến thương mại mang lại sự tiện lợi nhưng thường giới hạn chất lượng tệp âm thanh và có thể gỡ bỏ bài hát yêu thích của bạn bất cứ lúc nào. Tự xây dựng một máy chủ âm nhạc cá nhân là giải pháp lý tưởng để bạn làm chủ hoàn toàn kho nhạc chất lượng cao của mình.
Sự kết hợp giữa Navidrome và mạng riêng ảo Tailscale mang lại trải nghiệm nghe nhạc từ xa liền mạch. Bạn có thể truy cập toàn bộ kho nhạc ở bất cứ đâu với độ trễ thấp mà không cần can thiệp mở cổng modem mạng hay lo ngại nguy cơ lộ máy chủ ra ngoài Internet.
Bài viết này dựa trên kiến trúc mạng riêng ảo nội bộ. Nếu thiết bị của bạn chưa được cài đặt mạng Tailscale, bạn nên xem lại bài viết hướng dẫn tự tạo VPN nội bộ với Tailscale trước khi tiến hành cấu hình dịch vụ âm nhạc.
Cài đặt dịch vụ Navidrome trên máy chủ Linux
Navidrome được viết bằng ngôn ngữ Go nên tiêu tốn rất ít tài nguyên phần cứng, hoạt động mượt mà ngay cả trên các dòng máy tính văn phòng cũ hoặc máy tính nhúng. Bạn mở cửa sổ dòng lệnh Terminal và tải bản cài đặt mới nhất:
sudo useradd -r -s /bin/false navidrome
sudo mkdir -p /opt/navidrome /var/lib/navidrome /media/music
sudo wget https://github.com/navidrome/navidrome/releases/download/v0.53.3/navidrome_0.53.3_linux_amd64.tar.gz -O /tmp/navidrome.tar.gz
sudo tar -xvzf /tmp/navidrome.tar.gz -C /opt/navidrome/
sudo chown -R navidrome:navidrome /opt/navidrome /var/lib/navidrome
Tiếp theo, tạo tệp dịch vụ hệ thống để Navidrome tự khởi chạy cùng máy tính:
sudo nano /etc/systemd/system/navidrome.service
Dán nội dung cấu hình đường dẫn thư viện nhạc vào trình soạn thảo:
[Unit]
Description=Navidrome Music Server
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome
[Service]
Type=simple
User=navidrome
Group=navidrome
WorkingDirectory=/var/lib/navidrome
ExecStart=/opt/navidrome/navidrome --musicfolder /media/music
Restart=always
[Install]
WantedBy=multi-user.target
Kích hoạt và khởi động dịch vụ hệ thống:
sudo systemctl daemon-reload
sudo systemctl enable navidrome
sudo systemctl start navidrome
Khả năng tương thích và xử lý định dạng âm thanh
Navidrome hỗ trợ đầy đủ các định dạng âm thanh tiêu chuẩn hiện nay. Tùy thuộc vào kết nối mạng khi nghe bên ngoài, máy chủ có thể tự động truyền phát nguyên bản hoặc chuyển mã âm thanh để tránh gián đoạn.
| Định dạng tệp | Cơ chế xử lý | Khuyến nghị sử dụng |
|---|---|---|
| FLAC / ALAC (16-24 bit) | Truyền phát nguyên bản | Nghe qua mạng wifi nội bộ hoặc kết nối 5G ổn định |
| DSD (DSF / DFF) | Chuyển mã sang PCM chất lượng cao | Dành cho các thiết bị di động có DAC rời chuyên dụng |
| MP3 / Opus (128-320 kbps) | Truyền phát trực tiếp | Tiết kiệm dữ liệu di động khi di chuyển ngoài đường |
Kết nối từ xa qua Tailscale và ứng dụng di động
Sau khi dịch vụ khởi chạy, bạn mở trình duyệt nhập địa chỉ http://localhost:4533 để tạo tài khoản quản trị ban đầu. Để nghe nhạc từ xa qua điện thoại hoặc máy tính xách tay:
- Cài đặt ứng dụng Tailscale trên điện thoại thông minh và đăng nhập cùng tài khoản với máy chủ.
- Lấy địa chỉ IP nội bộ Tailscale của máy chủ nhạc (dạng
100.x.y.z). - Cài đặt ứng dụng phát nhạc hỗ trợ chuẩn Subsonic trên điện thoại như Substreamer, Symfonium hoặc Amperfy.
- Nhập địa chỉ máy chủ dạng
http://100.x.y.z:4533cùng tài khoản và mật khẩu đã tạo.
- Music Server: Hệ thống lưu trữ và truyền phát các tệp âm thanh qua giao thức mạng đến thiết bị đầu cuối.
- Subsonic API: Giao thức giao tiếp tiêu chuẩn mở cho phép các ứng dụng nghe nhạc di động đồng bộ danh sách phát từ máy chủ cá nhân.
- Transcoding: Quá trình máy chủ tự động chuyển đổi định dạng hoặc hạ bitrate âm thanh theo thời gian thực để phù hợp với tốc độ mạng.
- Tailscale: Dịch vụ mạng riêng ảo dạng mesh xây dựng trên nền giao thức WireGuard giúp các thiết bị kết nối an toàn mà không cần địa chỉ IP tĩnh.
Mô hình Navidrome kết hợp Tailscale đem lại sự an toàn tuyệt đối và riêng tư cho cá nhân. Tuy nhiên, nếu bạn muốn chia sẻ kho nhạc cho người thân không rành công nghệ, việc bắt buộc họ cài đặt ứng dụng Tailscale và duy trì kết nối mạng riêng có thể tạo ra rào cản sử dụng. Trong trường hợp cần chia sẻ rộng rãi, giải pháp sử dụng Cloudflare Tunnel kết hợp xác thực bảo mật hai lớp sẽ linh hoạt hơn.