4R56PJDQPYZ5FLFAMZSNY7UI5TKF6N5YCHCJU3ZBV5FHB46GYM5QC TOQGJCOBYAYOBJQEIY24HPJWLZNGLZM2SG2WBNIME4M2HKCBHURQC OV3B3FXMIAYKNA5AL3BI2QC3H2H4H5K3R2J4WIYVCLB2IMOBFV3QC HQLZFPXCNHJYE7Q7VTREOGT5C7JGHN6YA6NVXMC75NO5PI7O376AC XJEQEQB2GAHTGP2DDUEM2UOTFTUBOJVATMXDUNZ45UCXLHYZYBYQC PPG7MQTEXFXG6GOERD46KYJL2UNJNXASZ67VGUQI2D7R6SMRGX5QC FCJQ2IEKQIBAGEDJZNVFH2DCCWMGDMBFJH4HDEGBM22X6H6CQSCQC JCLTJSLTU7TPCKNU6WOCRVA7AS6ZJH2DSICEP6LVRBG76YCOKL3AC XA6QTEAO2EHEC7GWKSI7WBAYCFF2DZN7KOWU4K2GTQVJW5A6YHEQC KBJG5YQLR5S4H5J6PWFBE6BBBDHBW5ERYLYJ4MIJ6AQU2QRLAAVAC 4FC27KXBPPCFYKQXB6VJDN7KPP3LG3FKEIYQG5D6MB6MCSMLAPFAC TQMTVZUXZKKOA5P3RQGA55JXDWIUR5LIQR6LWWJGPXTROQMRR24QC USCUP4XTLWPZDJYVDWN4QNUUE54Y64SNFC6KMQM7V3RTYE4GHHRAC E775G5SLTRL2DQZUWR4GIKFREYWW7KKYHNCMRFEX4Y2NF7QWKEGQC RTBMBSBABSGTRICJ4AWBKWO3JJHBRKV6FGOMYPDD7X6SS6X35ZIQC KE4A6XYYKVBEVCWG4TPFRAO5EYJHCJB25VWNXB2NZNXNEPSDKH6QC XPKDQGFUFF4BT32ODPEJRZGBEOGZVDRAEN2EOWU7DBIN2QQX6KUAC HYBPXVO2BD6SK7IVFLS6YZFEN2HMSZDALXIUCJGSKVB3LYMLCWJAC BDDKGGL7QNTFAX3ARMV4VK2XQCLOVJNFLXFCZB7IFCGEATCMVBIAC 25SW345QYCSTF7R434DKRRLG5C7AU4O26TNPP6V2W7USECCZFDZQC TR657CYRSAAKY4T3W42T77ICTCKM3TP4E664LVNC2ONWXTH4L6FQC VWR3XCGQZU4GXXBVWEFGPQXHUOXWPOZBNQHL67GAX3QGP7LNKG3AC DQKCPBYIW34BPR3BNMCBID7HL3MHGKR47LGBJ6B7VSIKMCOV3EFAC SUJ7TKWXHFZCEEQFGLRT4PZ4TYAXFLNDZVE57SN2AHXTLEPX7WXAC ISKRPSY5MU5XKIV7FTBDYDPRKV6ONINH2SDIXY7QDGTXNCYN7YFQC 4GGQX4QFLTB4FMCYJOIBPOAMZVC5FXUNEZGF3A7E7GUNNVM5WQHAC CXQHHMGDARDYZSNANWDBF4VVG5YOJ54FEG6PUK6KCKLM25EDB4OAC 4K4VPMKSHRVH2NUKJXSTVESZFRQX6QHMGXVBJ63CFYIJTCTPTTCQC ZBZAKBTWMFRBVZ66JMLA22M3JRULPIH7G7OBU2AT3AHHEA3E4KOQC L4TVLY56OS5DD74WRJ4QMNMRNG5Y4SKVAR2NDTZMKQULY5LYC5DAC MBMEGIUAQV6INNHFZFMB4YFU7X6FQJR7ABOVZKAOFJ7I6NQEILTQC MLDUR2PPHWVC5RUX6RXRUVIS6W4TUPWNMPFQIVQOJVE2E4MOFVRQC P5QV3CCWAECHHBFH5VZDWJMMQQ45I4YE75Y4YMY4KNXFHKFLDQRAC RMEF7B6G234OZPIQMSREKOH737QKPSBMCHM7NYO7UYQER7T4I7VQC LLRYXY25L67F5SIWZCZ3MXBC67T6LMQ3JBBJJR2ESKALWHXT4YGAC J4AF2SGNGYFN6W3Y5WSLBUEHDPQURTXJUXXY7DWRQ6JTV5DCUNYAC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC 7D4GKL6CFMV4VSO72GM6KNE625N57QQFQGBTEVX2B432UIZCYQ4AC NOYPCBBLDHMKY57IE3HEEG3NO2O4NIHZ4BEX7BZNERK56QT6DMWQC WTNKZA5LDOJJ3KUFFBMOIL4EZ5MUSRZGYVOJPB6DE2FHWQIAZCYAC IWFDDZQDLBZCSPQP3O2AWL5IHHM7KG5KL5JF7QG5AFLXSPLQQUTAC 536UGGBYLNT7PYVG6DMOFVED73SFIEKTGX47PP5LGF56UCES5MNAC UIRZ4SMZZC2QZ7D4QFQJZZKFA3QOA5SOQBOAGOG3RLXTCSLS3QJAC 6CN27KP7L546BBPTWWVFSXF5Z6ZIC7U2XTXJJJRUYQEFMP76YMVAC GQYLHW2XMCTVLK6WFVJZ5ROCZVAGSX22M5MBZU554DRPXOZ5CBMAC 5M7GNHVVRCANWW2SVVG3CI32MI5HKNJCPF34M2HPZC2J6FVESF3AC { config, lib, ... }: letinherit (lib) last mkConst mkValue splitString;in {options = {os = mkConst <| last <| splitString "-" config.nixpkgs.hostPlatform.system;isLinux = mkConst <| config.os == "linux";isDarwin = mkConst <| config.os == "darwin";type = mkValue "server";isDesktop = mkConst <| config.type == "desktop";isServer = mkConst <| config.type == "server";};}
{ self, config, inputs, lib, pkgs, keys, ... }: letinherit (lib) enabled mkIf optionalAttrs;in {# Common user configurationusers.users.james = {shell = pkgs.nushell;} // optionalAttrs config.isLinux {isNormalUser = true;extraGroups = [ "wheel" ];openssh.authorizedKeys.keys = [ keys.james ];} // optionalAttrs config.isDarwin {name = "james";home = "/Users/james";};# Home Manager common config (Linux only)home-manager = mkIf config.isLinux {users.james = {};sharedModules = [{home.stateVersion = "24.11";programs.home-manager = enabled;}];};}
{ self, config, inputs, lib, pkgs, ... }: letinherit (lib) attrsToList concatStringsSep const disabled filter filterAttrs flip id isType mapAttrs mapAttrsToList merge mkAfter optionalAttrs optionals removeAttrs;registryMap = inputs|> filterAttrs (const <| isType "flake");in {# will do later# nix.distributedBuilds = true;# nix.buildMachines = self.nixosConfigurations# |> attrsToList# |> filter ({ name, value }:# name != (config.networking.hostName or config.networking.computerName or "") &&# value.config.users.users ? build)# |> map ({ name, value }: {# hostName = name;# maxJobs = 20;# protocol = "ssh-ng";# sshUser = "build";# supportedFeatures = [ "benchmark" "big-parallel" "kvm" "nixos-test" ];# system = value.config.nixpkgs.hostPlatform.system;# });nix.channel = disabled;nix.gc = merge {automatic = true;options = "--delete-older-than 7d";} <| optionalAttrs (pkgs.stdenv.isLinux) {dates = "weekly";persistent = true;};nix.nixPath = registryMap|> mapAttrsToList (name: value: "${name}=${value}")|> (if pkgs.stdenv.isDarwin then concatStringsSep ":" else id);nix.registry = registryMap // { default = inputs.nixpkgs; }|> mapAttrs (_: flake: { inherit flake; });nix.settings = (import <| self + /flake.nix).nixConfig|> flip removeAttrs (optionals pkgs.stdenv.isDarwin [ "use-cgroups" "cgroups" ]);nix.optimise.automatic = true;}
{imports = [(modulesPath + "/installer/scan/not-detected.nix")(modulesPath + "/profiles/qemu-guest.nix")./disk.nix];boot.loader.grub = {efiSupport = true;efiInstallAsRemovable = true;};# user configurationusers.users.james = {isNormalUser = true;shell = pkgs.nushell; # nushell as default shell};settings = {};};networking = {hostName = "plum";};};time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";# 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. Don't change this after installation.system.stateVersion = "24.11";}useDHCP = lib.mkDefault true;interfaces = {};trustedInterfaces = [ interface ];allowedTCPPorts = [ 22 80 443 ];domain = "plumj.am";firewall = enabled {services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";services.openssh = enabled {home-manager.users = {james = {};};};home-manager.sharedModules = [{home.stateVersion = "24.11";programs.home-manager.enable = true;}];programs.mosh = enabled {openFirewall = true;users.users.root = {hashedPasswordFile = config.age.secrets.password.path;};openssh.authorizedKeys.keys = [ keys.james ];hashedPasswordFile = config.age.secrets.password.path;extraGroups = [ "wheel" ];openssh.authorizedKeys.keys = [ keys.james ];users.mutableUsers = false;age.identityPaths = [ "/root/.ssh/id" ];age.secrets.password.file = ./password.age;age.secrets.id.file = ./id.age;zramSwap = enabled;nix.settings.experimental-features = [ "nix-command" "flakes" "pipe-operators" ];security.sudo = enabled {execWheelOnly = true;};./cache/default.nix./grafana./grafana/prometheus.nix./uptime-kuma(self + /modules/forgejo.nix)(self + /modules/site.nix)(self + /modules/matrix.nix)(self + /modules/element.nix)(self + /modules/linux/node-exporter.nix)letinherit (lib) enabled;ininterface = "ts0";{ pkgs, lib, modulesPath, config, keys, self, ... }:
] ++ (collectNix ./. |> remove ./default.nix);
({ pkgs, lib, modulesPath, config, keys, self, ... }: {imports = [# hetzner(modulesPath + "/installer/scan/not-detected.nix")(modulesPath + "/profiles/qemu-guest.nix")./disk.nix./cache/default.nix./grafana./grafana/prometheus.nix./uptime-kuma(self + /modules/forgejo.nix)(self + /modules/site.nix)(self + /modules/matrix.nix)(self + /modules/element.nix)(self + /modules/linux/node-exporter.nix)(self + /modules/system.nix)(self + /modules/nix.nix)(self + /modules/shared.nix)];security.sudo = enabled {execWheelOnly = true;};nixpkgs.hostPlatform.system = "x86_64-linux";time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";services.openssh = enabled {hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];settings = {PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";};};boot.loader.grub = {efiSupport = true;efiInstallAsRemovable = true;};zramSwap = enabled;age.identityPaths = [ "/root/.ssh/id" ];age.secrets.password.file = ./password.age;age.secrets.id.file = ./id.age;users.mutableUsers = false;users.users.james.hashedPasswordFile = config.age.secrets.password.path;users.users.root = {openssh.authorizedKeys.keys = [ keys.james ];hashedPasswordFile = config.age.secrets.password.path;};programs.mosh = enabled {openFirewall = true;};services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};networking = {hostName = "plum";domain = "plumj.am";firewall = enabled {trustedInterfaces = [ interface ];allowedTCPPorts = [ 22 80 443 ];};useDHCP = lib.mkDefault true;interfaces = {};};system.stateVersion = "24.11";})];
{pkgs,...}:{nixpkgs.config.allowUnfree = true;wsl = {enable = true;defaultUser = "james";startMenuLaunchers = true;useWindowsDriver = true;docker-desktop.enable = true;# usb passthroughusbip = {enable = true;};wslConf = {automount.root = "/mnt";automount.options = "metadata,uid=1000,gid=100,noatime";boot.systemd = true;interop.enabled = true;interop.appendWindowsPath = true;network.generateHosts = true;};};nix = {settings = {experimental-features = ["nix-command""flakes"];auto-optimise-store = true;};gc = {automatic = true;dates = "weekly";options = "--delete-older-than 7d";};};# user configurationusers.users.james = {isNormalUser = true;shell = pkgs.nushell; # nushell as default shellextraGroups = ["wheel" # sudo access"docker" # if using Docker];};users.users.root = {openssh.authorizedKeys.keys = [ keys.james ];};home-manager.users = {james = {};};};};networking = {};time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";# 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. Don't change this after installation.system.stateVersion = "24.11";}hostName = "pear";firewall = enabled {trustedInterfaces = [ interface ];allowedTCPPorts = [ 22 ];};useDHCP = lib.mkDefault true;interfaces = {};services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};services.openssh = enabled {settings = {PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";};hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];programs.mosh = enabled {openFirewall = true;home-manager.sharedModules = [{home.stateVersion = "24.11";programs.home-manager.enable = true;}];openssh.authorizedKeys.keys = [ keys.james ];"dialout"persistent = true;trusted-users = [ "james" ];"pipe-operators"# for usbipextraBin = [{ src = "${lib.getExe' pkgs.coreutils-full "ls"}"; }{ src = "${lib.getExe pkgs.bash}"; }{ src = "${lib.getExe' pkgs.linuxPackages.usbip "usbip"}"; }];# autoAttach = [ "1-9" ]; # add device IDs like "4-1" to auto-attach USB devices# agenix configurationage.identityPaths = [ "/root/.ssh/id" ];age.secrets.id.file = ./id.age;# nixpkgs.config.allowUnsupportedSystem = true;letinherit (lib) enabled;ininterface = "ts0";lib,config,keys,
] ++ (collectNix ./. |> remove ./default.nix);
({ pkgs, lib, config, keys, self, ... }: {imports = [(self + /modules/system.nix)(self + /modules/nix.nix)(self + /modules/shared.nix)];security.sudo = enabled {execWheelOnly = true;};nixpkgs.hostPlatform.system = "x86_64-linux";nixpkgs.config.allowUnfree = true;type = "desktop";time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";services.openssh = enabled {hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];settings = {PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";};};age.identityPaths = [ "/root/.ssh/id" ];age.secrets.id.file = ./id.age;wsl = enabled {defaultUser = "james";startMenuLaunchers = true;useWindowsDriver = true;docker-desktop.enable = true;# usb passthroughusbip = enabled {# autoAttach = [ "1-9" ]; # add device IDs like "4-1" to auto-attach USB devices};# for usbipextraBin = [{ src = "${lib.getExe' pkgs.coreutils-full "ls"}"; }{ src = "${lib.getExe pkgs.bash}"; }{ src = "${lib.getExe' pkgs.linuxPackages.usbip "usbip"}"; }];wslConf = {automount.root = "/mnt";automount.options = "metadata,uid=1000,gid=100,noatime";boot.systemd = true;interop.enabled = true;interop.appendWindowsPath = true;network.generateHosts = true;};};users.users.james.extraGroups = [ "docker" "dialout" ];users.users.root.openssh.authorizedKeys.keys = [ keys.james ];programs.mosh = enabled {openFirewall = true;};services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};networking = {hostName = "pear";firewall = enabled {trustedInterfaces = [ interface ];allowedTCPPorts = [ 22 ];};useDHCP = lib.mkDefault true;interfaces = {};};system.stateVersion = "24.11";})];
{pkgs,lib,...}:{nixpkgs.config.allowUnfree = true;nix = {settings = {experimental-features = ["nix-command""flakes""pipe-operators"];};optimise.automatic = true;gc = {automatic = true;interval = {Weekday = 1;Hour = 0;Minute = 0;};options = "--delete-older-than 7d";};};users.users.james = {name = "james";home = "/Users/james";shell = pkgs.nushell;};system.primaryUser = "james";# thanks github/rgbcube for the stuff belowsecurity.pam.services.sudo_local = {enable = true;touchIdAuth = true;};system.defaults.CustomSystemPreferences."com.apple.AdLib" = {allowApplePersonalizedAdvertising = false;allowIdentifierForAdvertising = false;forceLimitAdTracking = true;personalizedAdsMigrated = false;};system.defaults.SoftwareUpdate.AutomaticallyInstallMacOSUpdates = true;system.defaults.loginwindow = {DisableConsoleAccess = true;GuestEnabled = false;};system.defaults.trackpad = {Clicking = false; # no touch-to-clickDragging = false; # no tap-to-drag};system.defaults.dock = {autohide = true;showhidden = true; # translucentmouse-over-hilite-stack = true;show-recents = false;mru-spaces = false;tilesize = 48;magnification = false;enable-spring-load-actions-on-all-items = true;persistent-apps = [{ app = "/Users/james/Applications/Home Manager Apps/Alacritty.app"; }{ app = "/Users/james/Applications/Home Manager Apps/Arc.app"; }{app = "/Users/james/Applications/Home Manager Apps/Karabiner-Elements.app";}];};system.defaults.CustomSystemPreferences."com.apple.dock" = {autohide-time-modifier = 0.0;autohide-delay = 0.0;expose-animation-duration = 0.0;springboard-show-duration = 0.0;springboard-hide-duration = 0.0;springboard-page-duration = 0.0;# Disable hot corners.wvous-tl-corner = 0;wvous-tr-corner = 0;wvous-bl-corner = 0;wvous-br-corner = 0;launchanim = 0;};system.stateVersion = 5;}nixpkgs.config.permittedInsecurePackages = ["arc-browser-1.106.0-66192"];
./configuration.nix
({ pkgs, lib, self, ... }: {imports = [(self + /modules/system.nix)(self + /modules/nix.nix)(self + /modules/shared.nix)];nixpkgs.hostPlatform.system = "aarch64-darwin";nixpkgs.config.allowUnfree = true;nixpkgs.config.permittedInsecurePackages = [ "arc-browser-1.106.0-66192" ];system.primaryUser = "james";type = "desktop";# thanks github/rgbcube for the stuff belowsecurity.pam.services.sudo_local = enabled {touchIdAuth = true;};system.defaults.CustomSystemPreferences."com.apple.AdLib" = {allowApplePersonalizedAdvertising = false;allowIdentifierForAdvertising = false;forceLimitAdTracking = true;personalizedAdsMigrated = false;};system.defaults.SoftwareUpdate.AutomaticallyInstallMacOSUpdates = true;system.defaults.loginwindow = {DisableConsoleAccess = true;GuestEnabled = false;};system.defaults.trackpad = {Clicking = false; # no touch-to-clickDragging = false; # no tap-to-drag};system.defaults.dock = {autohide = true;showhidden = true; # translucentmouse-over-hilite-stack = true;show-recents = false;mru-spaces = false;tilesize = 48;magnification = false;enable-spring-load-actions-on-all-items = true;persistent-apps = [{ app = "/Users/james/Applications/Home Manager Apps/Alacritty.app"; }{ app = "/Users/james/Applications/Home Manager Apps/Arc.app"; }{ app = "/Users/james/Applications/Home Manager Apps/Karabiner-Elements.app"; }];};system.defaults.CustomSystemPreferences."com.apple.dock" = {autohide-time-modifier = 0.0;autohide-delay = 0.0;expose-animation-duration = 0.0;springboard-show-duration = 0.0;springboard-hide-duration = 0.0;springboard-page-duration = 0.0;# Disable hot corners.wvous-tl-corner = 0;wvous-tr-corner = 0;wvous-bl-corner = 0;wvous-br-corner = 0;launchanim = 0;};system.stateVersion = 5;})
letinherit (lib) enabled;in{imports = [(modulesPath + "/installer/scan/not-detected.nix")(modulesPath + "/profiles/qemu-guest.nix")./disk.nix];nix.settings.experimental-features = [ "nix-command" "flakes" "pipe-operators" ];security.sudo = enabled {execWheelOnly = true;};boot.loader.grub = {efiSupport = true;efiInstallAsRemovable = true;};age.identityPaths = [ "/root/.ssh/id" ];age.secrets.password.file = ./password.age;age.secrets.id.file = ./id.age;# user configurationusers.mutableUsers = false;users.users.james = {isNormalUser = true;shell = pkgs.nushell; # nushell as default shellhashedPasswordFile = config.age.secrets.password.path;extraGroups = [ "wheel" ];};users.users.root = {hashedPasswordFile = config.age.secrets.password.path;};home-manager.users = {james = {};};settings = {};hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];};networking = {hostName = "kiwi";firewall = {enable = true;};useDHCP = lib.mkDefault true;interfaces = {};};time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";# 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. Don't change this after installation.system.stateVersion = "24.11";}allowedTCPPorts = [ 22 80 443 ];trustedInterfaces = [ interface ];domain = "dr-radka.pl";services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";services.openssh = enabled {};programs.mosh = enabled {openFirewall = true;home-manager.sharedModules = [{home.stateVersion = "24.11";programs.home-manager.enable = true;}];openssh.authorizedKeys.keys = [ keys.james ];openssh.authorizedKeys.keys = [ keys.james ];zramSwap = enabled;(self + /modules/dr-radka.nix)(self + /modules/linux/node-exporter.nix)./github2forgejo/github2forgejo.nixinterface = "ts0";{ pkgs, lib, modulesPath, config, keys, self, ... }:
] ++ (collectNix ./. |> remove ./default.nix);
({ pkgs, lib, modulesPath, config, keys, self, ... }: {imports = [# hetzner(modulesPath + "/installer/scan/not-detected.nix")(modulesPath + "/profiles/qemu-guest.nix")./github2forgejo/github2forgejo.nix./disk.nix(self + /modules/dr-radka.nix)(self + /modules/linux/node-exporter.nix)(self + /modules/system.nix)(self + /modules/nix.nix)(self + /modules/shared.nix)];security.sudo = enabled {execWheelOnly = true;};nixpkgs.hostPlatform.system = "x86_64-linux";time.timeZone = "Europe/Warsaw";i18n.defaultLocale = "en_US.UTF-8";services.openssh = enabled {hostKeys = [{type = "ed25519";path = config.age.secrets.id.path;}];settings = {PasswordAuthentication = false;KbdInteractiveAuthentication = false;AcceptEnv = "SHELLS COLORTERM";};};boot.loader.grub = {efiSupport = true;efiInstallAsRemovable = true;};zramSwap = enabled;age.identityPaths = [ "/root/.ssh/id" ];age.secrets.password.file = ./password.age;age.secrets.id.file = ./id.age;users.mutableUsers = false;users.users.james.hashedPasswordFile = config.age.secrets.password.path;users.users.root = {openssh.authorizedKeys.keys = [ keys.james ];hashedPasswordFile = config.age.secrets.password.path;};programs.mosh = enabled {openFirewall = true;};services.resolved.domains = ["taild29fec.ts.net"];services.tailscale = enabled {useRoutingFeatures = "both";interfaceName = interface;};networking = {hostName = "kiwi";domain = "dr-radka.pl";firewall = enabled {trustedInterfaces = [ interface ];allowedTCPPorts = [ 22 80 443 ];};useDHCP = lib.mkDefault true;interfaces = {};};system.stateVersion = "24.11";})];