Alejandra'd repo, added better dry run script.
All checks were successful
Build Nix modules (dry-run) / build-modules (push) Successful in 3m32s

This commit is contained in:
Root User 2026-02-12 20:11:30 +01:00
parent 32cf42d11d
commit 387fb668b3
Signed by: root
GPG key ID: 087F0A95E5766D72
11 changed files with 101 additions and 64 deletions

View file

@ -14,19 +14,20 @@ TODO HECK
- [x] Do a massive overhaul of the file structure, like there should be like modules where it is possible to call things to be packages. I.e. Calling the OVMF/SeaBIOS + Gnome/Plasma/Sway + Local changes, which two former would be separate .nix files. -> Probably will do a V3 or v2.1 later on when mature - [x] Do a massive overhaul of the file structure, like there should be like modules where it is possible to call things to be packages. I.e. Calling the OVMF/SeaBIOS + Gnome/Plasma/Sway + Local changes, which two former would be separate .nix files. -> Probably will do a V3 or v2.1 later on when mature
- [ ] Add the .env for the configurations so that we add the `git config --global user.email "you@example.com"` and `git config --global user.name "Your Name"` with the account custom made for this. - [ ] Add the .env for the configurations so that we add the `git config --global user.email "you@example.com"` and `git config --global user.name "Your Name"` with the account custom made for this.
- [?] Clean up the hanging configurations -> PiHole DNS Stuff needs to be transferred over elegantly, don't want to touch it unless I am myself en-site. - [ ] Clean up the hanging configurations -> PiHole DNS Stuff needs to be transferred over elegantly, don't want to touch it unless I am myself en-site.
- [x] Find a more clean way to store initial passwords (.env??) -> [nix-sops](https://github.com/Mic92/sops-nix) - [x] Find a more clean way to store initial passwords (.env??) -> [nix-sops](https://github.com/Mic92/sops-nix)
- [?] Create proper build automation scripts -> Needs to be properly done. - [x] Create proper build automation scripts -> Needs to be properly done.
- [ ] Attach more NixOS weblinks... - [ ] Attach more NixOS weblinks...
- [ ] Update Forgejo Styling - [ ] Update Forgejo Styling
- [x] Figure out what the ***hecc*** to do with SSL Certifications in the most elegant way -> Use Traefik - [x] Figure out what the ***hecc*** to do with SSL Certifications in the most elegant way -> Use Traefik
- [x] Add Git Actions to Forgejo -> It was already added, just need to setup the CI itself. - [x] Add Git Actions to Forgejo -> It was already added, just need to setup the CI itself.
- [ ] Setup the CI backend. - [x] Setup the CI backend.
- [x] Create the Podman x Portainer NixOS module -> See `Songsheet` - [x] Create the Podman x Portainer NixOS module -> See `Songsheet`
- [ ] Read up more about how to a backup machine stuff and making it Nix-y... - [ ] Read up more about how to a backup machine stuff and making it Nix-y...
- [ ] Figure out my life - [ ] Figure out my life
- [ ] Setup Hardware Keys - [ ] Setup Hardware Keys
- [ ] Setup a VPN (Likely OpenVPN) - [x] Setup a VPN
- [ ] Setup Alejandra pre-commit hook
## NOTES FOR FUTURE ## NOTES FOR FUTURE

View file

@ -21,8 +21,43 @@ if [[ -n "$1" ]]; then
configs=("$1") configs=("$1")
fi fi
# Track results
passed_configs=()
failed_configs=()
for config in "${configs[@]}"; do for config in "${configs[@]}"; do
echo "=== Dry-run: $config ===" echo "Dry-run: $config ==="
nix build --dry-run ".#nixosConfigurations.${config}.config.system.build.toplevel" || true if nix build --dry-run ".#nixosConfigurations.${config}.config.system.build.toplevel" 2>&1; then
echo "[PASSED]: $config"
passed_configs+=("$config")
else
echo "[FAILED]: $config"
failed_configs+=("$config")
fi
echo echo
done done
# Print summary
echo "BUILD SUMMARY"
echo "Total: ${#configs[@]} | Passed: ${#passed_configs[@]} | Failed: ${#failed_configs[@]}"
echo
if [[ ${#passed_configs[@]} -gt 0 ]]; then
echo "Passed configs:"
for c in "${passed_configs[@]}"; do
echo " - $c"
done
echo
fi
if [[ ${#failed_configs[@]} -gt 0 ]]; then
echo "Failed configs:"
for c in "${failed_configs[@]}"; do
echo " - $c"
done
echo
exit 1
fi
echo "All configurations passed!"
exit 0

View file

@ -34,5 +34,4 @@
owner = "root"; owner = "root";
mode = "0400"; mode = "0400";
}; };
} }

View file

@ -30,11 +30,11 @@ in {
}; };
imports = lib.filter (x: x != null) [ imports = lib.filter (x: x != null) [
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
(choose [ ./modules/secrets-config/sops-the-blank-system.nix ../secrets-config/sops-the-blank-system.nix ]) (choose [./modules/secrets-config/sops-the-blank-system.nix ../secrets-config/sops-the-blank-system.nix])
]; ];
config = { config = {

View file

@ -13,7 +13,6 @@
fsType = "ext4"; fsType = "ext4";
}; };
}; };
in { in {
options.local = { options.local = {
hostname = lib.mkOption { hostname = lib.mkOption {
@ -38,14 +37,16 @@ in {
}; };
}; };
imports = [ imports =
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) [
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/secrets-config/sops-build-machine.nix ../secrets-config/sops-build-machine.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
## TODO: Make this more elegant and less risky for unexpected errors happening. (choose [./modules/secrets-config/sops-build-machine.nix ../secrets-config/sops-build-machine.nix])
] ++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix ## TODO: Make this more elegant and less risky for unexpected errors happening.
++ lib.optional (!builtins.pathExists ./hardware-configuration.nix) dummyFileSystems; ]
++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix
++ lib.optional (!builtins.pathExists ./hardware-configuration.nix) dummyFileSystems;
config = { config = {
# Local metadata # Local metadata
@ -173,14 +174,13 @@ in {
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
services.openssh.enable = true; services.openssh.enable = true;
# Enable Podman for Gitea Actions Runner # Enable Podman for Gitea Actions Runner
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
dockerCompat = true; dockerCompat = true;
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
}; };
# Network configuration for the build machine on the Proxmox bridge # Network configuration for the build machine on the Proxmox bridge
networking.interfaces.ens18.ipv4.addresses = [ networking.interfaces.ens18.ipv4.addresses = [
{ {

View file

@ -30,16 +30,16 @@ in {
}; };
imports = [ imports = [
(choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) (choose [./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix])
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
# Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ])
## Compose modules for Portainer service ## Compose modules for Portainer service
(choose [ ./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix ]) (choose [./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix])
(choose [ ./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix ]) (choose [./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix])
]; ];
config = { config = {

View file

@ -29,16 +29,18 @@ in {
}; };
}; };
imports = [ imports =
(choose [ ./modules/desktop-manager/gnome.nix ../desktop-manager/gnome.nix ]) [
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/desktop-manager/gnome.nix ../desktop-manager/gnome.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/secrets-config/sops-database.nix ../secrets-config/sops-database.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
(choose [ ./modules/system_scripts/gcloud_backup.nix ../system_scripts/gcloud_backup.nix ]) (choose [./modules/secrets-config/sops-database.nix ../secrets-config/sops-database.nix])
## TODO: Make this more elegant and less risky for unexpected errors happening. (choose [./modules/system_scripts/gcloud_backup.nix ../system_scripts/gcloud_backup.nix])
] ++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix; ## TODO: Make this more elegant and less risky for unexpected errors happening.
]
++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix;
config = { config = {
local.hostname = "nixosdd"; local.hostname = "nixosdd";

View file

@ -33,12 +33,12 @@ in {
}; };
imports = [ imports = [
(choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) (choose [./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix])
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) (choose [./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix])
(choose [ ./modules/bootloader/seabios-assigned-proxmox-at-birth.nix ../bootloader/seabios-assigned-proxmox-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-proxmox-at-birth.nix ../bootloader/seabios-assigned-proxmox-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
]; ];
config = { config = {

View file

@ -30,15 +30,15 @@ in {
}; };
imports = [ imports = [
(choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) (choose [./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix])
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
# Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ])
## Compose modules for Portainer service ## Compose modules for Portainer service
(choose [ ./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix ]) (choose [./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix])
(choose [ ./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix ]) (choose [./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix])
]; ];
config = { config = {

View file

@ -30,11 +30,11 @@ in {
}; };
imports = [ imports = [
(choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) (choose [./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix])
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
# Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ])
]; ];

View file

@ -30,12 +30,12 @@ in {
}; };
imports = [ imports = [
(choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) (choose [./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix])
(choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
(choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
(choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
(choose [ ./modules/lix-default.nix ../lix-default.nix ]) (choose [./modules/lix-default.nix ../lix-default.nix])
(choose [ ./modules/secrets-config/sops-wireguard.nix ../secrets-config/sops-wireguard.nix ]) (choose [./modules/secrets-config/sops-wireguard.nix ../secrets-config/sops-wireguard.nix])
# Optionally to enable remote building: ./modules/toolsets/remote_building.nix # Optionally to enable remote building: ./modules/toolsets/remote_building.nix
#./modules/songsheet/wavelog/docker-compose.nix #./modules/songsheet/wavelog/docker-compose.nix
#./modules/secrets-config/sops-the-blank-system.nix #./modules/secrets-config/sops-the-blank-system.nix