
Navidrome is an open-source music streaming server that lets you browse and listen to your music collection in a web browser. It runs as a lightweight service on a self-managed server and provides features such as library organization, metadata handling, and audio streaming to compatible clients.
This article demonstrates how to deploy Navidrome on a Linux server using Docker Compose. It covers service configuration, storage setup, and initial access to the Navidrome dashboard.
Before you begin, you need to:
navidrome.example.com, to point to your server’s public IP address.Navidrome needs directories to store application data and music files, along with environment variables that define paths, timezone, and domain settings. This section prepares the directory structure and the .env file used by Docker Compose.
Create the project directory and required subdirectories.
data stores the Navidrome database, cache, and application metadata.music stores your music library files that Navidrome scans and streams.Navigate to the project directory.
Create a .env file to store environment variables.
Add the following variables.
Replace:
Asia/Kolkata with your preferred timezone.navidrome.example.com with your actual domain name pointing to this server.admin@example.com with your email address.Save and close the file.
The Docker Compose configuration defines two services - Navidrome, which handles music streaming, and Traefik, which acts as a reverse proxy. Traefik terminates HTTPS traffic using a Let's Encrypt certificate and routes incoming requests to Navidrome based on the domain name defined in the .env file.
Add your user to the Docker group.
Apply the group membership change.
Create a Docker Compose file.
Add the following configuration.
Save and close the file.
The above Docker Compose configuration includes the following services.
navidrome service
deluan/navidrome image../music directory mounted inside the container../data directory to preserve the database and settings..env file to set paths, log level, and timezone.traefik service
Start the services.
Verify that both containers are running.
The output lists the navidrome and traefik services with the status set to Up.
For more information about managing Docker Compose applications, refer to the How to Use Docker Compose documentation.
Open your web browser and navigate to your domain over HTTPS, such as https://navidrome.example.com.
Enter a username and password, then click Create Admin to create the administrator account. Navidrome stores the credentials in the persistent data directory.
After the administrator account is created, Navidrome opens the main dashboard. If no music files are present in the configured music directory, the interface displays an empty library.
Navidrome scans the configured music directory and indexes supported audio files automatically. The following steps add a sample file and verify that streaming works through the web interface.
Download a public-domain audio file directly into the Navidrome music directory.
Ensure the file is readable by the container.
Navidrome monitors the music directory. After the file is added, the library updates automatically.
Wait for the automatic scan to complete, then verify that the album appears in the library.
Select the track and start playback in the built-in audio player to confirm that streaming works.
You have successfully deployed Navidrome using Docker Compose and secure access through Traefik with automatic HTTPS. The configuration persists application data and music files on the host, allowing the service to index and stream your collection through a web browser. For additional configuration options and advanced features, refer to the official Navidrome documentation.
0 Comments
Be the first to comment and share your perspective with the community.