Repository for running Audirvana Studio/Origin with Docker

Hello, I have prepared a repository which should make things a little easier for those who like to run Audirvana using Docker on linux.
The repository is here.
It is obligatory for me to mention that I took inspiration from this thread.
Differently from that solution, I am not incorporating the portions of the docker-compose that connect to samba on my compose files. IMO this should be done on the os level with tools like autofs, and on top of that I’d prefer sshfs connections for better security. But that’s just my take on that, and I’d like the audirvana core to stay where the files are, so no remote filesystems should be involved in my ideal use-case.

I hope this is helpful. Will be waiting for feedback, in the meantime, thank you for the attention.

2 Likes

Hi @GioF71 ,

I don’t know much, so can you tell me whether running Studio with Docker would be a good idea if I want to access my music files on an external USB drive from many different OSs (Windows, MacOS, 4 different Linux distros - I won’t be running Docker on 2 of the Linux distros or Windows, but would consider it on 2 distros and MacOS)? Would it bring any advantages/disadvantages over running Studio installed directly to the OSs?

Hello @Jud and thank you again for the your generous contribution.
About your questions, I’d say that generally speaking docker imposes a very small overhead if you compare the performances against natively installed applications. Such overhead is negligible with modern hardware (even a Pi4 is more than capable). You pay the most in terms of download/build time (for downloading or rebuilding the images), but about download, when using regular installations, you would still have to download updated binaries when a new version comes out.
So why bother?

  1. you can use virtually any distribution, the only prerequisite is to have Docker installed.
  2. you don’t actually have to “install” anything on your system, so we are done with libraries/binaries incompatibilities (but with this, I am not saying that Audirvana is problematic under that aspect: for what I have seen it isn’t problematic at all).
  3. Stop/remove the container and it’s just it was never there. No packages to remove. Maybe just the images if you never want to use that again.

These are some of the general advantages of Docker as a containerization platform, not anything specific to Audirvana or any audio-related application.

Container startup time can be marginally longer (again, I consider it negligible on modern hardware).
In terms of audio quality, I cannot notice any difference if I try to compare the sound quality with what comes from a natively installed equivalent application. I’d be surprised if anyone was proven to be able to tell one from the other reliably, so in a proper A/B blind test.

So I am currently using docker on most of my devices for audio, with great satisfaction. For example with apps like mpd/upmpdcli, squeezelite and others, it’s so easy to create multiple instances of any of those, maybe if you have multiple dacs or if you want to test different configurations (e.g. with upsampling or not). Try with regular packages: you will find yourself creating new systemd units or scripts. And what if you want different versions of the same app? a nightmare without containerization (although it’s possible of course).

Moreover, in the case of Audirvana core, if one should want to install the docker image on a server device, with no audio devices attached, as a source for remote players, you wouldn’t even have to worry of docker passing audio devices to the container correctly (my opinion: it does pass audio devices correctly, so we should not worry) because this would “just” be a server without any audio capabilities by itself alone.

Different considerations can be made about Windows and MacOS machines. Those o.s. generally run docker containers using Docker Desktop, which in turn operates through a hidden virtual machine. The containers run on that virtual machine. In this scenario, I’d rather not run audirvana with docker for at least these reasons:

  1. audio devices pass through a virtual machine (never tried that, but I don’t like the idea too much).
  2. at least with windows, host networking does not work afaik, so your remote app would not “see” the server.
  3. this might be the first reason, but anyway: there is a desktop version of audirvana avaiable, so I would not bother :slight_smile:

About the external usb drive, on a linux system (so where I consider using docker makes sense).
You need to make sure that the drive is mounted when you start the container. If your use case includes connecting the drive after startup (very likely to happen if you use a laptop I’d say), you would need to start the container after that event. A tool like Portainer might help you reduce the need to resort to the command line if this is something you don’t like to do. Also, usb dac might be unavailable if connected after the container is started. Again, nothing that a container restart would not solve.

I hope this is helpful. Looking forward to hearing your comments. Thank you again!

Hi @GioF71 -

I played with the Docker installation a bit in ArcoLinux (Arch-based) and Xubuntu. Because I could probably do the Audirvana package installation blindfolded by this time, it is a little unfair to say using Docker felt like taking a couple more steps to get to the same place, but that is how it struck me.

I tend to only change Audirvana as part of the routine update of all packages in an OS. I have the same settings for both my DACs (office and main system), so any installation/upgrade hassles and multiple instances aren’t considerations in my case.

Subjectively I felt the package installation sounded slightly better than using Docker, but with any sort of subjective listening like that, your impression that there is no difference could easily be the correct one.

I do have some interest in Audirvana as a source for remote players, so I may revisit if I explore that further.

Overall using your repository worked quite smoothly, particularly with Xubuntu. Thank you for making it available!

1 Like

Hello, of course this is an alternative method for installing the software. It starts to become convenient if you already have docker installed, otherwise you would be installing docker just to use this solution. This would make very little sense unless you are on an unsupported distribution.
Thank you for trying and for providing a feedback, much appreciated!

1 Like

Yes, my situation is unusual because I have a couple of minimized distros with no GUI installed just to run Audirvana. There are many people who have Docker installed and would be new to Audirvana, and for them this type of solution is perfect.

1 Like

Hello,

I am not able to get this to work. I am pulling the image gtunesdev/audirvana-studio, and setting the environment variable accept-eula to yes. but the logs shows “eula not accepted”. also shows “cannot start avahi”. could you shed some light?

Thanks for your effort.

This may help:

hello, the work in my repository is not related to the image “gtunesdev/audirvana-studio”. I checked it on docker hub and I see that the image is 24 days old (not necessarily a problem) and it’s amd64 only. I do not know how the image behaves, if it includes the binaries or if those are downloaded during the startup phase. There is no documentation.

If you want to use my repository, you should build the image using the commands that are listed in the README.md file (the doc which is displayed on the repository home page). This is because I prefer to avoid to publish images which would include proprietary binaries.

So assuming you want to use Audirvana Studio, in short, you should

  1. clone the repository and enter its directory
  2. build using ./build-studio.sh
  3. Customize your .env file sourcing it from the provided sample.env, setting at least the mandatory values, ACCEPT_EULA and BINARY_TYPE
  4. run with docker-compose up -d

You should find all the necessary details in the repo itself here.
If something does not work as expected, please open an issue there, even if the documentation is not clear enough and/or something is missing.

I hope this helps!

Edit:

I just updated the repository and added a disclaimer, as well as more information about the process, including cloning the repository itself.

2 Likes

Stumbled into this thread. The image you found was a thing I was dabbling with based on the work @HertzDonut did. It wasn’t meant for public consumption.

Hopefully @GioF71 cleared things up.

Hello @gTunes, the image built using my repository used to work for me until I had the subscription running. It does not seem there are a lot of users, so I don’t know if there is some issue.
Specifically, a running avahi-daemon is a requirement, the built container image contains avahi libraries but does not start the daemon on its own.

Thanks for this information. It was never intended to be used by anyone but me. Private repose create issues so it sometimes easier to just use a public repo for a private project.

I deleted the repo to prevent further confusion.

I corrected my previous post because it was not clear which image I was referring to. I never pulled your image, the fact that there was no information told me what you are confirming… it was for your private use :slight_smile:

2 Likes