To anyone reading this, unless you absolutely must have the federation abilities of Funkwhale above your own sanity, it's not worth it. Funkwhale is an absolute bear to setup by comparison to every other music server. I have been bouncing through them all spinning up containers for the same library and putting them through their paces.
Spinning up 4 Navidrome containers with 4 different domains for my user's library preferences was quicker and easier than setting up one Funkwhale server for 4 users. It's beyond absurd how clunky it is. And worst of all, 4 Navidrome containers are extremely faster, less resource hungry, and easier to maintain.
None of the local library importing works in the UI unless you're the admin account. That means going into users to create libraries then spinning up an API container with a command to import the local files. But then it doesn't watch them unless you include that flag and leave the detached container running.
On top of that, so few people are running it that you cannot just search the web for issues. It's their lacking documentation only. You know something is obscure when you cant even find their own website by searching Funkwhale without going through the top result that links to it.
Funkwhale is just not ready for prime time compared to the other servers.
I have used Airsonic and then Airsonic-advanced for years after briefly using Subsonic. But recently as my more and more of my library migrated to FLAC I had issues with transcoding. Sometimes all transcoding would just start failing and when it did Airsonic would peg every thread it had available. (Heresy I know but when I or my users are on a mobile network I don't want to chew through data in a few day long outings.) So that's what led me down this path. I tried Navidrome and loved it except for the lack of library separation. I tried Funkwhale, and I tried Gonic. Gonic is wonderful in its simplicity but it's almost too basic. It supposedly had library separation and has transcoding but neither was working out of the box so I just said fuck it and went with 4 Navidrome containers because copy and pasting is easy and everything about Navidrome just works. Most importantly, Navidrome is lightning fast loading in an app which is the only way my users interact with the server. It fires up transcoding so fast you almost cannot tell the difference between loading the native file and transcoding in terms of response. I swear there was at least one more server I looked at but passed over and I cannot recall the name.
Edit: FYI Navidrome said that they are currently reworking the entire server backend, but after that it will be easier to implement multiple libraries.