Skip to main content
  1. Posts/

Docker media server - redesign

·3 mins·
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…

proxmox
Proxmox status

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.

portainer
View from Portainer

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.