nix-config/hosts/archlaptop-vm/default.nix
Gabe Venberg 48c60629ab Restic: made modular backup declerations.
Required tree-wide re-wiring of the host option.
Now, rather than each host having a monolithic restic.nix file,
the hosts restic.nix file just specifies the password and url of the
restic repository. Eatch module then definies specific paths to backup
and any pre and post commands that need to be performed.
Each backed up service gets an independent systemd backup service and
timer.
2025-04-13 15:27:25 +02:00

94 lines
2.9 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
inputs,
myLib,
...
}:
inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs myLib;};
# > Our main nixos configuration file <
modules = [
inputs.home-manager.nixosModules.home-manager
./hardware-configuration.nix
../../roles/nixos/graphical-vm.nix
../../configs/nixos/common.nix
../../configs/nixos/printing.nix
../../configs/nixos/sound.nix
../../configs/nixos/interactive-networking.nix
../../configs/nixos/i3
../../configs/nixos/sshd.nix
../../configs/nixos/secrets.nix
({
config,
pkgs,
...
}: {
host = {
user = "gabe";
fullName = "Gabe Venberg";
gui.enable = true;
isVm = true;
};
networking.hostName = "archlaptop-vm"; # Define your hostname.
# Define a user account. Don't forget to set a password with passwd.
users.users.${config.host.details.user} = {
packages = with pkgs; [firefox];
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
];
home-manager.users.${config.host.details.user} = {
inputs,
osConfig,
lib,
...
}: {
host = osConfig.host;
user = {
git = {
profile = {
name = config.host.details.fullName;
email = "gabevenberg@gmail.com";
};
workProfile.enable = false;
};
};
imports = [
../../roles/home-manager/terminal.nix
../../configs/home-manager/common.nix
../../configs/home-manager/email.nix
../../configs/home-manager/tiny-irc.nix
inputs.nixvim.homeManagerModules.nixvim
../../configs/home-manager/secrets.nix
];
sops = lib.mkIf (inputs ? nix-secrets) {
secrets = {
gmail-password.sopsFile = "${inputs.nix-secrets}/workstations.yaml";
irc-cert.sopsFile = "${inputs.nix-secrets}/workstations.yaml";
};
};
};
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
})
];
}