Initial format

This commit is contained in:
Philip Peterson 2026-09-26 01:04:59 -08:00
parent f35959099f
commit 477793d581
8 changed files with 34 additions and 28 deletions

7
Containerfile Normal file
View file

@ -0,0 +1,7 @@
FROM ghcr.io/ublue-os/aurora:stable
COPY overlay/ /
# System-level units are enabled explicitly. User units are picked up
# automatically via overlay/usr/lib/systemd/user-preset/.
RUN systemctl enable rpm-ostree-cleanup.timer

View file

@ -2,49 +2,47 @@
Quine distro of Linux based on uBlue Aurora Quine distro of Linux based on uBlue Aurora
## systemd/user/disk-cleanup.{service,timer} ## Building
Weekly, runs as the user, no privilege needed: `podman system prune -af`, `Containerfile` builds a custom bootc image on top of `ghcr.io/ublue-os/aurora:stable`,
`flatpak uninstall --unused -y`, clears `~/.cache`. layering in everything under `overlay/`:
```sh ```sh
cp systemd/user/disk-cleanup.* ~/.config/systemd/user/ podman build -t quine-linux -f Containerfile .
systemctl --user daemon-reload
systemctl --user enable --now disk-cleanup.timer
``` ```
## systemd/system/rpm-ostree-cleanup.{service,timer} An ISO can then be generated from the built image with `bootc-image-builder`.
Weekly, runs as root via systemd (not cron/sudoers): `rpm-ostree cleanup -rb`
(drops rollback deployment and any pending deployment).
```sh
sudo cp systemd/system/rpm-ostree-cleanup.* /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now rpm-ostree-cleanup.timer
```
## overlay/ ## overlay/
Files here mirror their path on the root filesystem, meant to be baked into Files here mirror their path on the root filesystem and are baked into the
the image (e.g. `COPY overlay/ /` in a future Containerfile). Until then, image via `COPY overlay/ /` in the Containerfile.
apply manually:
```sh - `overlay/etc/...` — local/admin config. On the ostree-based image, content
sudo cp overlay/etc/gitconfig /etc/gitconfig shipped here becomes the default `/etc` and is still locally overridable
``` (3-way merged on upgrade), same as any package-installed `/etc` file.
- `overlay/usr/lib/systemd/...` — vendor-shipped units. `/usr` is replaced
wholesale on each image build/upgrade, so anything here always matches the
image and isn't meant to be hand-edited on a running system.
### overlay/etc/gitconfig ### overlay/etc/gitconfig
System-wide git config so every user on the box gets `main` as the default System-wide git config so every user on the box gets `main` as the default
init branch, not `master`. init branch, not `master`.
## systemd/journald.conf.d/size-cap.conf ### overlay/etc/systemd/system/rpm-ostree-cleanup.{service,timer}
Weekly, runs as root via systemd (not cron/sudoers): `rpm-ostree cleanup -rb`
(drops rollback deployment and any pending deployment). Enabled at build time
via `RUN systemctl enable` in the Containerfile.
### overlay/etc/systemd/journald.conf.d/size-cap.conf
Continuous 500M journal retention cap instead of a periodic vacuum job. Continuous 500M journal retention cap instead of a periodic vacuum job.
```sh ### overlay/usr/lib/systemd/user/disk-cleanup.{service,timer}
sudo mkdir -p /etc/systemd/journald.conf.d
sudo cp systemd/journald.conf.d/size-cap.conf /etc/systemd/journald.conf.d/ Weekly, runs as the user, no privilege needed: `podman system prune -af`,
sudo systemctl restart systemd-journald `flatpak uninstall --unused -y`, clears `~/.cache`. Auto-enabled for every
``` user via `overlay/usr/lib/systemd/user-preset/90-quine-linux.preset` — no
manual `systemctl --user enable` needed.

View file

@ -0,0 +1 @@
enable disk-cleanup.timer