diff --git a/flake.nix b/flake.nix index 3b2d960..e9a8e6b 100644 --- a/flake.nix +++ b/flake.nix @@ -28,7 +28,7 @@ }@inputs: { nixosConfigurations.rubble = nixpkgs.lib.nixosSystem { - modules = [ ./host ]; + modules = [ ./system ]; specialArgs = inputs; }; }; diff --git a/modules/home/default.nix b/home/jimbo/default.nix similarity index 100% rename from modules/home/default.nix rename to home/jimbo/default.nix diff --git a/host/id_ed25519.pub b/home/jimbo/id_ed25519.pub similarity index 100% rename from host/id_ed25519.pub rename to home/jimbo/id_ed25519.pub diff --git a/modules/home/programs/btop/default.nix b/home/jimbo/programs/btop/default.nix similarity index 100% rename from modules/home/programs/btop/default.nix rename to home/jimbo/programs/btop/default.nix diff --git a/modules/home/programs/default.nix b/home/jimbo/programs/default.nix similarity index 100% rename from modules/home/programs/default.nix rename to home/jimbo/programs/default.nix diff --git a/modules/home/programs/eza/default.nix b/home/jimbo/programs/eza/default.nix similarity index 100% rename from modules/home/programs/eza/default.nix rename to home/jimbo/programs/eza/default.nix diff --git a/modules/home/programs/fastfetch/config.jsonc b/home/jimbo/programs/fastfetch/config.jsonc similarity index 100% rename from modules/home/programs/fastfetch/config.jsonc rename to home/jimbo/programs/fastfetch/config.jsonc diff --git a/modules/home/programs/fastfetch/default.nix b/home/jimbo/programs/fastfetch/default.nix similarity index 100% rename from modules/home/programs/fastfetch/default.nix rename to home/jimbo/programs/fastfetch/default.nix diff --git a/modules/home/programs/fastfetch/small/default.nix b/home/jimbo/programs/fastfetch/small/default.nix similarity index 100% rename from modules/home/programs/fastfetch/small/default.nix rename to home/jimbo/programs/fastfetch/small/default.nix diff --git a/modules/home/programs/fastfetch/small/small.jsonc b/home/jimbo/programs/fastfetch/small/small.jsonc similarity index 100% rename from modules/home/programs/fastfetch/small/small.jsonc rename to home/jimbo/programs/fastfetch/small/small.jsonc diff --git a/modules/home/programs/git/default.nix b/home/jimbo/programs/git/default.nix similarity index 100% rename from modules/home/programs/git/default.nix rename to home/jimbo/programs/git/default.nix diff --git a/modules/home/programs/headless/default.nix b/home/jimbo/programs/headless/default.nix similarity index 100% rename from modules/home/programs/headless/default.nix rename to home/jimbo/programs/headless/default.nix diff --git a/modules/home/programs/neovim/default.nix b/home/jimbo/programs/neovim/default.nix similarity index 100% rename from modules/home/programs/neovim/default.nix rename to home/jimbo/programs/neovim/default.nix diff --git a/modules/home/programs/nh/default.nix b/home/jimbo/programs/nh/default.nix similarity index 100% rename from modules/home/programs/nh/default.nix rename to home/jimbo/programs/nh/default.nix diff --git a/modules/home/programs/nix-index/default.nix b/home/jimbo/programs/nix-index/default.nix similarity index 100% rename from modules/home/programs/nix-index/default.nix rename to home/jimbo/programs/nix-index/default.nix diff --git a/modules/home/programs/ranger/default.nix b/home/jimbo/programs/ranger/default.nix similarity index 100% rename from modules/home/programs/ranger/default.nix rename to home/jimbo/programs/ranger/default.nix diff --git a/modules/home/programs/tmux/default.nix b/home/jimbo/programs/tmux/default.nix similarity index 100% rename from modules/home/programs/tmux/default.nix rename to home/jimbo/programs/tmux/default.nix diff --git a/modules/home/programs/zsh/default.nix b/home/jimbo/programs/zsh/default.nix similarity index 100% rename from modules/home/programs/zsh/default.nix rename to home/jimbo/programs/zsh/default.nix diff --git a/modules/home/settings/aliases/default.nix b/home/jimbo/settings/aliases/default.nix similarity index 100% rename from modules/home/settings/aliases/default.nix rename to home/jimbo/settings/aliases/default.nix diff --git a/modules/home/settings/default.nix b/home/jimbo/settings/default.nix similarity index 100% rename from modules/home/settings/default.nix rename to home/jimbo/settings/default.nix diff --git a/modules/home/settings/nix/default.nix b/home/jimbo/settings/nix/default.nix similarity index 100% rename from modules/home/settings/nix/default.nix rename to home/jimbo/settings/nix/default.nix diff --git a/modules/home/user/default.nix b/home/jimbo/user/default.nix similarity index 100% rename from modules/home/user/default.nix rename to home/jimbo/user/default.nix diff --git a/host/default.nix b/host/default.nix deleted file mode 100644 index 9ace3ed..0000000 --- a/host/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ ... }: -{ - imports = [ - ./disko - ./hardware - ../modules/system - ]; - - networking = { - hostName = "rubble"; - hostId = "e0b1fcef"; - }; - - system = { - extlinux.enable = true; - wireless.enable = true; - stateVersion = "24.11"; - }; -} diff --git a/modules/system/accounts/users/custom/jules/default.nix b/modules/system/accounts/users/custom/jules/default.nix deleted file mode 100644 index fe5fbf9..0000000 --- a/modules/system/accounts/users/custom/jules/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - options.sysusers = lib.mkOption { - type = lib.types.attrs; - }; - - config = { - sysusers.main = "jimbo"; - - users.users."${config.sysusers.main}" = { - hashedPassword = config.secrets.mainAccPass; - isNormalUser = true; - openssh.authorizedKeys.keyFiles = [ - ../../../../../../hosts/tower/id_ed25519.pub - - ../../../../../../hosts/envy/id_ed25519.pub - ../../../../../../hosts/redmond/id_ed25519.pub - - ../../../../../../hosts/kitty/id_ed25519.pub - ../../../../../../hosts/midas/id_ed25519.pub - ../../../../../../hosts/prophet/id_ed25519.pub - ../../../../../../hosts/rubble/id_ed25519.pub - ]; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJahAoF74BY6GCTsFkt1ADKaraFgJJozW1Y1aBTLK0j9 Pixel9" - ]; - extraGroups = [ - "wheel" - "audio" - "video" - "input" - "disk" - "dialout" - "rtkit" - "kvm" - "libvirtd" - "qemu-libvirtd" - "nginx" - "minecraft" - "nfsShare" - ]; - uid = 1000; - shell = pkgs.zsh; - }; - - home-manager.users."${config.sysusers.main}" = import ../../../../../home; - }; -} diff --git a/modules/system/accounts/users/custom/main/default.nix b/modules/system/accounts/users/custom/main/default.nix deleted file mode 100644 index d81968a..0000000 --- a/modules/system/accounts/users/custom/main/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - options.sysusers = lib.mkOption { - type = lib.types.attrs; - }; - - config = { - sysusers.main = "jimbo"; - - users.users."${config.sysusers.main}" = { - hashedPassword = config.secrets.mainAccPass; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2lMkUd+BbXITE5LTg94hEzmA6UKsIIbaf5YOjGoLzl" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFGHaxdTeC1xnTx2BY5LLR5LxhdSkmYoWuOeEuRIz0k" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJahAoF74BY6GCTsFkt1ADKaraFgJJozW1Y1aBTLK0j9 Pixel9" - ]; - extraGroups = [ - "wheel" - "audio" - "video" - "input" - "disk" - "dialout" - "rtkit" - "kvm" - "libvirtd" - "qemu-libvirtd" - "nginx" - "nfsShare" - ]; - uid = 1000; - shell = pkgs.zsh; - }; - - home-manager.users."${config.sysusers.main}" = import ../../../../../home; - }; -} diff --git a/modules/system/default.nix b/modules/system/default.nix deleted file mode 100644 index c3270fb..0000000 --- a/modules/system/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, ... }: -{ - imports = [ - ./accounts - ./devices - ./programs - ./secrets - ./services - ./settings - ]; - - options.system = with lib; { - desktop.enable = lib.mkEnableOption "Enable desktop apps and services"; - server.enable = lib.mkEnableOption "Enable server apps and services"; - }; -} diff --git a/modules/system/devices/boot/extlinux/default.nix b/modules/system/devices/boot/extlinux/default.nix deleted file mode 100644 index 95858ea..0000000 --- a/modules/system/devices/boot/extlinux/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, lib, ... }: -{ - options.system.extlinux.enable = lib.mkEnableOption "Enable extlinux"; - - config.boot.loader = lib.mkIf config.system.extlinux.enable { - grub.enable = false; - systemd-boot.enable = lib.mkForce false; - generic-extlinux-compatible.enable = true; - }; -} diff --git a/modules/system/devices/disks/impermanence/main/default.nix b/modules/system/devices/disks/impermanence/main/default.nix deleted file mode 100644 index cca8d2c..0000000 --- a/modules/system/devices/disks/impermanence/main/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ config, ... }: -{ - environment.persistence."/persist" = { - hideMounts = true; - users.${config.sysusers.main} = { - directories = [ - "Keepers" - "Documents" - "Pictures" - "Videos" - "Games" - "VMs" - - ".snapshots" - ".mozilla" - ".thunderbird" - - ".config/blender" - ".config/dconf" - ".config/vesktop" - ".config/sunshine" - ".config/heroic" - ".config/obs-studio" - - ".local/share/mpd" - ".local/share/nvim/undo" - ".local/share/PrismLauncher" - ".local/share/Steam" - ".local/share/TelegramDesktop" - - ".local/state/wireplumber" - - ".cache/nix-index" - - { directory = ".ssh"; mode = "0700"; } - { directory = ".gnupg"; mode = "0700"; } - { directory = ".local/share/keyrings"; mode = "0700"; } - ]; - files = [ - ".zsh_history" - ".local/state/lazygit/state.yml" - ".local/share/applications" # Create directory so nothing generates inside of it - ]; - }; - }; -} diff --git a/modules/system/devices/networking/wireless/default.nix b/modules/system/devices/networking/wireless/default.nix deleted file mode 100644 index cac36dc..0000000 --- a/modules/system/devices/networking/wireless/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - options.system.wireless.enable = lib.mkEnableOption "Enable wireless stack"; - - config = lib.mkIf config.system.wireless.enable { - networking.wireless.iwd.enable = true; - - environment = { - systemPackages = with pkgs; [ impala ]; - persistence."/persist".directories = [ "/var/lib/iwd/" ]; - }; - }; -} diff --git a/modules/system/secrets/default.nix b/modules/system/secrets/default.nix deleted file mode 100644 index e3a32ce..0000000 Binary files a/modules/system/secrets/default.nix and /dev/null differ diff --git a/modules/system/settings/security/polkit/default.nix b/modules/system/settings/security/polkit/default.nix deleted file mode 100644 index 2539503..0000000 --- a/modules/system/settings/security/polkit/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, lib, ... }: -{ - security = lib.mkIf config.system.desktop.enable { - polkit.enable = true; - rtkit.enable = true; - }; -} diff --git a/modules/system/accounts/default.nix b/system/accounts/default.nix similarity index 100% rename from modules/system/accounts/default.nix rename to system/accounts/default.nix diff --git a/modules/system/accounts/groups/default.nix b/system/accounts/groups/default.nix similarity index 100% rename from modules/system/accounts/groups/default.nix rename to system/accounts/groups/default.nix diff --git a/modules/system/accounts/groups/nfsShare/default.nix b/system/accounts/groups/nfsShare/default.nix similarity index 100% rename from modules/system/accounts/groups/nfsShare/default.nix rename to system/accounts/groups/nfsShare/default.nix diff --git a/modules/system/accounts/users/custom/default.nix b/system/accounts/users/custom/default.nix similarity index 78% rename from modules/system/accounts/users/custom/default.nix rename to system/accounts/users/custom/default.nix index d2600a9..ea5f7b8 100644 --- a/modules/system/accounts/users/custom/default.nix +++ b/system/accounts/users/custom/default.nix @@ -1,7 +1,9 @@ { home-manager, ... }: { imports = [ - ./main + ./jules + ./jimbo + home-manager.nixosModules.home-manager ]; } diff --git a/system/accounts/users/custom/jimbo/default.nix b/system/accounts/users/custom/jimbo/default.nix new file mode 100644 index 0000000..4e10ca3 --- /dev/null +++ b/system/accounts/users/custom/jimbo/default.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: +{ + users.users.jimbo = { + hashedPassword = config.secrets.jimboAccPass; + isNormalUser = true; + createHome = true; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2lMkUd+BbXITE5LTg94hEzmA6UKsIIbaf5YOjGoLzl" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFGHaxdTeC1xnTx2BY5LLR5LxhdSkmYoWuOeEuRIz0k" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJahAoF74BY6GCTsFkt1ADKaraFgJJozW1Y1aBTLK0j9 Pixel9" + ]; + extraGroups = [ + "wheel" + "input" + "disk" + "dialout" + "rtkit" + "kvm" + "libvirtd" + "qemu-libvirtd" + "nginx" + "nfsShare" + ]; + uid = 1000; + shell = pkgs.zsh; + }; + + home-manager.users.jimbo = import ../../../../../home/jimbo; +} diff --git a/system/accounts/users/custom/jules/default.nix b/system/accounts/users/custom/jules/default.nix new file mode 100644 index 0000000..ed6dabc --- /dev/null +++ b/system/accounts/users/custom/jules/default.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: +{ + users.users.jules = { + hashedPassword = config.secrets.jimboAccPass; + isNormalUser = true; + createHome = true; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHwxJcAWuHkKy/Ar37aIoqg34CDcZu7/bh978nYkOgzj jules@jules-pc" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEOszCNP+6rkIS75GyFVhn9o6QpUuGdx/J4rjzROrpSl jules@xeta" + ]; + extraGroups = [ + "wheel" + "input" + "disk" + "dialout" + "kvm" + "libvirtd" + "qemu-libvirtd" + "nginx" + "nfsShare" + ]; + uid = 1001; + shell = pkgs.fish; + }; + + #home-manager.users.jules = import ../../../../../jules/home; +} diff --git a/modules/system/accounts/users/default.nix b/system/accounts/users/default.nix similarity index 100% rename from modules/system/accounts/users/default.nix rename to system/accounts/users/default.nix diff --git a/modules/system/accounts/users/system/default.nix b/system/accounts/users/system/default.nix similarity index 100% rename from modules/system/accounts/users/system/default.nix rename to system/accounts/users/system/default.nix diff --git a/modules/system/accounts/users/system/jellyfin/default.nix b/system/accounts/users/system/jellyfin/default.nix similarity index 100% rename from modules/system/accounts/users/system/jellyfin/default.nix rename to system/accounts/users/system/jellyfin/default.nix diff --git a/modules/system/accounts/users/system/liquidsoap/default.nix b/system/accounts/users/system/liquidsoap/default.nix similarity index 100% rename from modules/system/accounts/users/system/liquidsoap/default.nix rename to system/accounts/users/system/liquidsoap/default.nix diff --git a/modules/system/accounts/users/system/nextcloud/default.nix b/system/accounts/users/system/nextcloud/default.nix similarity index 100% rename from modules/system/accounts/users/system/nextcloud/default.nix rename to system/accounts/users/system/nextcloud/default.nix diff --git a/modules/system/accounts/users/system/nginx/default.nix b/system/accounts/users/system/nginx/default.nix similarity index 100% rename from modules/system/accounts/users/system/nginx/default.nix rename to system/accounts/users/system/nginx/default.nix diff --git a/system/default.nix b/system/default.nix new file mode 100644 index 0000000..e995e23 --- /dev/null +++ b/system/default.nix @@ -0,0 +1,24 @@ +{ lib, ... }: +{ + imports = [ + ./accounts + ./devices + ./programs + ./secrets + ./services + ./settings + ]; + + options.system = with lib; { + server.enable = mkEnableOption "Enable server apps and services"; + }; + + config = { + networking = { + hostName = "rubble"; + hostId = "e0b1fcef"; + }; + + system.stateVersion = "24.11"; + }; +} diff --git a/modules/system/devices/boot/default.nix b/system/devices/boot/default.nix similarity index 100% rename from modules/system/devices/boot/default.nix rename to system/devices/boot/default.nix diff --git a/system/devices/boot/extlinux/default.nix b/system/devices/boot/extlinux/default.nix new file mode 100644 index 0000000..d22c081 --- /dev/null +++ b/system/devices/boot/extlinux/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + boot.loader = { + grub.enable = false; + systemd-boot.enable = false; + generic-extlinux-compatible.enable = true; + }; +} diff --git a/modules/system/devices/boot/services/default.nix b/system/devices/boot/services/default.nix similarity index 100% rename from modules/system/devices/boot/services/default.nix rename to system/devices/boot/services/default.nix diff --git a/modules/system/devices/boot/services/root-reset/default.nix b/system/devices/boot/services/root-reset/default.nix similarity index 100% rename from modules/system/devices/boot/services/root-reset/default.nix rename to system/devices/boot/services/root-reset/default.nix diff --git a/modules/system/devices/default.nix b/system/devices/default.nix similarity index 82% rename from modules/system/devices/default.nix rename to system/devices/default.nix index d4feeb6..df4ca05 100644 --- a/modules/system/devices/default.nix +++ b/system/devices/default.nix @@ -3,6 +3,7 @@ imports = [ ./boot ./disks + ./hardware ./networking ]; } diff --git a/modules/system/devices/disks/default.nix b/system/devices/disks/default.nix similarity index 89% rename from modules/system/devices/disks/default.nix rename to system/devices/disks/default.nix index 727bef5..5e5151f 100644 --- a/modules/system/devices/disks/default.nix +++ b/system/devices/disks/default.nix @@ -1,6 +1,7 @@ { ... }: { imports = [ + ./disko ./filesystems ./immutable ./impermanence diff --git a/host/disko/default.nix b/system/devices/disks/disko/default.nix similarity index 92% rename from host/disko/default.nix rename to system/devices/disks/disko/default.nix index 4022bcc..260124f 100644 --- a/host/disko/default.nix +++ b/system/devices/disks/disko/default.nix @@ -68,8 +68,12 @@ mountOptions = [ "compress=zstd" "noatime" "ssd" ]; }; "/persist/.snapshots" = { }; - "/persist/home/${config.sysusers.main}" = { }; - "/persist/home/${config.sysusers.main}/.snapshots" = { }; + + "/persist/home/jules" = { }; + "/persist/home/jules/.snapshots" = { }; + + "/persist/home/jimbo" = { }; + "/persist/home/jimbo/.snapshots" = { }; }; }; }; diff --git a/modules/system/devices/disks/filesystems/default.nix b/system/devices/disks/filesystems/default.nix similarity index 100% rename from modules/system/devices/disks/filesystems/default.nix rename to system/devices/disks/filesystems/default.nix diff --git a/modules/system/devices/disks/immutable/default.nix b/system/devices/disks/immutable/default.nix similarity index 100% rename from modules/system/devices/disks/immutable/default.nix rename to system/devices/disks/immutable/default.nix diff --git a/modules/system/devices/disks/impermanence/default.nix b/system/devices/disks/impermanence/default.nix similarity index 80% rename from modules/system/devices/disks/impermanence/default.nix rename to system/devices/disks/impermanence/default.nix index e73882d..19c1af8 100644 --- a/modules/system/devices/disks/impermanence/default.nix +++ b/system/devices/disks/impermanence/default.nix @@ -1,8 +1,10 @@ { impermanence, ... }: { imports = [ - ./main + ./jules + ./jimbo ./root + impermanence.nixosModules.impermanence ]; } diff --git a/system/devices/disks/impermanence/jimbo/default.nix b/system/devices/disks/impermanence/jimbo/default.nix new file mode 100644 index 0000000..8b1ee41 --- /dev/null +++ b/system/devices/disks/impermanence/jimbo/default.nix @@ -0,0 +1,26 @@ +{ config, ... }: +{ + environment.persistence."/persist" = { + hideMounts = true; + users.jimbo = { + directories = [ + "Keepers" + "Documents" + "Pictures" + "Videos" + "VMs" + + ".snapshots" + + ".cache/nix-index" + + { directory = ".ssh"; mode = "0700"; } + { directory = ".gnupg"; mode = "0700"; } + ]; + files = [ + ".zsh_history" + ".local/state/lazygit/state.yml" + ]; + }; + }; +} diff --git a/system/devices/disks/impermanence/jules/default.nix b/system/devices/disks/impermanence/jules/default.nix new file mode 100644 index 0000000..9a4a809 --- /dev/null +++ b/system/devices/disks/impermanence/jules/default.nix @@ -0,0 +1,26 @@ +{ config, ... }: +{ + environment.persistence."/persist" = { + hideMounts = true; + users.jules = { + directories = [ + "Keepers" + "Documents" + "Pictures" + "Videos" + "VMs" + + ".snapshots" + + ".cache/nix-index" + + { directory = ".ssh"; mode = "0700"; } + { directory = ".gnupg"; mode = "0700"; } + ]; + files = [ + ".zsh_history" + ".local/state/lazygit/state.yml" + ]; + }; + }; +} diff --git a/modules/system/devices/disks/impermanence/root/default.nix b/system/devices/disks/impermanence/root/default.nix similarity index 100% rename from modules/system/devices/disks/impermanence/root/default.nix rename to system/devices/disks/impermanence/root/default.nix diff --git a/modules/system/devices/disks/snapper/default.nix b/system/devices/disks/snapper/default.nix similarity index 85% rename from modules/system/devices/disks/snapper/default.nix rename to system/devices/disks/snapper/default.nix index 112c378..8135c66 100644 --- a/modules/system/devices/disks/snapper/default.nix +++ b/system/devices/disks/snapper/default.nix @@ -1,7 +1,8 @@ { ... }: { imports = [ - ./main + ./jules + ./jimbo ./root ]; diff --git a/modules/system/devices/disks/snapper/main/default.nix b/system/devices/disks/snapper/jimbo/default.nix similarity index 55% rename from modules/system/devices/disks/snapper/main/default.nix rename to system/devices/disks/snapper/jimbo/default.nix index cac62e4..229beef 100644 --- a/modules/system/devices/disks/snapper/main/default.nix +++ b/system/devices/disks/snapper/jimbo/default.nix @@ -1,7 +1,7 @@ { config, lib, ... }: { - services.snapper.configs.${config.sysusers.main} = lib.mkIf config.environment.persistence."/persist".enable { - SUBVOLUME = "/persist/home/${config.sysusers.main}"; + services.snapper.configs.jimbo = lib.mkIf config.environment.persistence."/persist".enable { + SUBVOLUME = "/persist/home/jimbo"; TIMELINE_CREATE = true; TIMELINE_CLEANUP = true; TIMELINE_LIMIT_DAILY = 1; diff --git a/system/devices/disks/snapper/jules/default.nix b/system/devices/disks/snapper/jules/default.nix new file mode 100644 index 0000000..b9bbf9e --- /dev/null +++ b/system/devices/disks/snapper/jules/default.nix @@ -0,0 +1,12 @@ +{ config, lib, ... }: +{ + services.snapper.configs.jules = lib.mkIf config.environment.persistence."/persist".enable { + SUBVOLUME = "/persist/home/jules"; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; + TIMELINE_LIMIT_DAILY = 1; + TIMELINE_LIMIT_WEEKLY = 1; + TIMELINE_LIMIT_MONTHLY = 0; + TIMELINE_LIMIT_YEARLY = 0; + }; +} diff --git a/modules/system/devices/disks/snapper/root/default.nix b/system/devices/disks/snapper/root/default.nix similarity index 100% rename from modules/system/devices/disks/snapper/root/default.nix rename to system/devices/disks/snapper/root/default.nix diff --git a/host/hardware/default.nix b/system/devices/hardware/default.nix similarity index 100% rename from host/hardware/default.nix rename to system/devices/hardware/default.nix diff --git a/modules/system/devices/networking/default.nix b/system/devices/networking/default.nix similarity index 63% rename from modules/system/devices/networking/default.nix rename to system/devices/networking/default.nix index 5aafa71..34dfe97 100644 --- a/modules/system/devices/networking/default.nix +++ b/system/devices/networking/default.nix @@ -1,9 +1,10 @@ -{ config, ... }: +{ config, pkgs, ... }: { - imports = [ ./wireless ]; - networking = { - wireless.enable = false; + wireless = { + enable = false; + iwd.enable = true; + }; dhcpcd.enable = true; nftables.enable = true; firewall.allowPing = false; @@ -21,4 +22,9 @@ fallbackDns = config.networking.nameservers; dnsovertls = "true"; }; + + environment = { + systemPackages = with pkgs; [ impala ]; + persistence."/persist".directories = [ "/var/lib/iwd/" ]; + }; } diff --git a/modules/system/programs/default.nix b/system/programs/default.nix similarity index 100% rename from modules/system/programs/default.nix rename to system/programs/default.nix diff --git a/modules/system/programs/git/default.nix b/system/programs/git/default.nix similarity index 100% rename from modules/system/programs/git/default.nix rename to system/programs/git/default.nix diff --git a/modules/system/programs/home-manager/default.nix b/system/programs/home-manager/default.nix similarity index 100% rename from modules/system/programs/home-manager/default.nix rename to system/programs/home-manager/default.nix diff --git a/modules/system/programs/shells/default.nix b/system/programs/shells/default.nix similarity index 100% rename from modules/system/programs/shells/default.nix rename to system/programs/shells/default.nix diff --git a/system/secrets/default.nix b/system/secrets/default.nix new file mode 100644 index 0000000..e80a76e --- /dev/null +++ b/system/secrets/default.nix @@ -0,0 +1,29 @@ +{ config, lib, ... }: +{ + options.secrets = lib.mkOption { + type = lib.types.attrs; + }; + + config.secrets = { + # User passwords, generated with 'mkpasswd -m sha-512' + jimboAccPass = "$6$gYpE.pG/zPXgin06$2kydjDfd0K62Dhf9P0PFvJhRNz6xIC/bHYaf/XYqyKcLyZNzPQpy8uy9tCRcSYlj1wwBhzVtTRyItwajOHCEj0"; + + # Initial password for apps that ask for it + initialPass = "changeme"; + + # Cloudflare API key + flareApiKey = "CLOUDFLARE_API_TOKEN=changeme"; + + # Matrix secrets + matrixSecret = "changeme"; + coturnSecret = "changeme"; + + # Transmission credentials, plaintext + transmissionCredFile = '' + { + "rpc-username": "jimbo", + "rpc-password": "changeme" + } + ''; + }; +} diff --git a/modules/system/services/default.nix b/system/services/default.nix similarity index 100% rename from modules/system/services/default.nix rename to system/services/default.nix diff --git a/modules/system/services/general/default.nix b/system/services/general/default.nix similarity index 100% rename from modules/system/services/general/default.nix rename to system/services/general/default.nix diff --git a/modules/system/services/general/earlyoom/default.nix b/system/services/general/earlyoom/default.nix similarity index 100% rename from modules/system/services/general/earlyoom/default.nix rename to system/services/general/earlyoom/default.nix diff --git a/modules/system/services/general/libvirtd/default.nix b/system/services/general/libvirtd/default.nix similarity index 91% rename from modules/system/services/general/libvirtd/default.nix rename to system/services/general/libvirtd/default.nix index 9324286..76e0469 100644 --- a/modules/system/services/general/libvirtd/default.nix +++ b/system/services/general/libvirtd/default.nix @@ -33,7 +33,5 @@ "virbr0" "virbr1" ]; - - systemd.tmpfiles.rules = [ "f /dev/shm/looking-glass 0660 - libvirtd -" ]; }; } diff --git a/modules/system/services/general/snowflake/default.nix b/system/services/general/snowflake/default.nix similarity index 100% rename from modules/system/services/general/snowflake/default.nix rename to system/services/general/snowflake/default.nix diff --git a/modules/system/services/general/ssh/default.nix b/system/services/general/ssh/default.nix similarity index 100% rename from modules/system/services/general/ssh/default.nix rename to system/services/general/ssh/default.nix diff --git a/modules/system/services/general/ssh/fail2ban/default.nix b/system/services/general/ssh/fail2ban/default.nix similarity index 100% rename from modules/system/services/general/ssh/fail2ban/default.nix rename to system/services/general/ssh/fail2ban/default.nix diff --git a/modules/system/services/general/tlp/default.nix b/system/services/general/tlp/default.nix similarity index 100% rename from modules/system/services/general/tlp/default.nix rename to system/services/general/tlp/default.nix diff --git a/modules/system/services/general/userborn/default.nix b/system/services/general/userborn/default.nix similarity index 100% rename from modules/system/services/general/userborn/default.nix rename to system/services/general/userborn/default.nix diff --git a/modules/system/services/server/cfdyndns/default.nix b/system/services/server/cfdyndns/default.nix similarity index 100% rename from modules/system/services/server/cfdyndns/default.nix rename to system/services/server/cfdyndns/default.nix diff --git a/modules/system/services/server/default.nix b/system/services/server/default.nix similarity index 100% rename from modules/system/services/server/default.nix rename to system/services/server/default.nix diff --git a/modules/system/services/server/fileserver/default.nix b/system/services/server/fileserver/default.nix similarity index 100% rename from modules/system/services/server/fileserver/default.nix rename to system/services/server/fileserver/default.nix diff --git a/modules/system/services/server/fileserver/jellyfin/default.nix b/system/services/server/fileserver/jellyfin/default.nix similarity index 100% rename from modules/system/services/server/fileserver/jellyfin/default.nix rename to system/services/server/fileserver/jellyfin/default.nix diff --git a/modules/system/services/server/fileserver/jellyfin/nginx/default.nix b/system/services/server/fileserver/jellyfin/nginx/default.nix similarity index 100% rename from modules/system/services/server/fileserver/jellyfin/nginx/default.nix rename to system/services/server/fileserver/jellyfin/nginx/default.nix diff --git a/modules/system/services/server/fileserver/nextcloud/collabora/default.nix b/system/services/server/fileserver/nextcloud/collabora/default.nix similarity index 100% rename from modules/system/services/server/fileserver/nextcloud/collabora/default.nix rename to system/services/server/fileserver/nextcloud/collabora/default.nix diff --git a/modules/system/services/server/fileserver/nextcloud/default.nix b/system/services/server/fileserver/nextcloud/default.nix similarity index 100% rename from modules/system/services/server/fileserver/nextcloud/default.nix rename to system/services/server/fileserver/nextcloud/default.nix diff --git a/modules/system/services/server/fileserver/nextcloud/nginx/default.nix b/system/services/server/fileserver/nextcloud/nginx/default.nix similarity index 100% rename from modules/system/services/server/fileserver/nextcloud/nginx/default.nix rename to system/services/server/fileserver/nextcloud/nginx/default.nix diff --git a/modules/system/services/server/fileserver/nfs/default.nix b/system/services/server/fileserver/nfs/default.nix similarity index 100% rename from modules/system/services/server/fileserver/nfs/default.nix rename to system/services/server/fileserver/nfs/default.nix diff --git a/modules/system/services/server/forgejo/default.nix b/system/services/server/forgejo/default.nix similarity index 100% rename from modules/system/services/server/forgejo/default.nix rename to system/services/server/forgejo/default.nix diff --git a/modules/system/services/server/forgejo/nginx/default.nix b/system/services/server/forgejo/nginx/default.nix similarity index 100% rename from modules/system/services/server/forgejo/nginx/default.nix rename to system/services/server/forgejo/nginx/default.nix diff --git a/modules/system/services/server/mysql/default.nix b/system/services/server/mysql/default.nix similarity index 100% rename from modules/system/services/server/mysql/default.nix rename to system/services/server/mysql/default.nix diff --git a/modules/system/services/server/socialserver/default.nix b/system/services/server/socialserver/default.nix similarity index 100% rename from modules/system/services/server/socialserver/default.nix rename to system/services/server/socialserver/default.nix diff --git a/modules/system/services/server/socialserver/mastodon/default.nix b/system/services/server/socialserver/mastodon/default.nix similarity index 100% rename from modules/system/services/server/socialserver/mastodon/default.nix rename to system/services/server/socialserver/mastodon/default.nix diff --git a/modules/system/services/server/socialserver/matrix/coturn/default.nix b/system/services/server/socialserver/matrix/coturn/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/coturn/default.nix rename to system/services/server/socialserver/matrix/coturn/default.nix diff --git a/modules/system/services/server/socialserver/matrix/coturn/nginx/default.nix b/system/services/server/socialserver/matrix/coturn/nginx/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/coturn/nginx/default.nix rename to system/services/server/socialserver/matrix/coturn/nginx/default.nix diff --git a/modules/system/services/server/socialserver/matrix/default.nix b/system/services/server/socialserver/matrix/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/default.nix rename to system/services/server/socialserver/matrix/default.nix diff --git a/modules/system/services/server/socialserver/matrix/element/default.nix b/system/services/server/socialserver/matrix/element/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/element/default.nix rename to system/services/server/socialserver/matrix/element/default.nix diff --git a/modules/system/services/server/socialserver/matrix/element/nginx/default.nix b/system/services/server/socialserver/matrix/element/nginx/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/element/nginx/default.nix rename to system/services/server/socialserver/matrix/element/nginx/default.nix diff --git a/modules/system/services/server/socialserver/matrix/synapse/default.nix b/system/services/server/socialserver/matrix/synapse/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/synapse/default.nix rename to system/services/server/socialserver/matrix/synapse/default.nix diff --git a/modules/system/services/server/socialserver/matrix/synapse/nginx/default.nix b/system/services/server/socialserver/matrix/synapse/nginx/default.nix similarity index 100% rename from modules/system/services/server/socialserver/matrix/synapse/nginx/default.nix rename to system/services/server/socialserver/matrix/synapse/nginx/default.nix diff --git a/modules/system/services/server/socialserver/owncast/default.nix b/system/services/server/socialserver/owncast/default.nix similarity index 100% rename from modules/system/services/server/socialserver/owncast/default.nix rename to system/services/server/socialserver/owncast/default.nix diff --git a/modules/system/services/server/socialserver/owncast/nginx/default.nix b/system/services/server/socialserver/owncast/nginx/default.nix similarity index 100% rename from modules/system/services/server/socialserver/owncast/nginx/default.nix rename to system/services/server/socialserver/owncast/nginx/default.nix diff --git a/modules/system/services/server/transmission/default.nix b/system/services/server/transmission/default.nix similarity index 100% rename from modules/system/services/server/transmission/default.nix rename to system/services/server/transmission/default.nix diff --git a/modules/system/services/server/transmission/nginx/default.nix b/system/services/server/transmission/nginx/default.nix similarity index 100% rename from modules/system/services/server/transmission/nginx/default.nix rename to system/services/server/transmission/nginx/default.nix diff --git a/modules/system/services/server/vaultwarden/default.nix b/system/services/server/vaultwarden/default.nix similarity index 100% rename from modules/system/services/server/vaultwarden/default.nix rename to system/services/server/vaultwarden/default.nix diff --git a/modules/system/services/server/vaultwarden/nginx/default.nix b/system/services/server/vaultwarden/nginx/default.nix similarity index 100% rename from modules/system/services/server/vaultwarden/nginx/default.nix rename to system/services/server/vaultwarden/nginx/default.nix diff --git a/modules/system/services/server/webserver/acme/default.nix b/system/services/server/webserver/acme/default.nix similarity index 100% rename from modules/system/services/server/webserver/acme/default.nix rename to system/services/server/webserver/acme/default.nix diff --git a/modules/system/services/server/webserver/default.nix b/system/services/server/webserver/default.nix similarity index 100% rename from modules/system/services/server/webserver/default.nix rename to system/services/server/webserver/default.nix diff --git a/modules/system/services/server/webserver/nginx/default.nix b/system/services/server/webserver/nginx/default.nix similarity index 100% rename from modules/system/services/server/webserver/nginx/default.nix rename to system/services/server/webserver/nginx/default.nix diff --git a/modules/system/services/server/webserver/nginx/rtmp/default.nix b/system/services/server/webserver/nginx/rtmp/default.nix similarity index 100% rename from modules/system/services/server/webserver/nginx/rtmp/default.nix rename to system/services/server/webserver/nginx/rtmp/default.nix diff --git a/modules/system/services/server/webserver/nginx/virtualhosts/default.nix b/system/services/server/webserver/nginx/virtualhosts/default.nix similarity index 100% rename from modules/system/services/server/webserver/nginx/virtualhosts/default.nix rename to system/services/server/webserver/nginx/virtualhosts/default.nix diff --git a/modules/system/services/server/webserver/nginx/virtualhosts/jimbosfiles/default.nix b/system/services/server/webserver/nginx/virtualhosts/jimbosfiles/default.nix similarity index 100% rename from modules/system/services/server/webserver/nginx/virtualhosts/jimbosfiles/default.nix rename to system/services/server/webserver/nginx/virtualhosts/jimbosfiles/default.nix diff --git a/modules/system/services/server/webserver/nginx/virtualhosts/nixfox/default.nix b/system/services/server/webserver/nginx/virtualhosts/nixfox/default.nix similarity index 100% rename from modules/system/services/server/webserver/nginx/virtualhosts/nixfox/default.nix rename to system/services/server/webserver/nginx/virtualhosts/nixfox/default.nix diff --git a/modules/system/settings/default.nix b/system/settings/default.nix similarity index 100% rename from modules/system/settings/default.nix rename to system/settings/default.nix diff --git a/modules/system/settings/minimal/default.nix b/system/settings/minimal/default.nix similarity index 100% rename from modules/system/settings/minimal/default.nix rename to system/settings/minimal/default.nix diff --git a/modules/system/settings/nix/default.nix b/system/settings/nix/default.nix similarity index 100% rename from modules/system/settings/nix/default.nix rename to system/settings/nix/default.nix diff --git a/modules/system/settings/nix/gc/default.nix b/system/settings/nix/gc/default.nix similarity index 100% rename from modules/system/settings/nix/gc/default.nix rename to system/settings/nix/gc/default.nix diff --git a/modules/system/settings/security/apparmor/default.nix b/system/settings/security/apparmor/default.nix similarity index 100% rename from modules/system/settings/security/apparmor/default.nix rename to system/settings/security/apparmor/default.nix diff --git a/modules/system/settings/security/default.nix b/system/settings/security/default.nix similarity index 61% rename from modules/system/settings/security/default.nix rename to system/settings/security/default.nix index e187a55..d9e1871 100644 --- a/modules/system/settings/security/default.nix +++ b/system/settings/security/default.nix @@ -2,7 +2,6 @@ { imports = [ ./apparmor - ./polkit - ./privilege + ./doas ]; } diff --git a/modules/system/settings/security/privilege/default.nix b/system/settings/security/doas/default.nix similarity index 76% rename from modules/system/settings/security/privilege/default.nix rename to system/settings/security/doas/default.nix index b40d8ea..cd2e2dd 100644 --- a/modules/system/settings/security/privilege/default.nix +++ b/system/settings/security/doas/default.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { security = { sudo.enable = false; @@ -13,4 +13,6 @@ ]; }; }; + + environment.systemPackages = with pkgs; [ doas-sudo-shim ]; } diff --git a/modules/system/settings/timezone/default.nix b/system/settings/timezone/default.nix similarity index 100% rename from modules/system/settings/timezone/default.nix rename to system/settings/timezone/default.nix