Commit graph

13 commits

Author SHA1 Message Date
db562158f7
feat(packages): Add personal repository
Add my own package repository and let users define additional custom
repositories to install. Enable installation of packages from my
repository.
2025-03-16 17:44:20 +01:00
5dd160727a
fix(roles): Default to root as user name
Always default to 'root' as a user_name if no variable has been set.
This can easily happen as not every role sets the variable and instead
we only set it once in the user role. 

Another way to possibly go about it in the future would be to inject the
'user_name' into each role that needs it as one of that role's default
variables. If it is specified by the user somewhere it _should_
override those defaults, though I have to read up on the exact variable
precedence.
2025-03-16 17:44:19 +01:00
a0ea10542d
ref(base): Change initramfs created filename
Since void defaults to building an 'initramfs-<kernelversion>.img' file
when running the update hook, I think it is just correct if we follow
their example.

This will make it harder to distinguish between kernels if you have many
others in the boot dir (e.g. Arch, or LTS) but that seems only an edge
case.
2025-03-16 17:44:18 +01:00
421df69cc9
feat(acpi): Add custom LID event handling
We disable the default ACPI handler script logic for LID events.
We _only_ disable that in the script - the default handler script will
still fire for LID events, just not do anything in its routine. That is
so that in the future it is easy to rectify with any upstream changes.
If, over time we add more custom event and action chain to our ACPI
settings, we can think about spinning out all event types into our own
rules and completely disabling the deafult handler script.

Our custom LID action only fires for LID open close events, and only
logs that the lid has been opened for open events. For close events, it
adds one extra step before suspending: Checking if any DP screens are
connected - and inhibiting suspend then. That way we still automatically
suspend when closing the screen lid if we are in portable mode (no
external screens connected) but do nothing if they are.
2025-03-13 11:24:17 +01:00
d168115f81
ref(acpi): Spin out acpi role 2025-03-13 11:24:16 +01:00
dc78da4d03
feat(pipewire): Add alsa integration
Any programs running through alsa only (such as spotify_player on
voidlinux) should now also work correctly through the pipewire stack.
2025-03-13 11:24:16 +01:00
317b931de0
feat(basic): Add socklog service
Allows the primary user to read syslogs (and daemon logs which get
transferred to syslogs).
2025-03-13 11:24:15 +01:00
afac310f21
ref(roles): All roles use desired package state
By setting the `desired_package_state` variable we can change if ansible
should only ensure that the packages exist on the system (`present`) or
that they are also updated to their latest version (`latest`).
2025-03-13 11:24:14 +01:00
5817a81f40
fix(playbooks): Remove duplicated play keys 2025-03-13 11:24:14 +01:00
030b8ec291
ref(inventory): Split up inventory into group vars
One inventory targets a local machine (`inv-local.yaml`, chosen by default)
while the other targets a chrooted installation accessible from another
system, usually in the `/mnt/void` directory (`inv-chroot.yaml`, has to
be called like `ansible-playbook -i inv-chroot.yaml`).
2025-03-13 11:24:13 +01:00
19162e2af3
feat(backup): Add restic backup
Restic backup creates a snapper snapshot of the root system which it
then chroots into and starts a restic backup to a (wasabi) S3 bucket to.

Intended to roughly follow this
<https://codeberg.org/silmaril/my-restic-solution> solution to achieve
restic backup of the _newest_ snapshot of my live root system.
2025-03-13 11:24:13 +01:00
2400bbf1af
feat(backup): Default to root user using snapper
If no primary user is defined in the playbooks, we give only the root
user access to the snapper command by default.
2025-03-13 11:24:12 +01:00
b3b280fbe4
ref(playbook): Change to role-based structure 2025-03-13 11:24:08 +01:00