Docker media server - redesign

Table of Contents
Why? #
After some careful consideration I decided to completely redesign my homelab.
While the kubernetes-based approach worked well for most of the things, I did not like:
- the administration overhead of managing those separate servers
- did not really needed enterprise-level redundancy and uptime, as I mostly ran only media server applications – could tolerate some downtime
- most importantly – and if anyone knows better, feel free to let me know what did I miss – I had serious performance issues with Plex (maybe it was due to the fact I had no intel GPU? as unlikely as it sounds, since – see later down the line – I do not experience this)
I also aquired some (datacenter-grade) server…I know, I know… but still…
I initially virtualised my k8s nodes, and that was moderate success. There were still some issues, so now I have returned to an older concept.
Enter Docker #
Yep. I returned to the roots. There are some key differences though:
- in the older version I used Docker Compose.
- in this later itteration I decided to build on this great project, and do almost all the server configuration using Ansible; as this saves me most of the effort of configuring shares, setting up user rights, and alike; admittedly there are some manual tasks during the setup, but they are quite minimal
Since all is running on a VM, the setup is quite secure.
- the codebase for the config is sitting in my Github repo
- the file with the secrets is a bit of a risk for now – since it is sitting on the VM – but that is something I plan to mittigate, by syncing it off to a local NAS
- said local nas is the storage for the media files anyway – via an nfs share
- and the Proxmox VM is backed up – for the time being manually, but I will explore other options in the future
Most of this concept was comming from my brief encounter with CasaOS, which is a very cool project – just I prefered something where there are more possible configuration options and less-clicky-clicky. Nevertheless I liked the look of Casa, and I looked for something similar, so I came accross this gem.
Putting this two project together resulted on a pretty neat looking stack.
Now I have an (almost) turn-key setup, where most of these services (and the code contains many more, but in the past few days I only had time to set up these) are easily configured, comming up as Docker containers. Some of these – the ones that either support it natively or can be put behind an oauth2 – are webfacing, others I plan to keep local only (I also moved my home network to a 10.x.x.x/16 range), although I might use Tailscale to make them securely available.