feat: podman-compose stack units and root/user execution scopes
- syncup: podman first, docker only as fallback (podman wins on name clash;
existing docker units found in podman switch to podman)
- syncup: group podman-compose containers into one `kind: stack` unit per
project (project, working_dir, compose_files, compose_bin from labels);
disable existing member units ("part of stack <project>")
- generator: compose mode (podman-compose up/stop, WorkingDirectory) with
pod start/stop fallback when compose binary/dir/files are missing
- reconcile: stacks disabled with "stack not found" when neither compose
files nor pod exist
- root: scan root + rootless users listed in `users:` (podman only)
- non-root: config ~/.config/unitdore/units.yaml, own user units only
- sysuser package: runuser with XDG_RUNTIME_DIR/DBUS env, home/linger lookup
- install: warn when linger is not enabled for user units
- testdata/stack: podman-compose test stack and captured podman ps fixture
- docs: README, generated-units, man page, AGENTS, PLAN
This commit is contained in:
@@ -27,7 +27,8 @@ Think of it as: **config → systemd units → running services.**
|
||||
## Non-Goals
|
||||
|
||||
- Not a container runtime (doesn't replace Podman/Docker)
|
||||
- Not Kubernetes / Compose / Quadlet
|
||||
- Not Kubernetes / Quadlet
|
||||
- Compose: only wraps existing podman-compose stacks (one unit per project); docker compose planned
|
||||
- Not a daemon — runs on demand
|
||||
|
||||
---
|
||||
@@ -172,6 +173,8 @@ unitdore/
|
||||
| 5 | Reconcile (auto-disable missing units) in syncup |
|
||||
| 6 | User unit support (rootless containers) |
|
||||
| 7 | Polish: `edit`, error handling, --dry-run flag |
|
||||
| 8 | podman-compose stacks (compose + pod fallback), root/user scopes |
|
||||
| 9 | docker compose stacks (`com.docker.compose.*` labels) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user