diff --git a/home-manager/sajenim/features/desktop/discord/default.nix b/home-manager/sajenim/features/desktop/discord/default.nix index 4fb77a4..838f8fe 100644 --- a/home-manager/sajenim/features/desktop/discord/default.nix +++ b/home-manager/sajenim/features/desktop/discord/default.nix @@ -14,4 +14,9 @@ enable = true; source = ./config/custom.css; }; + + home.persistence."/persist/home/sajenim".directories = [ + ".config/discord" + ".config/BetterDiscord" + ]; } diff --git a/home-manager/sajenim/features/desktop/email.nix b/home-manager/sajenim/features/desktop/email.nix index 3461301..346a889 100644 --- a/home-manager/sajenim/features/desktop/email.nix +++ b/home-manager/sajenim/features/desktop/email.nix @@ -101,4 +101,15 @@ proton.isDefault = true; }; }; + + home.persistence."/persist/home/sajenim" = { + directories = [ + # email configuration + ".config/protonmail" + # email cache of messages + ".local/share/protonmail" + # gpg encrypted passwords + ".password-store" + ]; + }; } diff --git a/home-manager/sajenim/features/desktop/irc.nix b/home-manager/sajenim/features/desktop/irc.nix index 7bb487e..cc6b3f4 100644 --- a/home-manager/sajenim/features/desktop/irc.nix +++ b/home-manager/sajenim/features/desktop/irc.nix @@ -2,4 +2,15 @@ home.packages = with pkgs; [ weechat ]; + + home.persistence."/persist/home/sajenim" = { + directories = [ + # WeeChat configuration files: *.conf, certificates, etc. + ".config/weechat" + # WeeChat data files: logs, scripts, scripts data, xfer files, etc. + ".local/share/weechat" + # WeeChat cache files: scripts cache. + ".cache/weechat" + ]; + }; } diff --git a/home-manager/sajenim/features/printing/default.nix b/home-manager/sajenim/features/printing/default.nix index 3b11048..8a0b051 100644 --- a/home-manager/sajenim/features/printing/default.nix +++ b/home-manager/sajenim/features/printing/default.nix @@ -7,5 +7,10 @@ openscad unstable.prusa-slicer ]; + persistence."/persist/home/sajenim" = { + directories = [ + ".config/PrusaSlicer" + ]; + }; }; } diff --git a/home-manager/sajenim/fuchsia.nix b/home-manager/sajenim/fuchsia.nix index efc1796..629f38c 100644 --- a/home-manager/sajenim/fuchsia.nix +++ b/home-manager/sajenim/fuchsia.nix @@ -24,5 +24,28 @@ # Misc firefox ]; + + persistence."/persist/home/sajenim" = { + directories = [ + ".mozilla" + # Hidden user data + ".repositories" + ".print" + # Mutable configurations + ".config/htop" + ".config/lazygit" + ".config/Yubico" + # Application specific data + ".local/share/PrismLauncher" + ".local/share/Jellyfin Media Player" + # Our user data + "Documents" + "Downloads" + "Games" + "Music" + "Pictures" + "Videos" + ]; + }; }; } diff --git a/home-manager/sajenim/global/default.nix b/home-manager/sajenim/global/default.nix index e37d20f..20182f4 100644 --- a/home-manager/sajenim/global/default.nix +++ b/home-manager/sajenim/global/default.nix @@ -1,5 +1,10 @@ -{outputs, ...}: { +{ + inputs, + outputs, + ... +}: { imports = [ + inputs.impermanence.nixosModules.home-manager.impermanence ../features/cli ]; @@ -23,6 +28,22 @@ sessionVariables = { EDITOR = "nvim"; }; + + persistence."/persist/home/sajenim" = { + directories = [ + ".gnupg" + ".ssh" + ".var/app" + ".local/bin" + ".local/share/flatpak" + ".local/share/nix" + ".local/share/direnv" + ]; + files = [ + ".zsh_history" + ]; + allowOther = true; + }; }; systemd.user.startServices = "sd-switch"; diff --git a/nixos/common/users/sajenim/default.nix b/nixos/common/users/sajenim/default.nix index 2c04c83..7e1678f 100644 --- a/nixos/common/users/sajenim/default.nix +++ b/nixos/common/users/sajenim/default.nix @@ -8,7 +8,6 @@ imports = [ inputs.home-manager.nixosModules.home-manager ]; - users.users.sajenim = { isNormalUser = true; extraGroups = ["audio" "docker" "networkmanager" "wheel" "adbusers"]; @@ -27,10 +26,4 @@ }; backupFileExtension = "bak"; }; - - fileSystems."/home/sajenim" = { - device = "/dev/disk/by-label/data"; - fsType = "btrfs"; - options = ["subvol=sajenim" "compress=zstd"]; - }; } diff --git a/nixos/common/users/spectre/default.nix b/nixos/common/users/spectre/default.nix index e7535c5..776c43e 100644 --- a/nixos/common/users/spectre/default.nix +++ b/nixos/common/users/spectre/default.nix @@ -6,17 +6,10 @@ imports = [ inputs.home-manager.nixosModules.home-manager ]; - users.users.spectre = { isNormalUser = true; shell = pkgs.zsh; hashedPassword = "$y$j9T$eCJ0MDPsx3tww9LP0LU8..$sE8u5keO7QNKNAR1t2R6GqsDzvGD0Xn9Fi3to14Gf9/"; }; users.mutableUsers = false; - - fileSystems."/home/spectre" = { - device = "/dev/disk/by-label/data"; - fsType = "btrfs"; - options = ["subvol=spectre" "compress=zstd"]; - }; } diff --git a/nixos/viridian/hardware-configuration.nix b/nixos/viridian/hardware-configuration.nix index ca3d278..66875fb 100644 --- a/nixos/viridian/hardware-configuration.nix +++ b/nixos/viridian/hardware-configuration.nix @@ -60,13 +60,13 @@ in { }; fileSystems."/srv/containers" = { - device = "/dev/disk/by-label/data"; + device = "/dev/disk/by-label/${hostname}"; fsType = "btrfs"; options = ["subvol=containers" "compress=zstd"]; }; fileSystems."/srv/services" = { - device = "/dev/disk/by-label/data"; + device = "/dev/disk/by-label/${hostname}"; fsType = "btrfs"; options = ["subvol=services" "compress=zstd"]; }; diff --git a/nixos/viridian/services/traefik/middlewares.nix b/nixos/viridian/services/traefik/middlewares.nix index 28f84f7..cc0becb 100644 --- a/nixos/viridian/services/traefik/middlewares.nix +++ b/nixos/viridian/services/traefik/middlewares.nix @@ -11,7 +11,7 @@ # Restrict access to internal networks internal.ipwhitelist.sourcerange = [ "127.0.0.1/32" # localhost - "192.168.50.1/24" # lan + "192.168.20.1/24" # lan ]; # Restrict access based on geo-location diff --git a/nixos/viridian/services/traefik/routers.nix b/nixos/viridian/services/traefik/routers.nix index 82e5cca..0fa790c 100644 --- a/nixos/viridian/services/traefik/routers.nix +++ b/nixos/viridian/services/traefik/routers.nix @@ -6,7 +6,7 @@ "websecure" ]; middlewares = [ - "internal" + "admin" ]; service = "api@internal"; }; @@ -17,7 +17,7 @@ "websecure" ]; middlewares = [ - "internal" + "admin" ]; service = "ender1"; }; diff --git a/nixos/viridian/services/traefik/services.nix b/nixos/viridian/services/traefik/services.nix index bfdb5fa..b03fc0c 100644 --- a/nixos/viridian/services/traefik/services.nix +++ b/nixos/viridian/services/traefik/services.nix @@ -1,7 +1,7 @@ {...}: { services.traefik.dynamicConfigOptions.http.services = { ender1.loadBalancer.servers = [ - {url = "http://192.168.50.201:80";} + {url = "http://192.168.1.103:80";} ]; }; }