Homelab - Cloud Music Server Navidrome
Navidrome is an open-source web-based music server and streaming platform where you can store your own music and listen to it on multiple clients.
Deployment (Docker Compose)
First, create a compose.yaml
file and paste the following content:
version: "3"
services:
navidrome:
container_name: ${STACK_NAME}_app
image: deluan/navidrome:${APP_VERSION}
user: 1000:1000 # If permission issues occur, you can try deploying as root (0:0)
ports:
- "${APP_PORT}:4533"
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 24h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- ${STACK_DIR}:/data
- ${DATA_DIR}:/music:ro
restart: unless-stopped
(Optional) It is recommended to create a .env
file in the same directory as compose.yaml
and customize your environment variables. If you prefer not to use environment variables, you can directly customize your parameters in compose.yaml
(e.g., replace ${STACK_NAME}
with navidrome
).
STACK_NAME=navidrome
STACK_DIR=xxx # Customize your project storage path, e.g., ./navidrome
DATA_DIR=xxx # Customize your music storage path, e.g., ./music
# navidrome
APP_VERSION=latest
APP_PORT=xxxx # Customize the access port, choose one that is not already in use
If you have a NAS, you can also mount the storage space on your NAS using the NFS protocol to save server space. For more details, please refer to Mounting Synology NAS Hard Drive Expansion Space (NFS) on Linux.
Finally, execute the command docker compose up -d
in the same directory as compose.yaml
to start the orchestrated container.
Configuration Instructions
There are many options for mobile apps. The one I personally find best for Android is substreamer. For more apps, you can refer to the official list of Apps.
References and Acknowledgements
- Official Website
- Documentation
- GitHub repo
- Docker Hub
- Demo site (username and password are both "demo")
Original: https://wiki-power.com/
This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.This post is translated using ChatGPT, please feedback if any omissions.