A cozy home for my Podman Quadlets.
I originally managed my containers like everyone else with docker. But I have decided to migrate my container stack to podman. The docker version of this isn't getting any more updates but if you are interested you can check it out here.
This repository contains a collection of Quadlet files I use to define containers as systemd services on my homelab.
Quadlets are a neat way to manage Podman containers — they let you configure everything declaratively using .container unit files.
Wanna use these Quadlets? Here's how:
git clone https://github.com/philipp-mlr/quadlets
cd quadletsThere are two types of .env files:
Located in the root directory (.env.example), this file defines environment variables used across multiple containers.
I use this mostly to work around the fact that systemd labels don't support env vars — adjust it to your needs (e.g., domains and paths).
Copy and edit the example:
mv .env.example .env
nano .envEach container can have its own environment file in its directory.
These files define container-specific variables.
Example for Portainer:
cd ./rootless/portainer
mv portainer.env.example portainer.env
nano portainer.envUse the update.sh script in the root folder — it handles everything for you:
- Copies
rootlessfiles →~/.config/containers/systemd/rootless - Copies
rootfulfiles →/etc/containers/systemd/rootful(🔒 root required) - Substitutes all env vars in
.containerfiles using your global.env - Reloads systemd
- Starts all services 💨
Run it like this:
chmod +x ./update.sh
./update.shFound a bug? Got a cool idea?
Open an issue or reach out — happy to connect!