Funkwhale is a free self hosted music streaming server you can use. This is a professional music streaming web app that you can install on your server and then stream music from a remote location. After setting it up, you can create a music collection and then stream that over HTTP. It offers an intuitive interface where you can explore all your songs, create playlists, and add songs to your favorite section. It lets you create different users and they can all have their separate collection. The music player is simple, fast and offers all the necessary playback options that you will like.
There are various music streaming services that people usually use. Best examples of such services are Spotify, Deezer, SoundCloud, etc. But if you want to host your own music streaming service then you will need a secure and powerful web app. And Funkwahle is one of those apps that you can use. You can run it locally or deploy it on a remote VPS such as DigitalOcean. The installation process is very simple and in a few minutes, you can get it up and running. You can stream music with this from anywhere even on mobile browsers.
Using this Self Hosted Music Streaming Server:
If you have used some music streaming services then you will be easily able to use this as well. After installation, access this tool at localhost:5000 and then start creating your collection. Give your collection a name and then upload songs there.
After uploading songs, they will appear in the library. You can play any song and push others to the queue. The song will immediately loaded it in the player and then you can do whatever you want with it. You can see the next songs in the queue there and then opt for loop or repeat options.
You can switch to the radio mode and play your songs in a never-ending loop. You can start the radio mode with favorite songs or random songs in your library. The songs will be loaded in the same player.
Just like other music streaming services, you can create a profile here. You can add an avatar to which this web app will show to other users. Some additional settings such as user passwords and certain other things can be configured there and you can save them.
Installing this Self Hosted Music Streaming Server:
If you have an online server or VPS then you can easily install it. The best way to install this music streaming server is through Docker. Docker makes the installation of these kind of apps pretty easy as it takes care of all the dependencies and the environment by itself. And there are two different methods to run this via Docker as you can see on this page. I will tell you about the easy method. Follow these steps to install this music streaming server.
Step 1: Run these commands one after another to create a new user to install Funkwahle.
sudo useradd -r -s /usr/bin/nologin -d /srv/funkwhale -m funkwhale
sudo adduser funkwhale docker
cd /srv/funkwhale
Step 2: Now, switch user and add an environment variable that will be used.
sudo -u funkwhale -H bash
export FUNKWHALE_VERSION="0.18.3"
Step 3: Create some other environment variables which will be used in the installation. You just copy all these lines and paste them in the terminal.
touch .env
echo "FUNKWHALE_HOSTNAME=yourdomain.funkwhale" >> .env
echo "FUNKWHALE_PROTOCOL=https" >> .env
echo "NGINX_MAX_BODY_SIZE=100M" >> .env
echo "FUNKWHALE_API_IP=127.0.0.1" >> .env
echo "FUNKWHALE_API_PORT=5000" >> .env
echo "DJANGO_SECRET_KEY=$(openssl rand -hex 45)" >> .env
echo "NESTED_PROXY=1" >> .env
chmod 600 .env
Step 4: Finally, run this Docker command and it will install Funckwahle. You just have to specify the music directory containing all your songs in this command. Change the red parameter with the path to the music files.
docker run \
--name=funkwhale \
--restart=unless-stopped \
--env-file=/srv/funkwhale/.env \
-v /srv/funkwhale/data:/data \
-v /path/to/your/music/dir:/music:ro \
-e PUID=$UID \
-e PGID=$GID \
-p 5000:80 \
-d \
funkwhale/all-in-one:$FUNKWHALE_VERSION
This is it. In this way, you can install this music streaming server and get it running. After a few seconds, it will start running in the background and you can access the main interface of the web app at localhost:5000. If you know about domain in details then you can bind a registered domain to it as well.
Final thoughts
Funkwhale is a free and a very nice music streaming server you can use. I liked the way it works and its functionality. You can easily create music library and then simply listen to that anytime you want. And the included music player is amazing as well and has all the required playback options. The advantage of using your own music streaming service is that you will have ownership your own data. And you can use it in any way you like. However, I will suggest you to not to use for illegal purposes or for hosting/streaming copyrighted music.