1.5 KiB
1.5 KiB
Home Services
This repository manages home-lab application stacks using compose files and a small Python CLI that works with either Docker or Podman.
Repository layout
services/
media/
compose.yaml
composectl.py
update_containers.sh
services/contains one directory per deployed stack.- Each stack directory contains its own
compose.yamlfile. composectl.pyinfers the stack name, compose file path, and project name from that directory structure.update_containers.shis a compatibility shim that delegates to the Python tool.
Runtime support
The CLI detects and uses whichever runtime is available:
docker compose ...podman compose ...
This means the same service directories can be managed from either backend without changing the compose files.
Common commands
From the repository root:
python3 composectl.py --help
python3 composectl.py --dry-run --all refresh
python3 composectl.py --stack media --dry-run up
python3 composectl.py --stack media pull
python3 composectl.py --stack media down
python3 composectl.py --stack media status
The shell entrypoint delegates to the Python tool:
bash update_containers.sh --dry-run --all refresh
Refresh flow
The repo-wide refresh flow does the following for each configured stack:
pulldownup -dprune
This preserves the same maintenance behavior as the old shell updater, but moves the logic into a portable Python implementation.