diff --git a/README.md b/README.md index ae09785..e2aad21 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,38 @@ ![Connectable status](./resource/image/connectable-status.png) -## Installation +## What is this? + +I've been using docker compose to build and manage my *Jellyfin* server for +almost 2 years. I love what containerization enables but I am unhappy with `yaml` +as the language for expressing my system. I moved my personal desktop and +workstation pc to *NixOS* and have seen the light, but I am not sure that I +want to do containers under *NixOS* right now. + +What I did want was a fully FOSS container stack. I have explored `podman` at +arm's length and finally discovered that there is a compose-like interface for +choreographing my containers, but it isn't `yaml`. It's actually `systemd`, +which has already been orchestrating service lifetimes even longer than +`docker` by three years! + +This new declarative configuration is known as `quadlets`, and they are just +`systemd` unit files. I already run some of my own personal startup +applications as `systemd` user services, because it works across any window +manager or desktop environment. One autostart to rule them all, then. + +The following sections of this document are my notes for building this system +from scratch, assuming you bring your own hardware. It should be easy to modify +them for another distribution if necessary. All notes and instructions are +commandline, because it's more universal and easier to copy & paste. I do not +know if there are GUI ways to do all of the necessary steps with *Cockpit* or a +hypervisor like *Proxmox*. + +The end goal is make this a repository of `quadlet` stacks that are easy to +reuse. It would be similar to the `linuxserver.io` fleet, but I don't think +there is much need anymore for more custom containers. Many upstreams now +provide ready-built containers that we need only configure. + +## Operating System My proof of concept server running this container stack is built on AlmaLinux 9.4. `podman` and `systemd` with `quadlet` support is required if you are using another