Recently I moved my home lab environment over to Proxmox and started containerizing all of my services.
I’ll admit, when I first started playing around with Docker I was confused as hell!
At its core, it’s all pretty simple but you can get lost in abstraction pretty quickly if you let yourself get side-tracked. That being said, let’s get on track!
I’m going to use Docker Compose to create a “stack”
Docker Compose is a tool for defining and running multiple Docker containers at once. It allows you to create, start, and stop containers with multiple interconnected services, such as databases, web servers, and APIs, all using a single YAML file.
Okay, so what is a stack you ask?
A stack is basically a grouping of services that you have configured in a single Docker Compose/YAML file.
Our stack will be called HostedMediaServices and will be used to serve our media libraries out to our local network (and beyond). This will include Plex (for sharing movies and TV shows), Komga (for sharing comic books/manga), and FireShare (for sharing small, self-hosted clips with unique links).
The full compose file is available on my GitHub.
If you want to follow along, you’ll need a couple of things:
- Linux (I’m using Ubuntu, you can use whichever distro you’d like)
- Docker (you’ll need Docker-Compose as well, which comes bundled with Docker Desktop)
- A text editor – anything will work, really, but I would recommend either VSCode or Sublime Text.
To get started, let’s break down what a Docker-Compose file actually IS.