I had moved off Plex, close to two years ago, because … reasons.
Unable to decide between Emby and Jellyfin and having just learned containers at the time, I deployed both on my Pi.
Emby handled video duties while Jellyfin did music.

And now after close to two years, I’m moving off Jellyfin to Emby.
The only reason being its iOS client.
It still has a lot of growing up to do, and I’ve reached the end of my tether trying to adjust to its foibles.
I cannot turn the phone off, else the music goes off.
I cannot switch away from the Jellyfin app, else the music goes off.
If I get a call, then the app sorta-kinda loses its mind and I have to kill it and relaunch it.

All I want from my music player is to be a good audio citizen on iOS. Connect to the server, read my songs, play my music. And do it in the background.

While I am sympathetic to the priorities of the open source Jellyfin team, I am not getting any younger and my hour long walks are the only time I get to enjoy my music.

So … I moved.

Setting the stage

  • There had to be two instances of Emby running. I don’t want my video online and so I don’t want it exposed
  • Video is secondary anyway. So that had to be the second container. The main one is Music.
  • Music needs to be accessible from anywhere on the web.

Doing it

  • I already had docker running and installed, along with Nginx
  • Jellyfin has better documentation. So I used their guide to reverse proxy Nginx to the Emby service that would come up. All I had to do, was put in my SSL cert paths correctly and change the variable jellyfin to embymusicserver (along with the rest of the require settings.)
  • I created a folder to hold Emby’s docker compose file. I modified the container name to embymusicserver and gave the path to mount for its config and another one that pointed to my music folder. Pretty straightforward. (I had already changed the ports earlier on the video emby instance to 8097 & 8921 to avoid conflicts with Jellyfin, so I did not have to touch that.)
  • Assigned ownership recursively to the user that would run the container.
  • Did a docker compose up to see if everything came up ok. And then tore it down
  • And finally, once again, adapted my old Jellyfin systemd script to ensure I could have it start and stop with the system



In hindsight, there was no way to pull all of this off in an hour, if it wasn’t for Docker and Emby’s image. Now I realise why containers are taking over the world.

And thank you for all you do, Jellyfin. I shall return as soon as the app gets more useful.


Feedback on this post? Mail me at feedback at this domain

P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!
P.P.S. Feed my insatiable reading habit.