From 8b2a1b1f4f92e8b3727acb0ca08e553c9914c793 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 18 Mar 2025 18:01:46 -0500 Subject: [PATCH 1/7] bunch of sliming down --- common/general/fonts.nix | 22 +- common/general/shell/common.nix | 2 - common/general/tty_caps_esc.nix | 21 +- common/secrets/default.nix | 159 +++--- hosts/gpdPocket3/flake.nix | 1 + hosts/h002/flake.nix | 1 + hosts/linode/l001/flake.lock | 521 +++++++++++++------ hosts/linode/l001/flake.nix | 75 +-- hosts/linode/l001/linode.nix | 1 + hosts/linode/l002/flake.lock | 501 +++++++++++++----- hosts/linode/l002/flake.nix | 119 +++-- hosts/linode/l002/linode.nix | 1 + hosts/linode/l004/configuration.nix | 71 --- hosts/linode/l004/flake.lock | 135 ----- hosts/linode/l004/flake.nix | 91 ---- hosts/linode/l004/hardware-configuration.nix | 34 -- hosts/linode/l004/linode.nix | 32 -- hosts/linode/l004/readme.md | 10 - hosts/linode/linode.nix | 1 + hosts/lio/flake.nix | 3 + hosts/oren/flake.nix | 1 + 21 files changed, 992 insertions(+), 810 deletions(-) delete mode 100644 hosts/linode/l004/configuration.nix delete mode 100644 hosts/linode/l004/flake.lock delete mode 100644 hosts/linode/l004/flake.nix delete mode 100644 hosts/linode/l004/hardware-configuration.nix delete mode 100644 hosts/linode/l004/linode.nix delete mode 100644 hosts/linode/l004/readme.md diff --git a/common/general/fonts.nix b/common/general/fonts.nix index 04a93d2..1f7a238 100644 --- a/common/general/fonts.nix +++ b/common/general/fonts.nix @@ -1,5 +1,7 @@ { pkgs, + lib, + config, ... }: let @@ -14,9 +16,27 @@ let pkgs.nerd-fonts.jetbrains-mono else (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }); + + ccfg = import ../config.nix; + cfg_path = [ + ccfg.custom_config_key + "general" + ]; + cfg = lib.attrsets.getAttrFromPath cfg_path config; in { - config = { + options = + { } + // lib.attrsets.setAttrByPath cfg_path { + jetbrainsMonoFont = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Enable jetbrains mono font"; + }; + + }; + + config = lib.mkIf cfg.jetbrainsMonoFont { fonts.packages = [ jetbrainsMonoFont ]; }; } diff --git a/common/general/shell/common.nix b/common/general/shell/common.nix index 2e08751..bb9191a 100644 --- a/common/general/shell/common.nix +++ b/common/general/shell/common.nix @@ -24,8 +24,6 @@ with lib; killall hdparm speedtest-cli - ffmpeg-full - appimage-run ]; environment.shellAliases = { diff --git a/common/general/tty_caps_esc.nix b/common/general/tty_caps_esc.nix index 1803f40..7223bfe 100644 --- a/common/general/tty_caps_esc.nix +++ b/common/general/tty_caps_esc.nix @@ -1,11 +1,28 @@ { lib, pkgs, + config, ... }: -with lib; +let + ccfg = import ../config.nix; + cfg_path = [ + ccfg.custom_config_key + "general" + ]; + cfg = lib.attrsets.getAttrFromPath cfg_path config; +in { - config = { + options = + { } + // lib.attrsets.setAttrByPath cfg_path { + ttyCapsEscape = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Enable caps for escape key"; + }; + }; + config = lib.mkIf cfg.ttyCapsEscape { services.xserver.xkb.options = "caps:escape"; console = { earlySetup = true; diff --git a/common/secrets/default.nix b/common/secrets/default.nix index ead7c0e..6efe7d3 100644 --- a/common/secrets/default.nix +++ b/common/secrets/default.nix @@ -1,91 +1,104 @@ { config, ragenix, + lib, pkgs, ... }: let ccfg = import ../config.nix; + cfg_path = [ + ccfg.custom_config_key + "secrets" + ]; + cfg = lib.attrsets.getAttrFromPath cfg_path config; users_cfg = config.${ccfg.custom_config_key}.users; in # TODO auto import secret files here # secretsFile = (settings.secretsDir + /secrets.nix); { - environment.systemPackages = [ - ragenix.packages.${pkgs.system}.default - pkgs.rage - ]; + options = + { } + // lib.attrsets.setAttrByPath cfg_path { + enable = lib.mkEnableOption "secrets"; + }; + config = lib.mkIf cfg.enable { + environment.systemPackages = [ + ragenix.packages.${pkgs.system}.default + pkgs.rage + ]; - age = { - secrets = - # builtins.mapAttrs - # (name: _value: lib.nameValuePair (lib.removeSuffix ".age" name) { - # file = (settings.secretsDir + "/${name}"); - # owner = lib.mkDefault users_cfg.primary; - # }) - # (import secretsFile); - { - nix2github = { - file = ./secrets/nix2github.age; - owner = users_cfg.primary; + age = { + secrets = + # builtins.mapAttrs + # (name: _value: lib.nameValuePair (lib.removeSuffix ".age" name) { + # file = (settings.secretsDir + "/${name}"); + # owner = lib.mkDefault users_cfg.primary; + # }) + # (import secretsFile); + { + nix2github = { + file = ./secrets/nix2github.age; + owner = users_cfg.primary; + }; + nix2bitbucket = { + file = ./secrets/nix2bitbucket.age; + owner = users_cfg.primary; + }; + nix2gitjosh = { + file = ./secrets/nix2gitjosh.age; + owner = users_cfg.primary; + }; + nix2h001 = { + file = ./secrets/nix2h001.age; + owner = users_cfg.primary; + }; + nix2h002 = { + file = ./secrets/nix2h002.age; + owner = users_cfg.primary; + }; + nix2joe = { + file = ./secrets/nix2joe.age; + owner = users_cfg.primary; + }; + nix2gpdPocket3 = { + file = ./secrets/nix2gpdPocket3.age; + owner = users_cfg.primary; + }; + nix2t = { + file = ./secrets/nix2t.age; + owner = users_cfg.primary; + }; + nix2linode = { + file = ./secrets/nix2linode.age; + owner = users_cfg.primary; + }; + nix2oracle = { + file = ./secrets/nix2oracle.age; + owner = users_cfg.primary; + }; + nix2l002 = { + file = ./secrets/nix2l002.age; + owner = users_cfg.primary; + }; + nix2lio = { + file = ./secrets/nix2lio.age; + owner = users_cfg.primary; + }; + nix2oren = { + file = ./secrets/nix2oren.age; + owner = users_cfg.primary; + }; + github_read_token = { + file = ./secrets/github_read_token.age; + owner = users_cfg.primary; + }; + headscale_auth = { + file = ./secrets/headscale_auth.age; + owner = users_cfg.primary; + }; }; - nix2bitbucket = { - file = ./secrets/nix2bitbucket.age; - owner = users_cfg.primary; - }; - nix2gitjosh = { - file = ./secrets/nix2gitjosh.age; - owner = users_cfg.primary; - }; - nix2h001 = { - file = ./secrets/nix2h001.age; - owner = users_cfg.primary; - }; - nix2h002 = { - file = ./secrets/nix2h002.age; - owner = users_cfg.primary; - }; - nix2joe = { - file = ./secrets/nix2joe.age; - owner = users_cfg.primary; - }; - nix2gpdPocket3 = { - file = ./secrets/nix2gpdPocket3.age; - owner = users_cfg.primary; - }; - nix2t = { - file = ./secrets/nix2t.age; - owner = users_cfg.primary; - }; - nix2linode = { - file = ./secrets/nix2linode.age; - owner = users_cfg.primary; - }; - nix2oracle = { - file = ./secrets/nix2oracle.age; - owner = users_cfg.primary; - }; - nix2l002 = { - file = ./secrets/nix2l002.age; - owner = users_cfg.primary; - }; - nix2lio = { - file = ./secrets/nix2lio.age; - owner = users_cfg.primary; - }; - nix2oren = { - file = ./secrets/nix2oren.age; - owner = users_cfg.primary; - }; - github_read_token = { - file = ./secrets/github_read_token.age; - owner = users_cfg.primary; - }; - headscale_auth = { - file = ./secrets/headscale_auth.age; - owner = users_cfg.primary; - }; - }; + }; }; } diff --git a/hosts/gpdPocket3/flake.nix b/hosts/gpdPocket3/flake.nix index 3ea6e36..f7d9036 100644 --- a/hosts/gpdPocket3/flake.nix +++ b/hosts/gpdPocket3/flake.nix @@ -41,6 +41,7 @@ systemName = configuration_name; boot.systemd.enable = true; desktopEnvironment.gnome.enable = true; + secrets.enable = true; programs = { qFlipper.enable = true; rustDev.enable = true; diff --git a/hosts/h002/flake.nix b/hosts/h002/flake.nix index de61b20..de88d6b 100644 --- a/hosts/h002/flake.nix +++ b/hosts/h002/flake.nix @@ -43,6 +43,7 @@ general = { disableRemoteBuildsOnLio = true; }; + secrets.enable = true; desktopEnvironment.gnome.enable = true; programs = { rustDev.enable = true; diff --git a/hosts/linode/l001/flake.lock b/hosts/linode/l001/flake.lock index fb433ff..15ad795 100644 --- a/hosts/linode/l001/flake.lock +++ b/hosts/linode/l001/flake.lock @@ -1,9 +1,93 @@ { "nodes": { + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager_2", + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "owner": "ryantm", + "repo": "agenix", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "common": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2", + "ragenix": "ragenix" + }, + "locked": { + "lastModified": 1742335106, + "narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=", + "ref": "refs/heads/master", + "rev": "aacf05e59d89836103e75345640d7b82481363c0", + "revCount": 366, + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + }, + "original": { + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + } + }, + "crane": { + "locked": { + "lastModified": 1741481578, + "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", + "owner": "ipetkov", + "repo": "crane", + "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, "deploy-rs": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_4", "utils": "utils" }, "locked": { @@ -36,26 +120,115 @@ "type": "github" } }, - "mod_common": { + "flake-utils": { "inputs": { - "nixpkgs": "nixpkgs_2" + "systems": "systems_2" }, "locked": { - "lastModified": 1736191002, - "narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=", - "ref": "mod_common", - "rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2", - "revCount": 4, - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" }, "original": { - "ref": "mod_common", - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", + "owner": "rycee", + "repo": "home-manager", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", + "type": "github" + }, + "original": { + "owner": "rycee", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" } }, "nixpkgs": { + "locked": { + "lastModified": 1731755305, + "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1742069588, + "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1741379970, + "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1702272962, "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", @@ -71,29 +244,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_5": { "locked": { - "lastModified": 1739214665, - "narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1736200483, - "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -103,13 +260,13 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { - "lastModified": 1737567054, - "narHash": "sha256-LI1z4HET4hgP6iyWehrWRd5luNbUk9zz/GFzqI1iAFo=", + "lastModified": 1742225912, + "narHash": "sha256-HCD3GrAAJb1jYTEc221DPlBk2VDkBt43hww7DXC1tyc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bbe8109b528365cf3fd3a93c931dd86d57c3bd5a", + "rev": "9df17ad16500057b7b081137ff7af1a8a6a32f6e", "type": "github" }, "original": { @@ -137,11 +294,11 @@ "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { "flake": false, "locked": { - "lastModified": 1734194565, - "narHash": "sha256-IPP5jXIX+05Tb0MEXUu6EjcL/RHgV1qkoXPEdaEfhNM=", + "lastModified": 1742210958, + "narHash": "sha256-+1dSGYeUpW/EUbP0scgGz48UB5RAPZYIWCglTFyntaU=", "owner": "CopilotC-Nvim", "repo": "CopilotChat.nvim", - "rev": "2ebe591cff06018e265263e71e1dbc4c5aa8281e", + "rev": "62b1249aa4a4fc7afe11c7e647cba0cef743826f", "type": "github" }, "original": { @@ -185,11 +342,11 @@ "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "flake": false, "locked": { - "lastModified": 1737054285, - "narHash": "sha256-7yepeUhhViVJpbj48qg0Z3cCCtGt6bZ90hM/ie+5LqA=", + "lastModified": 1742156824, + "narHash": "sha256-n+pT7FiQONHhiZQH4BGjERrikGNSFTNciMx92oQGA1c=", "owner": "MeanderingProgrammer", "repo": "render-markdown.nvim", - "rev": "ad055861d17afe058bd835e82292e14a64b51b1d", + "rev": "9721ffe230ec90e49c49ee33b5ca44c3fc689214", "type": "github" }, "original": { @@ -201,11 +358,11 @@ "nvim_plugin-MunifTanjim/nui.nvim": { "flake": false, "locked": { - "lastModified": 1733856815, - "narHash": "sha256-6U7E/i5FuNXQy+sF4C5DVxuTPqNKD5wxUgFohpOjm9Q=", + "lastModified": 1741233810, + "narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=", "owner": "MunifTanjim", "repo": "nui.nvim", - "rev": "53e907ffe5eedebdca1cd503b00aa8692068ca46", + "rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb", "type": "github" }, "original": { @@ -217,11 +374,11 @@ "nvim_plugin-RRethy/vim-illuminate": { "flake": false, "locked": { - "lastModified": 1715960194, - "narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", + "lastModified": 1740540215, + "narHash": "sha256-jSny+5RHgxcsoxWwIaFUZ022dk3mDRKZ7dibvE6I2fE=", "owner": "RRethy", "repo": "vim-illuminate", - "rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", + "rev": "19cb21f513fc2b02f0c66be70107741e837516a1", "type": "github" }, "original": { @@ -233,11 +390,11 @@ "nvim_plugin-Saecki/crates.nvim": { "flake": false, "locked": { - "lastModified": 1735942265, - "narHash": "sha256-dj7VXlMbS4HvSc+/WMQprtqWzrYrWaCnSEE0ygp/LcI=", + "lastModified": 1741644182, + "narHash": "sha256-hmUqhAVLBiCUl16+S/hvRxqA/pTXcWejpLtwvqxBPaY=", "owner": "Saecki", "repo": "crates.nvim", - "rev": "bd35b13e94a292ee6e32c351e05ca2202dc9f070", + "rev": "403a0abef0e2aec12749a534dc468d6fd50c6741", "type": "github" }, "original": { @@ -249,11 +406,11 @@ "nvim_plugin-aznhe21/actions-preview.nvim": { "flake": false, "locked": { - "lastModified": 1718540350, - "narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=", + "lastModified": 1740589350, + "narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=", "owner": "aznhe21", "repo": "actions-preview.nvim", - "rev": "9f52a01c374318e91337697ebed51c6fae57f8a4", + "rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2", "type": "github" }, "original": { @@ -265,11 +422,11 @@ "nvim_plugin-b0o/schemastore.nvim": { "flake": false, "locked": { - "lastModified": 1737490106, - "narHash": "sha256-jtZ6cta98Wx4vZHcXq0jKfOfpQtTFRFrH5W+/8jyL5g=", + "lastModified": 1741996938, + "narHash": "sha256-eAqM/n0DDwl3WUO987c2mk3z7uJ4gAE0hkPg4Twyr4w=", "owner": "b0o", "repo": "schemastore.nvim", - "rev": "5be212138af55d3dcae9d77b5b14f63634243e3d", + "rev": "56d8ed0fa1516242085ba5e95d7f49fad50d5754", "type": "github" }, "original": { @@ -281,11 +438,11 @@ "nvim_plugin-catppuccin/nvim": { "flake": false, "locked": { - "lastModified": 1735299190, - "narHash": "sha256-lwQLmqm01FihJdad4QRMK23MTrouyOokyuX/3enWjzs=", + "lastModified": 1740764472, + "narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=", "owner": "catppuccin", "repo": "nvim", - "rev": "f67b886d65a029f12ffa298701fb8f1efd89295d", + "rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", "type": "github" }, "original": { @@ -329,11 +486,11 @@ "nvim_plugin-folke/lazy.nvim": { "flake": false, "locked": { - "lastModified": 1736194490, - "narHash": "sha256-7npvUPMmQC6/Ywdcuxbmdboa8eJ1RNgZ+rzb3MeN0t0=", + "lastModified": 1740511197, + "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=", "owner": "folke", "repo": "lazy.nvim", - "rev": "d8f26efd456190241afd1b0f5235fe6fdba13d4a", + "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a", "type": "github" }, "original": { @@ -361,11 +518,11 @@ "nvim_plugin-folke/which-key.nvim": { "flake": false, "locked": { - "lastModified": 1736055319, - "narHash": "sha256-9V74V01dCqg1w5fpzzCmyfhR3/AYQg2MCIYkkjFv1go=", + "lastModified": 1740233407, + "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=", "owner": "folke", "repo": "which-key.nvim", - "rev": "1f8d414f61e0b05958c342df9b6a4c89ce268766", + "rev": "370ec46f710e058c9c1646273e6b225acf47cbed", "type": "github" }, "original": { @@ -425,11 +582,11 @@ "nvim_plugin-hrsh7th/nvim-cmp": { "flake": false, "locked": { - "lastModified": 1736172730, - "narHash": "sha256-TmXpMgkPWXHn4+leojZg1V18wOiPDsKQeG1h8nGgVHo=", + "lastModified": 1741936119, + "narHash": "sha256-zl/rgbZF3+nsLI7Sd6xzQFlcpa5n/8pyganS+u0jD/s=", "owner": "hrsh7th", "repo": "nvim-cmp", - "rev": "8c82d0bd31299dbff7f8e780f5e06d2283de9678", + "rev": "1e1900b0769324a9675ef85b38f99cca29e203b3", "type": "github" }, "original": { @@ -441,11 +598,11 @@ "nvim_plugin-j-hui/fidget.nvim": { "flake": false, "locked": { - "lastModified": 1736356439, - "narHash": "sha256-o0za2NxFtzHZa7PRIm9U/P1/fwJrxS1G79ukdGLhJ4Q=", + "lastModified": 1738817426, + "narHash": "sha256-AFUx/ZQVWV7s5Wlppjk6N9QXoJKNKqxtf990FFlTEhw=", "owner": "j-hui", "repo": "fidget.nvim", - "rev": "a0abbf18084b77d28bc70e24752e4f4fd54aea17", + "rev": "d9ba6b7bfe29b3119a610892af67602641da778e", "type": "github" }, "original": { @@ -473,11 +630,11 @@ "nvim_plugin-lewis6991/gitsigns.nvim": { "flake": false, "locked": { - "lastModified": 1737539715, - "narHash": "sha256-Htx06FTru66DPFJUZEe6AaKqVtrD65MMqcerjjEZMR4=", + "lastModified": 1742140868, + "narHash": "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI=", "owner": "lewis6991", "repo": "gitsigns.nvim", - "rev": "632fda72df903255dc1683cd739dceaa7338128a", + "rev": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9", "type": "github" }, "original": { @@ -505,11 +662,11 @@ "nvim_plugin-lukas-reineke/indent-blankline.nvim": { "flake": false, "locked": { - "lastModified": 1737369467, - "narHash": "sha256-0+boInVEzS2myYil/l+frs8PAa/2eJcVTyXnEk6TGvI=", + "lastModified": 1742224677, + "narHash": "sha256-0q/V+b4UrDRnaC/eRWOi9HU9a61vQSAM9/C8ZQyKt+Y=", "owner": "lukas-reineke", "repo": "indent-blankline.nvim", - "rev": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78", + "rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba", "type": "github" }, "original": { @@ -537,11 +694,11 @@ "nvim_plugin-m4xshen/hardtime.nvim": { "flake": false, "locked": { - "lastModified": 1734839863, - "narHash": "sha256-WDMr+ygWg9S2PoSqJ4pM26jSaNGAp63wiQ474/p6CIY=", + "lastModified": 1741414159, + "narHash": "sha256-tigKgK1yGc5JEHd4RLXCd6Hq7ia3en3Xtk8X6L5+ef4=", "owner": "m4xshen", "repo": "hardtime.nvim", - "rev": "5d9adcbe2f12741de79e435c8b85dca69a3b22e4", + "rev": "f87c86d1aa1e05dcf3c6ecd97fbfd237e2de0bf5", "type": "github" }, "original": { @@ -553,11 +710,11 @@ "nvim_plugin-mbbill/undotree": { "flake": false, "locked": { - "lastModified": 1735763701, - "narHash": "sha256-0DnRarEuDPdYo+zkwH47jG4B4fGjvL1LxqEoFQ7vpjE=", + "lastModified": 1741878850, + "narHash": "sha256-HGf4Toe+12YZtIalvANDXAtksCsnxQkZbcevOAnl5G4=", "owner": "mbbill", "repo": "undotree", - "rev": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f", + "rev": "b951b87b46c34356d44aa71886aecf9dd7f5788a", "type": "github" }, "original": { @@ -569,11 +726,11 @@ "nvim_plugin-mfussenegger/nvim-lint": { "flake": false, "locked": { - "lastModified": 1737487916, - "narHash": "sha256-DKfivSjBFra/iXIuYQa7Mv5f2LglNbQTr8bQ+sCm8to=", + "lastModified": 1738838825, + "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=", "owner": "mfussenegger", "repo": "nvim-lint", - "rev": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87", + "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8", "type": "github" }, "original": { @@ -585,11 +742,11 @@ "nvim_plugin-mrcjkb/rustaceanvim": { "flake": false, "locked": { - "lastModified": 1737246102, - "narHash": "sha256-SSBv1+GxuVpYhpCH//6EXFJ4NXZdZM0pGe19f53JpiA=", + "lastModified": 1742147378, + "narHash": "sha256-I2H/0VNKWKK49EReXT81SVTHHHW9hT1+6n7h1cbLD0A=", "owner": "mrcjkb", "repo": "rustaceanvim", - "rev": "8cf9705d98cc77837aa388a5d48f9a73f27f4782", + "rev": "448c76451ecf3c0edabcde427b7f1c8c219be2dd", "type": "github" }, "original": { @@ -601,11 +758,11 @@ "nvim_plugin-neovim/nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1737559700, - "narHash": "sha256-p+hGgy6jGErqVy+pbTrfTNF2FosrQlQnMkDHsCl9/kE=", + "lastModified": 1742142850, + "narHash": "sha256-CppHawmKEopPbK6HO4RFd7Kc1iMoCVwpIyN2Z6wiMfo=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "513f4f0bde469ecb3abe2e1b606f63cf142e751e", + "rev": "2574ad38c6ee4f0bef3a1ca305cd5df627a52bb3", "type": "github" }, "original": { @@ -649,11 +806,11 @@ "nvim_plugin-nvim-lua/plenary.nvim": { "flake": false, "locked": { - "lastModified": 1736675595, - "narHash": "sha256-18zX3kZ42ynRefFP0mOcy6ESEpejTukjNi4jCRXx48A=", + "lastModified": 1739311008, + "narHash": "sha256-8FV5RjF7QbDmQOQynpK7uRKONKbPRYbOPugf9ZxNvUs=", "owner": "nvim-lua", "repo": "plenary.nvim", - "rev": "3707cdb1e43f5cea73afb6037e6494e7ce847a66", + "rev": "857c5ac632080dba10aae49dba902ce3abf91b35", "type": "github" }, "original": { @@ -665,11 +822,11 @@ "nvim_plugin-nvim-lualine/lualine.nvim": { "flake": false, "locked": { - "lastModified": 1731050126, - "narHash": "sha256-IN6Qz3jGxUcylYiRTyd8j6me3pAoqJsJXtFUvph/6EI=", + "lastModified": 1742039150, + "narHash": "sha256-qYKykdCcXd+OHmK3WvsUCbn0zDKTQDj49VYsQ8iVvgs=", "owner": "nvim-lualine", "repo": "lualine.nvim", - "rev": "2a5bae925481f999263d6f5ed8361baef8df4f83", + "rev": "b8b60c7f1d0d95ad74ee215b2291280b30482476", "type": "github" }, "original": { @@ -697,11 +854,11 @@ "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": { "flake": false, "locked": { - "lastModified": 1734022536, - "narHash": "sha256-ZBYZncCVtuks6tV4hhqWvQ3PlKElSHuWAEpo9o48pj4=", + "lastModified": 1741765009, + "narHash": "sha256-Zyv8ikxdwoUiDD0zsqLzfhBVOm/nKyJdZpndxXEB6ow=", "owner": "nvim-telescope", "repo": "telescope-fzf-native.nvim", - "rev": "dae2eac9d91464448b584c7949a31df8faefec56", + "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55", "type": "github" }, "original": { @@ -729,11 +886,11 @@ "nvim_plugin-nvim-telescope/telescope.nvim": { "flake": false, "locked": { - "lastModified": 1736328372, - "narHash": "sha256-5y8srYKaAqFplMtDjsc8GdDF8yui5vCNMiOeFLrC/sM=", + "lastModified": 1742171408, + "narHash": "sha256-mHucOyrgQc3wVdK7lUQANW8Jka+m5gQ2z8JWtwo99bU=", "owner": "nvim-telescope", "repo": "telescope.nvim", - "rev": "415af52339215926d705cccc08145f3782c4d132", + "rev": "a17d611a0e111836a1db5295f04945df407c5135", "type": "github" }, "original": { @@ -745,11 +902,11 @@ "nvim_plugin-nvim-tree/nvim-tree.lua": { "flake": false, "locked": { - "lastModified": 1737156486, - "narHash": "sha256-b8YOOIYML9aKy4Y7S+iLKIaTfCqrxK1wB/ZaeFRCUmo=", + "lastModified": 1740787655, + "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=", "owner": "nvim-tree", "repo": "nvim-tree.lua", - "rev": "fca0b67c0b5a31727fb33addc4d9c100736a2894", + "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4", "type": "github" }, "original": { @@ -761,11 +918,11 @@ "nvim_plugin-nvim-tree/nvim-web-devicons": { "flake": false, "locked": { - "lastModified": 1736480892, - "narHash": "sha256-lUlEVEzXX8iCPxXIlpwkqBc19hks8qTvz4FdDNsTviI=", + "lastModified": 1742215722, + "narHash": "sha256-JKOvXJr1s2lpP5aeRE7OC3IeOrF5uJxg/Tal3eScd6g=", "owner": "nvim-tree", "repo": "nvim-web-devicons", - "rev": "aafa5c187a15701a7299a392b907ec15d9a7075f", + "rev": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c", "type": "github" }, "original": { @@ -777,11 +934,11 @@ "nvim_plugin-nvim-treesitter/nvim-treesitter-context": { "flake": false, "locked": { - "lastModified": 1737125584, - "narHash": "sha256-W5fELF3Am1c6wpA4/JxWjGVWQuDYKUqKO+M2+7anugM=", + "lastModified": 1742201688, + "narHash": "sha256-rpmHIOXiD/mh0PHBdo1k1Wdb213KtBevmyCFrP89tME=", "owner": "nvim-treesitter", "repo": "nvim-treesitter-context", - "rev": "bece284c5322ddf6946fa4bdc383a2bc033269d7", + "rev": "83ded3bbff8bc13abc9704bf1c5e426f3ba343c4", "type": "github" }, "original": { @@ -825,11 +982,11 @@ "nvim_plugin-rmagatti/auto-session": { "flake": false, "locked": { - "lastModified": 1732719937, - "narHash": "sha256-1tg7H8ssnG7ArshQiyoFenXzf9PVealOPbzuZKacO1U=", + "lastModified": 1742136796, + "narHash": "sha256-Tc4EfcucGAR+5qURjoYqG5gW24PCYJLVd47OrFhyfRo=", "owner": "rmagatti", "repo": "auto-session", - "rev": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c", + "rev": "317412742990371f8e4709074da5c378456a27ff", "type": "github" }, "original": { @@ -889,11 +1046,11 @@ "nvim_plugin-stevearc/conform.nvim": { "flake": false, "locked": { - "lastModified": 1737567375, - "narHash": "sha256-tMLkOLANg87wuq6OSkb0iGm00mnZwOF7Xd+gai4mKNg=", + "lastModified": 1741136809, + "narHash": "sha256-8uC+6rQdLqpfF/lf25mppqK/xgM1+6RGIyZaheaPd48=", "owner": "stevearc", "repo": "conform.nvim", - "rev": "bf94626f32fbc3c9987ce2f4aab60d96866587df", + "rev": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d", "type": "github" }, "original": { @@ -905,11 +1062,11 @@ "nvim_plugin-stevearc/dressing.nvim": { "flake": false, "locked": { - "lastModified": 1734804193, - "narHash": "sha256-N4hB5wDgoqXrXxSfzDCrqmdDtdVvq+PtOS7FBPH7qXE=", + "lastModified": 1739381641, + "narHash": "sha256-dBz+/gZA6O6fJy/GSgM6ZHGAR3MTGt/W1olzzTYRlgM=", "owner": "stevearc", "repo": "dressing.nvim", - "rev": "3a45525bb182730fe462325c99395529308f431e", + "rev": "2d7c2db2507fa3c4956142ee607431ddb2828639", "type": "github" }, "original": { @@ -969,11 +1126,11 @@ "nvim_plugin-windwp/nvim-ts-autotag": { "flake": false, "locked": { - "lastModified": 1733164313, - "narHash": "sha256-v2NTFBIzKTYizUPWB3uhpnTGVZWaelhE3MT5+BDA6Do=", + "lastModified": 1739910276, + "narHash": "sha256-a3Bcql68mp3y5bH9XMiDTQB0e75T+qFB593objIGg/I=", "owner": "windwp", "repo": "nvim-ts-autotag", - "rev": "1cca23c9da708047922d3895a71032bc0449c52d", + "rev": "a1d526af391f6aebb25a8795cbc05351ed3620b5", "type": "github" }, "original": { @@ -985,11 +1142,11 @@ "nvim_plugin-yetone/avante.nvim": { "flake": false, "locked": { - "lastModified": 1737518419, - "narHash": "sha256-Opp6ACJwnAIkLdCQwbqjahjCErxDGIpsX9Hj/87Wm/I=", + "lastModified": 1742209600, + "narHash": "sha256-XmyRo20+VhyjP5CLgSy0Tr/7R031EJSmMEN/wK9JNk8=", "owner": "yetone", "repo": "avante.nvim", - "rev": "396840a152be82354984b16f9a22cb425d0840d1", + "rev": "540cc53f0c30214e3e4b5688f030bb2d8277b8ce", "type": "github" }, "original": { @@ -1017,11 +1174,11 @@ "nvim_plugin-zbirenbaum/copilot.lua": { "flake": false, "locked": { - "lastModified": 1734926641, - "narHash": "sha256-c2UE0dLBtoYMvMxg+jXzfsD+wN9sZLvftJq4gGmooZU=", + "lastModified": 1739230958, + "narHash": "sha256-632UIbG1jwam+tug5+jODkT509+uBfJgUN21C3ppnEo=", "owner": "zbirenbaum", "repo": "copilot.lua", - "rev": "886ee73b6d464b2b3e3e6a7ff55ce87feac423a9", + "rev": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9", "type": "github" }, "original": { @@ -1030,17 +1187,39 @@ "type": "github" } }, + "ragenix": { + "inputs": { + "agenix": "agenix", + "crane": "crane", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1741508717, + "narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=", + "owner": "yaxitech", + "repo": "ragenix", + "rev": "2a2bea99d74927e54adf53cbf113219def67d5c9", + "type": "github" + }, + "original": { + "owner": "yaxitech", + "repo": "ragenix", + "type": "github" + } + }, "root": { "inputs": { + "common": "common", "deploy-rs": "deploy-rs", - "mod_common": "mod_common", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "ros_neovim": "ros_neovim" } }, "ros_neovim": { "inputs": { - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_6", "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", @@ -1098,14 +1277,14 @@ "nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim", "nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp", "nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua", - "rust-overlay": "rust-overlay" + "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1737610236, - "narHash": "sha256-UfC+hBu09KEepjnqbXGqRJ0jTlV8HTuD1GjB+ZjTjYM=", + "lastModified": 1742226527, + "narHash": "sha256-CT9227XXn1t8H1ivNBBkBcf+npB7tWk5yzEQoJvbGVU=", "ref": "refs/heads/master", - "rev": "631d85a771f3e22822b9ac02d895e2a06aa1e183", - "revCount": 260, + "rev": "e8bafafc36fb2227dab8f0ddb67a2439d9077091", + "revCount": 268, "type": "git", "url": "https://git.joshuabell.xyz/nvim" }, @@ -1115,6 +1294,28 @@ } }, "rust-overlay": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741400194, + "narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { "inputs": { "nixpkgs": [ "ros_neovim", @@ -1122,11 +1323,11 @@ ] }, "locked": { - "lastModified": 1737512878, - "narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", + "lastModified": 1742178793, + "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", + "rev": "954582a766a50ebef5695a9616c93b5386418c08", "type": "github" }, "original": { @@ -1150,9 +1351,39 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { - "systems": "systems" + "systems": "systems_3" }, "locked": { "lastModified": 1701680307, diff --git a/hosts/linode/l001/flake.nix b/hosts/linode/l001/flake.nix index 6f795a6..8075ea3 100644 --- a/hosts/linode/l001/flake.nix +++ b/hosts/linode/l001/flake.nix @@ -2,18 +2,19 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; deploy-rs.url = "github:serokell/deploy-rs"; - + common.url = "git+https://git.joshuabell.xyz/dotfiles"; ros_neovim.url = "git+https://git.joshuabell.xyz/nvim"; - mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common"; }; outputs = { self, nixpkgs, + common, + ros_neovim, deploy-rs, ... - }@inputs: + }: let configuration_name = "l001"; lib = nixpkgs.lib; @@ -35,59 +36,73 @@ }; nixosConfigurations = { - nixos = self.nixosConfigurations.${configuration_name}; - "${configuration_name}" = - let - auto_modules = builtins.concatMap ( - input: - lib.optionals - (builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules) - [ - input.nixosModules.default - ] - ) (builtins.attrValues inputs); - in - (lib.nixosSystem { + "${configuration_name}" = ( + lib.nixosSystem { modules = [ + common.nixosModules.default + ros_neovim.nixosModules.default ./configuration.nix ./hardware-configuration.nix ./linode.nix ./nginx.nix ./headscale.nix ( - { pkgs, ... }: + { config, pkgs, ... }: { users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" ]; - mods = { - common = { + + ringofstorms_common = { + systemName = configuration_name; + general = { disableRemoteBuildsOnLio = true; - systemName = configuration_name; - allowUnfree = true; - primaryUser = "luser"; - docker = true; + readWindowsDrives = false; + jetbrainsMonoFont = false; + ttyCapsEscape = false; + }; + programs = { + ssh.enable = true; + }; + users = { + # Users are all normal users and default password is password1 + admins = [ "luser" ]; # First admin is also the primary user owning nix config users = { luser = { extraGroups = [ - "wheel" "networkmanager" ]; - isNormalUser = true; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" ]; + shell = pkgs.zsh; + packages = with pkgs; [ + bitwarden + vaultwarden + ]; + }; + }; + }; + homeManager = { + users = { + luser = { + imports = with common.homeManagerModules; [ + tmux + git + postgres + starship + zoxide + zsh + ]; }; }; }; }; } ) - ] ++ auto_modules; - specialArgs = { - inherit inputs; - }; - }); + ]; + } + ); }; }; } diff --git a/hosts/linode/l001/linode.nix b/hosts/linode/l001/linode.nix index 638f35b..753ccfa 100644 --- a/hosts/linode/l001/linode.nix +++ b/hosts/linode/l001/linode.nix @@ -2,6 +2,7 @@ { # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos boot.kernelParams = [ "console=ttyS0,19200n8" ]; + boot.loader.grub.enable = true; boot.loader.grub.extraConfig = '' serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; terminal_input serial; diff --git a/hosts/linode/l002/flake.lock b/hosts/linode/l002/flake.lock index a5e4983..15ad795 100644 --- a/hosts/linode/l002/flake.lock +++ b/hosts/linode/l002/flake.lock @@ -1,9 +1,93 @@ { "nodes": { + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager_2", + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "owner": "ryantm", + "repo": "agenix", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "common": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2", + "ragenix": "ragenix" + }, + "locked": { + "lastModified": 1742335106, + "narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=", + "ref": "refs/heads/master", + "rev": "aacf05e59d89836103e75345640d7b82481363c0", + "revCount": 366, + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + }, + "original": { + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + } + }, + "crane": { + "locked": { + "lastModified": 1741481578, + "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", + "owner": "ipetkov", + "repo": "crane", + "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, "deploy-rs": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_4", "utils": "utils" }, "locked": { @@ -36,28 +120,115 @@ "type": "github" } }, - "mod_common": { + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", + "owner": "rycee", + "repo": "home-manager", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", + "type": "github" + }, + "original": { + "owner": "rycee", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { "inputs": { "nixpkgs": [ + "common", + "ragenix", + "agenix", "nixpkgs" ] }, "locked": { - "lastModified": 1736191002, - "narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=", - "ref": "mod_common", - "rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2", - "revCount": 4, - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "type": "github" }, "original": { - "ref": "mod_common", - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "owner": "nix-community", + "repo": "home-manager", + "type": "github" } }, "nixpkgs": { + "locked": { + "lastModified": 1731755305, + "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1742069588, + "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1741379970, + "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1702272962, "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", @@ -73,13 +244,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_5": { "locked": { - "lastModified": 1736200483, - "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -89,13 +260,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_6": { "locked": { - "lastModified": 1737567054, - "narHash": "sha256-LI1z4HET4hgP6iyWehrWRd5luNbUk9zz/GFzqI1iAFo=", + "lastModified": 1742225912, + "narHash": "sha256-HCD3GrAAJb1jYTEc221DPlBk2VDkBt43hww7DXC1tyc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bbe8109b528365cf3fd3a93c931dd86d57c3bd5a", + "rev": "9df17ad16500057b7b081137ff7af1a8a6a32f6e", "type": "github" }, "original": { @@ -123,11 +294,11 @@ "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { "flake": false, "locked": { - "lastModified": 1734194565, - "narHash": "sha256-IPP5jXIX+05Tb0MEXUu6EjcL/RHgV1qkoXPEdaEfhNM=", + "lastModified": 1742210958, + "narHash": "sha256-+1dSGYeUpW/EUbP0scgGz48UB5RAPZYIWCglTFyntaU=", "owner": "CopilotC-Nvim", "repo": "CopilotChat.nvim", - "rev": "2ebe591cff06018e265263e71e1dbc4c5aa8281e", + "rev": "62b1249aa4a4fc7afe11c7e647cba0cef743826f", "type": "github" }, "original": { @@ -171,11 +342,11 @@ "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "flake": false, "locked": { - "lastModified": 1737054285, - "narHash": "sha256-7yepeUhhViVJpbj48qg0Z3cCCtGt6bZ90hM/ie+5LqA=", + "lastModified": 1742156824, + "narHash": "sha256-n+pT7FiQONHhiZQH4BGjERrikGNSFTNciMx92oQGA1c=", "owner": "MeanderingProgrammer", "repo": "render-markdown.nvim", - "rev": "ad055861d17afe058bd835e82292e14a64b51b1d", + "rev": "9721ffe230ec90e49c49ee33b5ca44c3fc689214", "type": "github" }, "original": { @@ -187,11 +358,11 @@ "nvim_plugin-MunifTanjim/nui.nvim": { "flake": false, "locked": { - "lastModified": 1733856815, - "narHash": "sha256-6U7E/i5FuNXQy+sF4C5DVxuTPqNKD5wxUgFohpOjm9Q=", + "lastModified": 1741233810, + "narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=", "owner": "MunifTanjim", "repo": "nui.nvim", - "rev": "53e907ffe5eedebdca1cd503b00aa8692068ca46", + "rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb", "type": "github" }, "original": { @@ -203,11 +374,11 @@ "nvim_plugin-RRethy/vim-illuminate": { "flake": false, "locked": { - "lastModified": 1715960194, - "narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", + "lastModified": 1740540215, + "narHash": "sha256-jSny+5RHgxcsoxWwIaFUZ022dk3mDRKZ7dibvE6I2fE=", "owner": "RRethy", "repo": "vim-illuminate", - "rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", + "rev": "19cb21f513fc2b02f0c66be70107741e837516a1", "type": "github" }, "original": { @@ -219,11 +390,11 @@ "nvim_plugin-Saecki/crates.nvim": { "flake": false, "locked": { - "lastModified": 1735942265, - "narHash": "sha256-dj7VXlMbS4HvSc+/WMQprtqWzrYrWaCnSEE0ygp/LcI=", + "lastModified": 1741644182, + "narHash": "sha256-hmUqhAVLBiCUl16+S/hvRxqA/pTXcWejpLtwvqxBPaY=", "owner": "Saecki", "repo": "crates.nvim", - "rev": "bd35b13e94a292ee6e32c351e05ca2202dc9f070", + "rev": "403a0abef0e2aec12749a534dc468d6fd50c6741", "type": "github" }, "original": { @@ -235,11 +406,11 @@ "nvim_plugin-aznhe21/actions-preview.nvim": { "flake": false, "locked": { - "lastModified": 1718540350, - "narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=", + "lastModified": 1740589350, + "narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=", "owner": "aznhe21", "repo": "actions-preview.nvim", - "rev": "9f52a01c374318e91337697ebed51c6fae57f8a4", + "rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2", "type": "github" }, "original": { @@ -251,11 +422,11 @@ "nvim_plugin-b0o/schemastore.nvim": { "flake": false, "locked": { - "lastModified": 1737490106, - "narHash": "sha256-jtZ6cta98Wx4vZHcXq0jKfOfpQtTFRFrH5W+/8jyL5g=", + "lastModified": 1741996938, + "narHash": "sha256-eAqM/n0DDwl3WUO987c2mk3z7uJ4gAE0hkPg4Twyr4w=", "owner": "b0o", "repo": "schemastore.nvim", - "rev": "5be212138af55d3dcae9d77b5b14f63634243e3d", + "rev": "56d8ed0fa1516242085ba5e95d7f49fad50d5754", "type": "github" }, "original": { @@ -267,11 +438,11 @@ "nvim_plugin-catppuccin/nvim": { "flake": false, "locked": { - "lastModified": 1735299190, - "narHash": "sha256-lwQLmqm01FihJdad4QRMK23MTrouyOokyuX/3enWjzs=", + "lastModified": 1740764472, + "narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=", "owner": "catppuccin", "repo": "nvim", - "rev": "f67b886d65a029f12ffa298701fb8f1efd89295d", + "rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", "type": "github" }, "original": { @@ -315,11 +486,11 @@ "nvim_plugin-folke/lazy.nvim": { "flake": false, "locked": { - "lastModified": 1736194490, - "narHash": "sha256-7npvUPMmQC6/Ywdcuxbmdboa8eJ1RNgZ+rzb3MeN0t0=", + "lastModified": 1740511197, + "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=", "owner": "folke", "repo": "lazy.nvim", - "rev": "d8f26efd456190241afd1b0f5235fe6fdba13d4a", + "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a", "type": "github" }, "original": { @@ -347,11 +518,11 @@ "nvim_plugin-folke/which-key.nvim": { "flake": false, "locked": { - "lastModified": 1736055319, - "narHash": "sha256-9V74V01dCqg1w5fpzzCmyfhR3/AYQg2MCIYkkjFv1go=", + "lastModified": 1740233407, + "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=", "owner": "folke", "repo": "which-key.nvim", - "rev": "1f8d414f61e0b05958c342df9b6a4c89ce268766", + "rev": "370ec46f710e058c9c1646273e6b225acf47cbed", "type": "github" }, "original": { @@ -411,11 +582,11 @@ "nvim_plugin-hrsh7th/nvim-cmp": { "flake": false, "locked": { - "lastModified": 1736172730, - "narHash": "sha256-TmXpMgkPWXHn4+leojZg1V18wOiPDsKQeG1h8nGgVHo=", + "lastModified": 1741936119, + "narHash": "sha256-zl/rgbZF3+nsLI7Sd6xzQFlcpa5n/8pyganS+u0jD/s=", "owner": "hrsh7th", "repo": "nvim-cmp", - "rev": "8c82d0bd31299dbff7f8e780f5e06d2283de9678", + "rev": "1e1900b0769324a9675ef85b38f99cca29e203b3", "type": "github" }, "original": { @@ -427,11 +598,11 @@ "nvim_plugin-j-hui/fidget.nvim": { "flake": false, "locked": { - "lastModified": 1736356439, - "narHash": "sha256-o0za2NxFtzHZa7PRIm9U/P1/fwJrxS1G79ukdGLhJ4Q=", + "lastModified": 1738817426, + "narHash": "sha256-AFUx/ZQVWV7s5Wlppjk6N9QXoJKNKqxtf990FFlTEhw=", "owner": "j-hui", "repo": "fidget.nvim", - "rev": "a0abbf18084b77d28bc70e24752e4f4fd54aea17", + "rev": "d9ba6b7bfe29b3119a610892af67602641da778e", "type": "github" }, "original": { @@ -459,11 +630,11 @@ "nvim_plugin-lewis6991/gitsigns.nvim": { "flake": false, "locked": { - "lastModified": 1737539715, - "narHash": "sha256-Htx06FTru66DPFJUZEe6AaKqVtrD65MMqcerjjEZMR4=", + "lastModified": 1742140868, + "narHash": "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI=", "owner": "lewis6991", "repo": "gitsigns.nvim", - "rev": "632fda72df903255dc1683cd739dceaa7338128a", + "rev": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9", "type": "github" }, "original": { @@ -491,11 +662,11 @@ "nvim_plugin-lukas-reineke/indent-blankline.nvim": { "flake": false, "locked": { - "lastModified": 1737369467, - "narHash": "sha256-0+boInVEzS2myYil/l+frs8PAa/2eJcVTyXnEk6TGvI=", + "lastModified": 1742224677, + "narHash": "sha256-0q/V+b4UrDRnaC/eRWOi9HU9a61vQSAM9/C8ZQyKt+Y=", "owner": "lukas-reineke", "repo": "indent-blankline.nvim", - "rev": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78", + "rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba", "type": "github" }, "original": { @@ -523,11 +694,11 @@ "nvim_plugin-m4xshen/hardtime.nvim": { "flake": false, "locked": { - "lastModified": 1734839863, - "narHash": "sha256-WDMr+ygWg9S2PoSqJ4pM26jSaNGAp63wiQ474/p6CIY=", + "lastModified": 1741414159, + "narHash": "sha256-tigKgK1yGc5JEHd4RLXCd6Hq7ia3en3Xtk8X6L5+ef4=", "owner": "m4xshen", "repo": "hardtime.nvim", - "rev": "5d9adcbe2f12741de79e435c8b85dca69a3b22e4", + "rev": "f87c86d1aa1e05dcf3c6ecd97fbfd237e2de0bf5", "type": "github" }, "original": { @@ -539,11 +710,11 @@ "nvim_plugin-mbbill/undotree": { "flake": false, "locked": { - "lastModified": 1735763701, - "narHash": "sha256-0DnRarEuDPdYo+zkwH47jG4B4fGjvL1LxqEoFQ7vpjE=", + "lastModified": 1741878850, + "narHash": "sha256-HGf4Toe+12YZtIalvANDXAtksCsnxQkZbcevOAnl5G4=", "owner": "mbbill", "repo": "undotree", - "rev": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f", + "rev": "b951b87b46c34356d44aa71886aecf9dd7f5788a", "type": "github" }, "original": { @@ -555,11 +726,11 @@ "nvim_plugin-mfussenegger/nvim-lint": { "flake": false, "locked": { - "lastModified": 1737487916, - "narHash": "sha256-DKfivSjBFra/iXIuYQa7Mv5f2LglNbQTr8bQ+sCm8to=", + "lastModified": 1738838825, + "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=", "owner": "mfussenegger", "repo": "nvim-lint", - "rev": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87", + "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8", "type": "github" }, "original": { @@ -571,11 +742,11 @@ "nvim_plugin-mrcjkb/rustaceanvim": { "flake": false, "locked": { - "lastModified": 1737246102, - "narHash": "sha256-SSBv1+GxuVpYhpCH//6EXFJ4NXZdZM0pGe19f53JpiA=", + "lastModified": 1742147378, + "narHash": "sha256-I2H/0VNKWKK49EReXT81SVTHHHW9hT1+6n7h1cbLD0A=", "owner": "mrcjkb", "repo": "rustaceanvim", - "rev": "8cf9705d98cc77837aa388a5d48f9a73f27f4782", + "rev": "448c76451ecf3c0edabcde427b7f1c8c219be2dd", "type": "github" }, "original": { @@ -587,11 +758,11 @@ "nvim_plugin-neovim/nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1737559700, - "narHash": "sha256-p+hGgy6jGErqVy+pbTrfTNF2FosrQlQnMkDHsCl9/kE=", + "lastModified": 1742142850, + "narHash": "sha256-CppHawmKEopPbK6HO4RFd7Kc1iMoCVwpIyN2Z6wiMfo=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "513f4f0bde469ecb3abe2e1b606f63cf142e751e", + "rev": "2574ad38c6ee4f0bef3a1ca305cd5df627a52bb3", "type": "github" }, "original": { @@ -635,11 +806,11 @@ "nvim_plugin-nvim-lua/plenary.nvim": { "flake": false, "locked": { - "lastModified": 1736675595, - "narHash": "sha256-18zX3kZ42ynRefFP0mOcy6ESEpejTukjNi4jCRXx48A=", + "lastModified": 1739311008, + "narHash": "sha256-8FV5RjF7QbDmQOQynpK7uRKONKbPRYbOPugf9ZxNvUs=", "owner": "nvim-lua", "repo": "plenary.nvim", - "rev": "3707cdb1e43f5cea73afb6037e6494e7ce847a66", + "rev": "857c5ac632080dba10aae49dba902ce3abf91b35", "type": "github" }, "original": { @@ -651,11 +822,11 @@ "nvim_plugin-nvim-lualine/lualine.nvim": { "flake": false, "locked": { - "lastModified": 1731050126, - "narHash": "sha256-IN6Qz3jGxUcylYiRTyd8j6me3pAoqJsJXtFUvph/6EI=", + "lastModified": 1742039150, + "narHash": "sha256-qYKykdCcXd+OHmK3WvsUCbn0zDKTQDj49VYsQ8iVvgs=", "owner": "nvim-lualine", "repo": "lualine.nvim", - "rev": "2a5bae925481f999263d6f5ed8361baef8df4f83", + "rev": "b8b60c7f1d0d95ad74ee215b2291280b30482476", "type": "github" }, "original": { @@ -683,11 +854,11 @@ "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": { "flake": false, "locked": { - "lastModified": 1734022536, - "narHash": "sha256-ZBYZncCVtuks6tV4hhqWvQ3PlKElSHuWAEpo9o48pj4=", + "lastModified": 1741765009, + "narHash": "sha256-Zyv8ikxdwoUiDD0zsqLzfhBVOm/nKyJdZpndxXEB6ow=", "owner": "nvim-telescope", "repo": "telescope-fzf-native.nvim", - "rev": "dae2eac9d91464448b584c7949a31df8faefec56", + "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55", "type": "github" }, "original": { @@ -715,11 +886,11 @@ "nvim_plugin-nvim-telescope/telescope.nvim": { "flake": false, "locked": { - "lastModified": 1736328372, - "narHash": "sha256-5y8srYKaAqFplMtDjsc8GdDF8yui5vCNMiOeFLrC/sM=", + "lastModified": 1742171408, + "narHash": "sha256-mHucOyrgQc3wVdK7lUQANW8Jka+m5gQ2z8JWtwo99bU=", "owner": "nvim-telescope", "repo": "telescope.nvim", - "rev": "415af52339215926d705cccc08145f3782c4d132", + "rev": "a17d611a0e111836a1db5295f04945df407c5135", "type": "github" }, "original": { @@ -731,11 +902,11 @@ "nvim_plugin-nvim-tree/nvim-tree.lua": { "flake": false, "locked": { - "lastModified": 1737156486, - "narHash": "sha256-b8YOOIYML9aKy4Y7S+iLKIaTfCqrxK1wB/ZaeFRCUmo=", + "lastModified": 1740787655, + "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=", "owner": "nvim-tree", "repo": "nvim-tree.lua", - "rev": "fca0b67c0b5a31727fb33addc4d9c100736a2894", + "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4", "type": "github" }, "original": { @@ -747,11 +918,11 @@ "nvim_plugin-nvim-tree/nvim-web-devicons": { "flake": false, "locked": { - "lastModified": 1736480892, - "narHash": "sha256-lUlEVEzXX8iCPxXIlpwkqBc19hks8qTvz4FdDNsTviI=", + "lastModified": 1742215722, + "narHash": "sha256-JKOvXJr1s2lpP5aeRE7OC3IeOrF5uJxg/Tal3eScd6g=", "owner": "nvim-tree", "repo": "nvim-web-devicons", - "rev": "aafa5c187a15701a7299a392b907ec15d9a7075f", + "rev": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c", "type": "github" }, "original": { @@ -763,11 +934,11 @@ "nvim_plugin-nvim-treesitter/nvim-treesitter-context": { "flake": false, "locked": { - "lastModified": 1737125584, - "narHash": "sha256-W5fELF3Am1c6wpA4/JxWjGVWQuDYKUqKO+M2+7anugM=", + "lastModified": 1742201688, + "narHash": "sha256-rpmHIOXiD/mh0PHBdo1k1Wdb213KtBevmyCFrP89tME=", "owner": "nvim-treesitter", "repo": "nvim-treesitter-context", - "rev": "bece284c5322ddf6946fa4bdc383a2bc033269d7", + "rev": "83ded3bbff8bc13abc9704bf1c5e426f3ba343c4", "type": "github" }, "original": { @@ -811,11 +982,11 @@ "nvim_plugin-rmagatti/auto-session": { "flake": false, "locked": { - "lastModified": 1732719937, - "narHash": "sha256-1tg7H8ssnG7ArshQiyoFenXzf9PVealOPbzuZKacO1U=", + "lastModified": 1742136796, + "narHash": "sha256-Tc4EfcucGAR+5qURjoYqG5gW24PCYJLVd47OrFhyfRo=", "owner": "rmagatti", "repo": "auto-session", - "rev": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c", + "rev": "317412742990371f8e4709074da5c378456a27ff", "type": "github" }, "original": { @@ -875,11 +1046,11 @@ "nvim_plugin-stevearc/conform.nvim": { "flake": false, "locked": { - "lastModified": 1737567375, - "narHash": "sha256-tMLkOLANg87wuq6OSkb0iGm00mnZwOF7Xd+gai4mKNg=", + "lastModified": 1741136809, + "narHash": "sha256-8uC+6rQdLqpfF/lf25mppqK/xgM1+6RGIyZaheaPd48=", "owner": "stevearc", "repo": "conform.nvim", - "rev": "bf94626f32fbc3c9987ce2f4aab60d96866587df", + "rev": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d", "type": "github" }, "original": { @@ -891,11 +1062,11 @@ "nvim_plugin-stevearc/dressing.nvim": { "flake": false, "locked": { - "lastModified": 1734804193, - "narHash": "sha256-N4hB5wDgoqXrXxSfzDCrqmdDtdVvq+PtOS7FBPH7qXE=", + "lastModified": 1739381641, + "narHash": "sha256-dBz+/gZA6O6fJy/GSgM6ZHGAR3MTGt/W1olzzTYRlgM=", "owner": "stevearc", "repo": "dressing.nvim", - "rev": "3a45525bb182730fe462325c99395529308f431e", + "rev": "2d7c2db2507fa3c4956142ee607431ddb2828639", "type": "github" }, "original": { @@ -955,11 +1126,11 @@ "nvim_plugin-windwp/nvim-ts-autotag": { "flake": false, "locked": { - "lastModified": 1733164313, - "narHash": "sha256-v2NTFBIzKTYizUPWB3uhpnTGVZWaelhE3MT5+BDA6Do=", + "lastModified": 1739910276, + "narHash": "sha256-a3Bcql68mp3y5bH9XMiDTQB0e75T+qFB593objIGg/I=", "owner": "windwp", "repo": "nvim-ts-autotag", - "rev": "1cca23c9da708047922d3895a71032bc0449c52d", + "rev": "a1d526af391f6aebb25a8795cbc05351ed3620b5", "type": "github" }, "original": { @@ -971,11 +1142,11 @@ "nvim_plugin-yetone/avante.nvim": { "flake": false, "locked": { - "lastModified": 1737518419, - "narHash": "sha256-Opp6ACJwnAIkLdCQwbqjahjCErxDGIpsX9Hj/87Wm/I=", + "lastModified": 1742209600, + "narHash": "sha256-XmyRo20+VhyjP5CLgSy0Tr/7R031EJSmMEN/wK9JNk8=", "owner": "yetone", "repo": "avante.nvim", - "rev": "396840a152be82354984b16f9a22cb425d0840d1", + "rev": "540cc53f0c30214e3e4b5688f030bb2d8277b8ce", "type": "github" }, "original": { @@ -1003,11 +1174,11 @@ "nvim_plugin-zbirenbaum/copilot.lua": { "flake": false, "locked": { - "lastModified": 1734926641, - "narHash": "sha256-c2UE0dLBtoYMvMxg+jXzfsD+wN9sZLvftJq4gGmooZU=", + "lastModified": 1739230958, + "narHash": "sha256-632UIbG1jwam+tug5+jODkT509+uBfJgUN21C3ppnEo=", "owner": "zbirenbaum", "repo": "copilot.lua", - "rev": "886ee73b6d464b2b3e3e6a7ff55ce87feac423a9", + "rev": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9", "type": "github" }, "original": { @@ -1016,17 +1187,39 @@ "type": "github" } }, + "ragenix": { + "inputs": { + "agenix": "agenix", + "crane": "crane", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1741508717, + "narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=", + "owner": "yaxitech", + "repo": "ragenix", + "rev": "2a2bea99d74927e54adf53cbf113219def67d5c9", + "type": "github" + }, + "original": { + "owner": "yaxitech", + "repo": "ragenix", + "type": "github" + } + }, "root": { "inputs": { + "common": "common", "deploy-rs": "deploy-rs", - "mod_common": "mod_common", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_5", "ros_neovim": "ros_neovim" } }, "ros_neovim": { "inputs": { - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_6", "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", @@ -1084,14 +1277,14 @@ "nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim", "nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp", "nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua", - "rust-overlay": "rust-overlay" + "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1737610236, - "narHash": "sha256-UfC+hBu09KEepjnqbXGqRJ0jTlV8HTuD1GjB+ZjTjYM=", + "lastModified": 1742226527, + "narHash": "sha256-CT9227XXn1t8H1ivNBBkBcf+npB7tWk5yzEQoJvbGVU=", "ref": "refs/heads/master", - "rev": "631d85a771f3e22822b9ac02d895e2a06aa1e183", - "revCount": 260, + "rev": "e8bafafc36fb2227dab8f0ddb67a2439d9077091", + "revCount": 268, "type": "git", "url": "https://git.joshuabell.xyz/nvim" }, @@ -1101,6 +1294,28 @@ } }, "rust-overlay": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741400194, + "narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { "inputs": { "nixpkgs": [ "ros_neovim", @@ -1108,11 +1323,11 @@ ] }, "locked": { - "lastModified": 1737512878, - "narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", + "lastModified": 1742178793, + "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", + "rev": "954582a766a50ebef5695a9616c93b5386418c08", "type": "github" }, "original": { @@ -1136,9 +1351,39 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { - "systems": "systems" + "systems": "systems_3" }, "locked": { "lastModified": 1701680307, diff --git a/hosts/linode/l002/flake.nix b/hosts/linode/l002/flake.nix index 9f337ff..16b68f2 100644 --- a/hosts/linode/l002/flake.nix +++ b/hosts/linode/l002/flake.nix @@ -2,19 +2,19 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; deploy-rs.url = "github:serokell/deploy-rs"; - + common.url = "git+https://git.joshuabell.xyz/dotfiles"; ros_neovim.url = "git+https://git.joshuabell.xyz/nvim"; - mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common"; - mod_common.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, + common, + ros_neovim, deploy-rs, ... - }@inputs: + }: let configuration_name = "l002"; lib = nixpkgs.lib; @@ -37,62 +37,69 @@ nixosConfigurations = { nixos = self.nixosConfigurations.${configuration_name}; - "${configuration_name}" = - let - auto_modules = builtins.concatMap ( - input: - lib.optionals - (builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules) - [ - input.nixosModules.default - ] - ) (builtins.attrValues inputs); - in - (lib.nixosSystem { - modules = [ - ./configuration.nix - ./hardware-configuration.nix - ./linode.nix - ./nginx.nix - ../../../components/nix/tailscale.nix - ( - { pkgs, ... }: - { - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" - ]; - components = { - # NOTE we manually onboard this machine since it has no secrets uploaded to it - tailscale.useSecretsAuth = false; + "${configuration_name}" = lib.nixosSystem { + modules = [ + common.nixosModules.default + ros_neovim.nixosModules.default + ./configuration.nix + ./hardware-configuration.nix + ./linode.nix + ./nginx.nix + ( + { pkgs, ... }: + { + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" + ]; + + ringofstorms_common = { + systemName = configuration_name; + general = { + disableRemoteBuildsOnLio = true; }; - mods = { - common = { - disableRemoteBuildsOnLio = true; - systemName = configuration_name; - allowUnfree = true; - primaryUser = "luser"; - docker = true; - users = { - luser = { - extraGroups = [ - "wheel" - "networkmanager" - ]; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" - ]; - }; + programs = { + tailnet.enable = true; + tailnet.useSecretsAuth = false; + ssh.enable = true; + }; + users = { + # Users are all normal users and default password is password1 + admins = [ "luser" ]; # First admin is also the primary user owning nix config + users = { + luser = { + extraGroups = [ + "networkmanager" + ]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" + ]; + shell = pkgs.zsh; + packages = with pkgs; [ + bitwarden + vaultwarden + ]; }; }; }; - } - ) - ] ++ auto_modules; - specialArgs = { - inherit inputs; - }; - }); + homeManager = { + users = { + luser = { + imports = with common.homeManagerModules; [ + tmux + git + postgres + starship + zoxide + zsh + ]; + }; + }; + }; + }; + } + ) + ]; + }; }; }; } diff --git a/hosts/linode/l002/linode.nix b/hosts/linode/l002/linode.nix index 638f35b..753ccfa 100644 --- a/hosts/linode/l002/linode.nix +++ b/hosts/linode/l002/linode.nix @@ -2,6 +2,7 @@ { # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos boot.kernelParams = [ "console=ttyS0,19200n8" ]; + boot.loader.grub.enable = true; boot.loader.grub.extraConfig = '' serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; terminal_input serial; diff --git a/hosts/linode/l004/configuration.nix b/hosts/linode/l004/configuration.nix deleted file mode 100644 index e9e0b9d..0000000 --- a/hosts/linode/l004/configuration.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ - config, - ... -}: -{ - boot.loader.grub.enable = true; - system.stateVersion = "24.11"; - - containers.wasabi = { - ephemeral = true; - autoStart = true; - privateNetwork = true; - hostAddress = "192.168.100.2"; - localAddress = "192.168.100.11"; - config = - { config, pkgs, ... }: - { - system.stateVersion = "24.11"; - services.httpd.enable = true; - services.httpd.adminAddr = "foo@example.org"; - networking.firewall = { - enable = true; - allowedTCPPorts = [ 80 ]; - }; - }; - }; - - virtualisation.oci-containers = { - backend = "docker"; # or "podman" - containers = { - # Example of defining a container from the compose file - "test_nginx" = { - # autoStart = true; this is default true - image = "nginx:latest"; - ports = [ - "127.0.0.1:8085:80" - ]; - }; - }; - }; - - security.acme.acceptTerms = true; - security.acme.email = "admin@joshuabell.xyz"; - services.nginx = { - enable = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedProxySettings = true; - recommendedTlsSettings = true; - virtualHosts = { - "_" = { - default = true; - locations."/wasabi/" = { - extraConfig = '' - rewrite ^/wasabi/(.*) /$1 break; - ''; - proxyPass = "http://${config.containers.wasabi.localAddress}:80/"; - }; - locations."/" = { - # return = "404"; # or 444 for drop - proxyPass = "http://127.0.0.1:8085/"; - }; - }; - }; - }; - - networking.firewall.allowedTCPPorts = [ - 80 - 443 - ]; -} diff --git a/hosts/linode/l004/flake.lock b/hosts/linode/l004/flake.lock deleted file mode 100644 index cc7b75b..0000000 --- a/hosts/linode/l004/flake.lock +++ /dev/null @@ -1,135 +0,0 @@ -{ - "nodes": { - "deploy-rs": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", - "utils": "utils" - }, - "locked": { - "lastModified": 1727447169, - "narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=", - "owner": "serokell", - "repo": "deploy-rs", - "rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76", - "type": "github" - }, - "original": { - "owner": "serokell", - "repo": "deploy-rs", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "mod_common": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736191002, - "narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=", - "ref": "mod_common", - "rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2", - "revCount": 4, - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" - }, - "original": { - "ref": "mod_common", - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1702272962, - "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1736200483, - "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "deploy-rs": "deploy-rs", - "mod_common": "mod_common", - "nixpkgs": "nixpkgs_2" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/hosts/linode/l004/flake.nix b/hosts/linode/l004/flake.nix deleted file mode 100644 index d208e3c..0000000 --- a/hosts/linode/l004/flake.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; - deploy-rs.url = "github:serokell/deploy-rs"; - - mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common"; - mod_common.inputs.nixpkgs.follows = "nixpkgs"; - }; - - outputs = - { - self, - nixpkgs, - deploy-rs, - ... - }@inputs: - let - configuration_name = "l004"; - lib = nixpkgs.lib; - in - { - deploy = { - sshUser = "root"; - sshOpts = [ - "-i" - "/run/agenix/nix2linode" - ]; - nodes.${configuration_name} = { - hostname = "LINODE_IP_HERE_TODO"; - profiles.system = { - user = "root"; - path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${configuration_name}; - }; - }; - }; - - nixosConfigurations = { - nixos = self.nixosConfigurations.${configuration_name}; - "${configuration_name}" = - let - auto_modules = builtins.concatMap ( - input: - lib.optionals - (builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules) - [ - input.nixosModules.default - ] - ) (builtins.attrValues inputs); - in - (lib.nixosSystem { - modules = [ - ./configuration.nix - ./hardware-configuration.nix - ./linode.nix - ( - { pkgs, ... }: - { - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" - ]; - mods = { - common = { - disableRemoteBuildsOnLio = true; - systemName = configuration_name; - allowUnfree = true; - primaryUser = "luser"; - docker = true; - users = { - luser = { - extraGroups = [ - "wheel" - "networkmanager" - ]; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" - ]; - }; - }; - }; - }; - } - ) - ] ++ auto_modules; - specialArgs = { - inherit inputs; - }; - }); - }; - }; -} diff --git a/hosts/linode/l004/hardware-configuration.nix b/hosts/linode/l004/hardware-configuration.nix deleted file mode 100644 index 6507949..0000000 --- a/hosts/linode/l004/hardware-configuration.nix +++ /dev/null @@ -1,34 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/3612d65e-719c-4b33-af08-561b790d6d33"; - fsType = "ext4"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/f1408ea6-59a0-11ed-bc9d-525400000001"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s5.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -} - diff --git a/hosts/linode/l004/linode.nix b/hosts/linode/l004/linode.nix deleted file mode 100644 index 638f35b..0000000 --- a/hosts/linode/l004/linode.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ config, pkgs, ... }: -{ - # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos - boot.kernelParams = [ "console=ttyS0,19200n8" ]; - boot.loader.grub.extraConfig = '' - serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; - terminal_input serial; - terminal_output serial - ''; - - boot.loader.grub.forceInstall = true; - boot.loader.grub.device = "nodev"; - boot.loader.timeout = 10; - - services.openssh = { - enable = true; - settings.PermitRootLogin = "yes"; - settings.PasswordAuthentication = false; - }; - users.users.root.openssh.authorizedKeys.keys = config.users.users.luser.openssh.authorizedKeys.keys; - - networking.usePredictableInterfaceNames = false; - networking.useDHCP = false; # Disable DHCP globally as we will not need it. - # required for ssh? - networking.interfaces.eth0.useDHCP = true; - - environment.systemPackages = with pkgs; [ - inetutils - mtr - sysstat - ]; -} diff --git a/hosts/linode/l004/readme.md b/hosts/linode/l004/readme.md deleted file mode 100644 index 3a96486..0000000 --- a/hosts/linode/l004/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Linode setup - -https://www.linode.com/docs/guides/install-nixos-on-linode/#prepare-your-linode -https://nixos.org/download/ - -`export HOSTNAME=NAME && sudo nixos-rebuild switch --flake ~/.config/nixos-config` - -# Deploying - -`cd hosts/NAME && deploy` diff --git a/hosts/linode/linode.nix b/hosts/linode/linode.nix index 1646de9..9b43d9a 100644 --- a/hosts/linode/linode.nix +++ b/hosts/linode/linode.nix @@ -2,6 +2,7 @@ { # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos boot.kernelParams = [ "console=ttyS0,19200n8" ]; + boot.loader.grub.enable = true; boot.loader.grub.extraConfig = '' serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; terminal_input serial; diff --git a/hosts/lio/flake.nix b/hosts/lio/flake.nix index 20d29e4..f9f9bd7 100644 --- a/hosts/lio/flake.nix +++ b/hosts/lio/flake.nix @@ -42,6 +42,8 @@ lua qdirstat steam + ffmpeg-full + appimage-run ]; # Also allow this key to work for root user, this will let us use this as a remote builder easier @@ -54,6 +56,7 @@ ringofstorms_common = { systemName = configuration_name; boot.systemd.enable = true; + secrets.enable = true; general = { disableRemoteBuildsOnLio = true; }; diff --git a/hosts/oren/flake.nix b/hosts/oren/flake.nix index 86166ba..121206d 100644 --- a/hosts/oren/flake.nix +++ b/hosts/oren/flake.nix @@ -48,6 +48,7 @@ general = { disableRemoteBuildsOnLio = true; }; + secrets.enable = true; desktopEnvironment.gnome.enable = true; programs = { qFlipper.enable = true; From 19d97c8de5c7c7067951b756f6eb98f41a1e2285 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 09:26:18 -0500 Subject: [PATCH 2/7] add f2b bypass for tailnet --- common/programs/ssh.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/programs/ssh.nix b/common/programs/ssh.nix index 6cbc169..6b0cea7 100644 --- a/common/programs/ssh.nix +++ b/common/programs/ssh.nix @@ -29,7 +29,7 @@ in default = true; description = "Enable fail2ban."; }; - allowRootPasswordLogin = lib.mkOption { + allowPasswordLogin = lib.mkOption { type = lib.types.bool; default = false; description = "Allow root password login."; @@ -45,6 +45,10 @@ in # Use fail2ban services.fail2ban = lib.mkIf cfg.fail2Ban { enable = true; + # Ignore my tailnet + ignoreIP = [ + "100.64.0.0/10" + ]; }; # Open ports in the firewall if enabled. @@ -58,7 +62,7 @@ in settings = { LogLevel = "VERBOSE"; PermitRootLogin = "yes"; - PasswordAuthentication = if cfg.allowRootPasswordLogin then true else false; + PasswordAuthentication = cfg.allowPasswordLogin; }; }; From bb9db51e97e144330e11c9926c05770ba38b0e11 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 11:40:26 -0500 Subject: [PATCH 3/7] root home dir update --- common/_home_manager/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/_home_manager/default.nix b/common/_home_manager/default.nix index 2c96bf6..d93e235 100644 --- a/common/_home_manager/default.nix +++ b/common/_home_manager/default.nix @@ -39,7 +39,7 @@ in home.stateVersion = cfg.stateVersion; programs.home-manager.enable = true; home.username = name; - home.homeDirectory = lib.mkForce "/home/${name}"; + home.homeDirectory = lib.mkForce (if name == "root" then "/root" else "/home/${name}"); }; }) cfg.users; }; From ac72234c9736aa0d7b1a28bb1c78dca0ff093f71 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 12:20:58 -0500 Subject: [PATCH 4/7] allow root in users config --- common/users/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/users/default.nix b/common/users/default.nix index 8c36799..551c7bb 100644 --- a/common/users/default.nix +++ b/common/users/default.nix @@ -43,7 +43,7 @@ in userConfig // { inherit name; - isNormalUser = true; + isNormalUser = lib.mkIf name != "root" true; initialPassword = if (lib.hasAttr "initialPassword" userConfig) then userConfig.initialPassword else "password1"; extraGroups = From 138565efadeed6baf2a632c5dcc95a2031c77f86 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 12:42:05 -0500 Subject: [PATCH 5/7] fix root check --- common/users/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/users/default.nix b/common/users/default.nix index 551c7bb..8561d8d 100644 --- a/common/users/default.nix +++ b/common/users/default.nix @@ -43,7 +43,7 @@ in userConfig // { inherit name; - isNormalUser = lib.mkIf name != "root" true; + isNormalUser = lib.mkIf (name != "root") true; initialPassword = if (lib.hasAttr "initialPassword" userConfig) then userConfig.initialPassword else "password1"; extraGroups = From c781a90851b335f65b555aea6b6f024e4b61ef32 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 12:49:00 -0500 Subject: [PATCH 6/7] update all VPS configs --- hosts/h002/flake.nix | 1 - hosts/linode/l001/flake.lock | 8 +- hosts/linode/l001/flake.nix | 19 +- hosts/linode/l001/linode.nix | 1 - hosts/linode/l002/flake.lock | 8 +- hosts/linode/l002/flake.nix | 22 +- hosts/linode/l002/linode.nix | 1 - hosts/linode/l002/nginx.nix | 9 - hosts/oracle/o001/flake.lock | 1308 +++++++++++++++++- hosts/oracle/o001/flake.nix | 128 +- hosts/oracle/o001/hardware-configuration.nix | 1 + hosts/oracle/o001/vaultwarden.nix | 2 +- 12 files changed, 1374 insertions(+), 134 deletions(-) diff --git a/hosts/h002/flake.nix b/hosts/h002/flake.nix index de88d6b..5730299 100644 --- a/hosts/h002/flake.nix +++ b/hosts/h002/flake.nix @@ -52,7 +52,6 @@ docker.enable = true; }; users = { - # Users are all normal users and default password is password1 admins = [ "josh" ]; # First admin is also the primary user owning nix config users = { josh = { diff --git a/hosts/linode/l001/flake.lock b/hosts/linode/l001/flake.lock index 15ad795..ea531e7 100644 --- a/hosts/linode/l001/flake.lock +++ b/hosts/linode/l001/flake.lock @@ -32,11 +32,11 @@ "ragenix": "ragenix" }, "locked": { - "lastModified": 1742335106, - "narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=", + "lastModified": 1742406125, + "narHash": "sha256-+NQNj2IMJuEiymB+YrcZkxeZt7QlC+Bwe5rWgRRHKrU=", "ref": "refs/heads/master", - "rev": "aacf05e59d89836103e75345640d7b82481363c0", - "revCount": 366, + "rev": "138565efadeed6baf2a632c5dcc95a2031c77f86", + "revCount": 371, "type": "git", "url": "https://git.joshuabell.xyz/dotfiles" }, diff --git a/hosts/linode/l001/flake.nix b/hosts/linode/l001/flake.nix index 8075ea3..167c53a 100644 --- a/hosts/linode/l001/flake.nix +++ b/hosts/linode/l001/flake.nix @@ -49,8 +49,9 @@ ( { config, pkgs, ... }: { - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" + environment.systemPackages = with pkgs; [ + bitwarden + vaultwarden ]; ringofstorms_common = { @@ -65,29 +66,21 @@ ssh.enable = true; }; users = { - # Users are all normal users and default password is password1 - admins = [ "luser" ]; # First admin is also the primary user owning nix config users = { - luser = { - extraGroups = [ - "networkmanager" - ]; + root = { openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" ]; shell = pkgs.zsh; - packages = with pkgs; [ - bitwarden - vaultwarden - ]; }; }; }; homeManager = { users = { - luser = { + root = { imports = with common.homeManagerModules; [ tmux + atuin git postgres starship diff --git a/hosts/linode/l001/linode.nix b/hosts/linode/l001/linode.nix index 753ccfa..b0f8894 100644 --- a/hosts/linode/l001/linode.nix +++ b/hosts/linode/l001/linode.nix @@ -18,7 +18,6 @@ settings.PermitRootLogin = "yes"; settings.PasswordAuthentication = false; }; - users.users.root.openssh.authorizedKeys.keys = config.users.users.luser.openssh.authorizedKeys.keys; networking.usePredictableInterfaceNames = false; networking.useDHCP = false; # Disable DHCP globally as we will not need it. diff --git a/hosts/linode/l002/flake.lock b/hosts/linode/l002/flake.lock index 15ad795..ea531e7 100644 --- a/hosts/linode/l002/flake.lock +++ b/hosts/linode/l002/flake.lock @@ -32,11 +32,11 @@ "ragenix": "ragenix" }, "locked": { - "lastModified": 1742335106, - "narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=", + "lastModified": 1742406125, + "narHash": "sha256-+NQNj2IMJuEiymB+YrcZkxeZt7QlC+Bwe5rWgRRHKrU=", "ref": "refs/heads/master", - "rev": "aacf05e59d89836103e75345640d7b82481363c0", - "revCount": 366, + "rev": "138565efadeed6baf2a632c5dcc95a2031c77f86", + "revCount": 371, "type": "git", "url": "https://git.joshuabell.xyz/dotfiles" }, diff --git a/hosts/linode/l002/flake.nix b/hosts/linode/l002/flake.nix index 16b68f2..ec12a00 100644 --- a/hosts/linode/l002/flake.nix +++ b/hosts/linode/l002/flake.nix @@ -48,14 +48,18 @@ ( { pkgs, ... }: { - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" + environment.systemPackages = with pkgs; [ + bitwarden + vaultwarden ]; ringofstorms_common = { systemName = configuration_name; general = { disableRemoteBuildsOnLio = true; + readWindowsDrives = false; + jetbrainsMonoFont = false; + ttyCapsEscape = false; }; programs = { tailnet.enable = true; @@ -63,29 +67,21 @@ ssh.enable = true; }; users = { - # Users are all normal users and default password is password1 - admins = [ "luser" ]; # First admin is also the primary user owning nix config users = { - luser = { - extraGroups = [ - "networkmanager" - ]; + root = { openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" ]; shell = pkgs.zsh; - packages = with pkgs; [ - bitwarden - vaultwarden - ]; }; }; }; homeManager = { users = { - luser = { + root = { imports = with common.homeManagerModules; [ tmux + atuin git postgres starship diff --git a/hosts/linode/l002/linode.nix b/hosts/linode/l002/linode.nix index 753ccfa..b0f8894 100644 --- a/hosts/linode/l002/linode.nix +++ b/hosts/linode/l002/linode.nix @@ -18,7 +18,6 @@ settings.PermitRootLogin = "yes"; settings.PasswordAuthentication = false; }; - users.users.root.openssh.authorizedKeys.keys = config.users.users.luser.openssh.authorizedKeys.keys; networking.usePredictableInterfaceNames = false; networking.useDHCP = false; # Disable DHCP globally as we will not need it. diff --git a/hosts/linode/l002/nginx.nix b/hosts/linode/l002/nginx.nix index 3cfac9d..7b47763 100644 --- a/hosts/linode/l002/nginx.nix +++ b/hosts/linode/l002/nginx.nix @@ -1,5 +1,4 @@ { - pkgs, ... }: { @@ -76,14 +75,6 @@ proxyPass = "http://100.64.0.2:6610"; }; }; - "vault.t.joshuabell.xyz" = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyWebsockets = true; - proxyPass = "http://100.64.0.2:64608"; - }; - }; # Redirect self IP to domain "172.234.26.141" = { diff --git a/hosts/oracle/o001/flake.lock b/hosts/oracle/o001/flake.lock index f536f0f..ea531e7 100644 --- a/hosts/oracle/o001/flake.lock +++ b/hosts/oracle/o001/flake.lock @@ -1,9 +1,93 @@ { "nodes": { + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager_2", + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "owner": "ryantm", + "repo": "agenix", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "common": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2", + "ragenix": "ragenix" + }, + "locked": { + "lastModified": 1742406125, + "narHash": "sha256-+NQNj2IMJuEiymB+YrcZkxeZt7QlC+Bwe5rWgRRHKrU=", + "ref": "refs/heads/master", + "rev": "138565efadeed6baf2a632c5dcc95a2031c77f86", + "revCount": 371, + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + }, + "original": { + "type": "git", + "url": "https://git.joshuabell.xyz/dotfiles" + } + }, + "crane": { + "locked": { + "lastModified": 1741481578, + "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", + "owner": "ipetkov", + "repo": "crane", + "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "agenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, "deploy-rs": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_4", "utils": "utils" }, "locked": { @@ -36,28 +120,115 @@ "type": "github" } }, - "mod_common": { + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", + "owner": "rycee", + "repo": "home-manager", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", + "type": "github" + }, + "original": { + "owner": "rycee", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { "inputs": { "nixpkgs": [ + "common", + "ragenix", + "agenix", "nixpkgs" ] }, "locked": { - "lastModified": 1737140780, - "narHash": "sha256-qf0GX8TZcu05RqBdqm3kYz82EVWH0Ijl7FMa89UMAks=", - "ref": "mod_common", - "rev": "172ff3a299bbd8463fdd71a2ac2dc257bc7331e8", - "revCount": 11, - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "lastModified": 1703113217, + "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "type": "github" }, "original": { - "ref": "mod_common", - "type": "git", - "url": "https://git.joshuabell.xyz/dotfiles" + "owner": "nix-community", + "repo": "home-manager", + "type": "github" } }, "nixpkgs": { + "locked": { + "lastModified": 1731755305, + "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1742069588, + "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1741379970, + "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1702272962, "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", @@ -73,13 +244,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_5": { "locked": { - "lastModified": 1737299813, - "narHash": "sha256-Qw2PwmkXDK8sPQ5YQ/y/icbQ+TYgbxfjhgnkNJyT1X8=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "nixos", "repo": "nixpkgs", - "rev": "107d5ef05c0b1119749e381451389eded30fb0d5", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -89,11 +260,1080 @@ "type": "github" } }, + "nixpkgs_6": { + "locked": { + "lastModified": 1742225912, + "narHash": "sha256-HCD3GrAAJb1jYTEc221DPlBk2VDkBt43hww7DXC1tyc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9df17ad16500057b7b081137ff7af1a8a6a32f6e", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nvim_plugin-Almo7aya/openingh.nvim": { + "flake": false, + "locked": { + "lastModified": 1733158448, + "narHash": "sha256-JP3+goMgs3SiMHS9IVE7NAV/iKxyXi0fZgJb8hojtNQ=", + "owner": "Almo7aya", + "repo": "openingh.nvim", + "rev": "9131016c1167e23522a8e874b62217829fd327b8", + "type": "github" + }, + "original": { + "owner": "Almo7aya", + "repo": "openingh.nvim", + "type": "github" + } + }, + "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { + "flake": false, + "locked": { + "lastModified": 1742210958, + "narHash": "sha256-+1dSGYeUpW/EUbP0scgGz48UB5RAPZYIWCglTFyntaU=", + "owner": "CopilotC-Nvim", + "repo": "CopilotChat.nvim", + "rev": "62b1249aa4a4fc7afe11c7e647cba0cef743826f", + "type": "github" + }, + "original": { + "owner": "CopilotC-Nvim", + "repo": "CopilotChat.nvim", + "type": "github" + } + }, + "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": { + "flake": false, + "locked": { + "lastModified": 1733574156, + "narHash": "sha256-AjDM3+n4+lNBQi8P2Yrh0Ab06uYCndBQT9TX36rDbOM=", + "owner": "JoosepAlviste", + "repo": "nvim-ts-context-commentstring", + "rev": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f", + "type": "github" + }, + "original": { + "owner": "JoosepAlviste", + "repo": "nvim-ts-context-commentstring", + "type": "github" + } + }, + "nvim_plugin-L3MON4D3/LuaSnip": { + "flake": false, + "locked": { + "lastModified": 1736009707, + "narHash": "sha256-3ecm5SDTcSOh256xSQPHhddQfMpepiEIpv58fHXrVg0=", + "owner": "L3MON4D3", + "repo": "LuaSnip", + "rev": "c9b9a22904c97d0eb69ccb9bab76037838326817", + "type": "github" + }, + "original": { + "owner": "L3MON4D3", + "repo": "LuaSnip", + "type": "github" + } + }, + "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { + "flake": false, + "locked": { + "lastModified": 1742156824, + "narHash": "sha256-n+pT7FiQONHhiZQH4BGjERrikGNSFTNciMx92oQGA1c=", + "owner": "MeanderingProgrammer", + "repo": "render-markdown.nvim", + "rev": "9721ffe230ec90e49c49ee33b5ca44c3fc689214", + "type": "github" + }, + "original": { + "owner": "MeanderingProgrammer", + "repo": "render-markdown.nvim", + "type": "github" + } + }, + "nvim_plugin-MunifTanjim/nui.nvim": { + "flake": false, + "locked": { + "lastModified": 1741233810, + "narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=", + "owner": "MunifTanjim", + "repo": "nui.nvim", + "rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb", + "type": "github" + }, + "original": { + "owner": "MunifTanjim", + "repo": "nui.nvim", + "type": "github" + } + }, + "nvim_plugin-RRethy/vim-illuminate": { + "flake": false, + "locked": { + "lastModified": 1740540215, + "narHash": "sha256-jSny+5RHgxcsoxWwIaFUZ022dk3mDRKZ7dibvE6I2fE=", + "owner": "RRethy", + "repo": "vim-illuminate", + "rev": "19cb21f513fc2b02f0c66be70107741e837516a1", + "type": "github" + }, + "original": { + "owner": "RRethy", + "repo": "vim-illuminate", + "type": "github" + } + }, + "nvim_plugin-Saecki/crates.nvim": { + "flake": false, + "locked": { + "lastModified": 1741644182, + "narHash": "sha256-hmUqhAVLBiCUl16+S/hvRxqA/pTXcWejpLtwvqxBPaY=", + "owner": "Saecki", + "repo": "crates.nvim", + "rev": "403a0abef0e2aec12749a534dc468d6fd50c6741", + "type": "github" + }, + "original": { + "owner": "Saecki", + "repo": "crates.nvim", + "type": "github" + } + }, + "nvim_plugin-aznhe21/actions-preview.nvim": { + "flake": false, + "locked": { + "lastModified": 1740589350, + "narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=", + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2", + "type": "github" + }, + "original": { + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "type": "github" + } + }, + "nvim_plugin-b0o/schemastore.nvim": { + "flake": false, + "locked": { + "lastModified": 1741996938, + "narHash": "sha256-eAqM/n0DDwl3WUO987c2mk3z7uJ4gAE0hkPg4Twyr4w=", + "owner": "b0o", + "repo": "schemastore.nvim", + "rev": "56d8ed0fa1516242085ba5e95d7f49fad50d5754", + "type": "github" + }, + "original": { + "owner": "b0o", + "repo": "schemastore.nvim", + "type": "github" + } + }, + "nvim_plugin-catppuccin/nvim": { + "flake": false, + "locked": { + "lastModified": 1740764472, + "narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=", + "owner": "catppuccin", + "repo": "nvim", + "rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nvim", + "type": "github" + } + }, + "nvim_plugin-chrisgrieser/nvim-early-retirement": { + "flake": false, + "locked": { + "lastModified": 1735588187, + "narHash": "sha256-ZjXG+POJFRsc79i1BuAJB9K6UBUfHT05oYvZaUr+RqA=", + "owner": "chrisgrieser", + "repo": "nvim-early-retirement", + "rev": "9ae6fcc933fc865ddf2728460194b67985e06e27", + "type": "github" + }, + "original": { + "owner": "chrisgrieser", + "repo": "nvim-early-retirement", + "type": "github" + } + }, + "nvim_plugin-declancm/cinnamon.nvim": { + "flake": false, + "locked": { + "lastModified": 1722992123, + "narHash": "sha256-kccQ4iFMSQ8kvE7hYz90hBrsDLo7VohFj/6lEZZiAO8=", + "owner": "declancm", + "repo": "cinnamon.nvim", + "rev": "450cb3247765fed7871b41ef4ce5fa492d834215", + "type": "github" + }, + "original": { + "owner": "declancm", + "repo": "cinnamon.nvim", + "type": "github" + } + }, + "nvim_plugin-folke/lazy.nvim": { + "flake": false, + "locked": { + "lastModified": 1740511197, + "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=", + "owner": "folke", + "repo": "lazy.nvim", + "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "lazy.nvim", + "type": "github" + } + }, + "nvim_plugin-folke/neodev.nvim": { + "flake": false, + "locked": { + "lastModified": 1720260306, + "narHash": "sha256-hOjzlo/IqmV8tYjGwfmcCPEmHYsWnEIwtHZdhpwA1kM=", + "owner": "folke", + "repo": "neodev.nvim", + "rev": "46aa467dca16cf3dfe27098042402066d2ae242d", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "neodev.nvim", + "type": "github" + } + }, + "nvim_plugin-folke/which-key.nvim": { + "flake": false, + "locked": { + "lastModified": 1740233407, + "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "370ec46f710e058c9c1646273e6b225acf47cbed", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" + } + }, + "nvim_plugin-hrsh7th/cmp-buffer": { + "flake": false, + "locked": { + "lastModified": 1660101488, + "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", + "owner": "hrsh7th", + "repo": "cmp-buffer", + "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-buffer", + "type": "github" + } + }, + "nvim_plugin-hrsh7th/cmp-nvim-lsp": { + "flake": false, + "locked": { + "lastModified": 1733823748, + "narHash": "sha256-iaihXNCF5bB5MdeoosD/kc3QtpA/QaIDZVLiLIurBSM=", + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "rev": "99290b3ec1322070bcfb9e846450a46f6efa50f0", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "type": "github" + } + }, + "nvim_plugin-hrsh7th/cmp-path": { + "flake": false, + "locked": { + "lastModified": 1664784283, + "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", + "owner": "hrsh7th", + "repo": "cmp-path", + "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-path", + "type": "github" + } + }, + "nvim_plugin-hrsh7th/nvim-cmp": { + "flake": false, + "locked": { + "lastModified": 1741936119, + "narHash": "sha256-zl/rgbZF3+nsLI7Sd6xzQFlcpa5n/8pyganS+u0jD/s=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "1e1900b0769324a9675ef85b38f99cca29e203b3", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "nvim_plugin-j-hui/fidget.nvim": { + "flake": false, + "locked": { + "lastModified": 1738817426, + "narHash": "sha256-AFUx/ZQVWV7s5Wlppjk6N9QXoJKNKqxtf990FFlTEhw=", + "owner": "j-hui", + "repo": "fidget.nvim", + "rev": "d9ba6b7bfe29b3119a610892af67602641da778e", + "type": "github" + }, + "original": { + "owner": "j-hui", + "repo": "fidget.nvim", + "type": "github" + } + }, + "nvim_plugin-johmsalas/text-case.nvim": { + "flake": false, + "locked": { + "lastModified": 1722628320, + "narHash": "sha256-2IMufSMy9JW50VzZ3SgOtp8kYs81ANwV0eP0ZH3rTFo=", + "owner": "johmsalas", + "repo": "text-case.nvim", + "rev": "e898cfd46fa6cde0e83abb624a16e67d2ffc6457", + "type": "github" + }, + "original": { + "owner": "johmsalas", + "repo": "text-case.nvim", + "type": "github" + } + }, + "nvim_plugin-lewis6991/gitsigns.nvim": { + "flake": false, + "locked": { + "lastModified": 1742140868, + "narHash": "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, + "nvim_plugin-lnc3l0t/glow.nvim": { + "flake": false, + "locked": { + "lastModified": 1693233815, + "narHash": "sha256-vdlwkIK2EkFviJmSiOqPWvc15xqJ9F2gHCC4ObJ5Qjk=", + "owner": "lnc3l0t", + "repo": "glow.nvim", + "rev": "5b38fb7b6e806cac62707a4aba8c10c5f14d5bb5", + "type": "github" + }, + "original": { + "owner": "lnc3l0t", + "repo": "glow.nvim", + "type": "github" + } + }, + "nvim_plugin-lukas-reineke/indent-blankline.nvim": { + "flake": false, + "locked": { + "lastModified": 1742224677, + "narHash": "sha256-0q/V+b4UrDRnaC/eRWOi9HU9a61vQSAM9/C8ZQyKt+Y=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, + "nvim_plugin-lvimuser/lsp-inlayhints.nvim": { + "flake": false, + "locked": { + "lastModified": 1686236485, + "narHash": "sha256-06CiJ+xeMO4+OJkckcslqwloJyt2gwg514JuxV6KOfQ=", + "owner": "lvimuser", + "repo": "lsp-inlayhints.nvim", + "rev": "d981f65c9ae0b6062176f0accb9c151daeda6f16", + "type": "github" + }, + "original": { + "owner": "lvimuser", + "repo": "lsp-inlayhints.nvim", + "type": "github" + } + }, + "nvim_plugin-m4xshen/hardtime.nvim": { + "flake": false, + "locked": { + "lastModified": 1741414159, + "narHash": "sha256-tigKgK1yGc5JEHd4RLXCd6Hq7ia3en3Xtk8X6L5+ef4=", + "owner": "m4xshen", + "repo": "hardtime.nvim", + "rev": "f87c86d1aa1e05dcf3c6ecd97fbfd237e2de0bf5", + "type": "github" + }, + "original": { + "owner": "m4xshen", + "repo": "hardtime.nvim", + "type": "github" + } + }, + "nvim_plugin-mbbill/undotree": { + "flake": false, + "locked": { + "lastModified": 1741878850, + "narHash": "sha256-HGf4Toe+12YZtIalvANDXAtksCsnxQkZbcevOAnl5G4=", + "owner": "mbbill", + "repo": "undotree", + "rev": "b951b87b46c34356d44aa71886aecf9dd7f5788a", + "type": "github" + }, + "original": { + "owner": "mbbill", + "repo": "undotree", + "type": "github" + } + }, + "nvim_plugin-mfussenegger/nvim-lint": { + "flake": false, + "locked": { + "lastModified": 1738838825, + "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=", + "owner": "mfussenegger", + "repo": "nvim-lint", + "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8", + "type": "github" + }, + "original": { + "owner": "mfussenegger", + "repo": "nvim-lint", + "type": "github" + } + }, + "nvim_plugin-mrcjkb/rustaceanvim": { + "flake": false, + "locked": { + "lastModified": 1742147378, + "narHash": "sha256-I2H/0VNKWKK49EReXT81SVTHHHW9hT1+6n7h1cbLD0A=", + "owner": "mrcjkb", + "repo": "rustaceanvim", + "rev": "448c76451ecf3c0edabcde427b7f1c8c219be2dd", + "type": "github" + }, + "original": { + "owner": "mrcjkb", + "repo": "rustaceanvim", + "type": "github" + } + }, + "nvim_plugin-neovim/nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1742142850, + "narHash": "sha256-CppHawmKEopPbK6HO4RFd7Kc1iMoCVwpIyN2Z6wiMfo=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "2574ad38c6ee4f0bef3a1ca305cd5df627a52bb3", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "nvim_plugin-nosduco/remote-sshfs.nvim": { + "flake": false, + "locked": { + "lastModified": 1724901856, + "narHash": "sha256-vFEIISxhTIGSl9LzDYHuEIkjLGkU0y5XhfWI/i5DgN4=", + "owner": "nosduco", + "repo": "remote-sshfs.nvim", + "rev": "03f6c40c4032eeb1ab91368e06db9c3f3a97a75d", + "type": "github" + }, + "original": { + "owner": "nosduco", + "repo": "remote-sshfs.nvim", + "type": "github" + } + }, + "nvim_plugin-numToStr/Comment.nvim": { + "flake": false, + "locked": { + "lastModified": 1717957420, + "narHash": "sha256-h0kPue5Eqd5aeu4VoLH45pF0DmWWo1d8SnLICSQ63zc=", + "owner": "numToStr", + "repo": "Comment.nvim", + "rev": "e30b7f2008e52442154b66f7c519bfd2f1e32acb", + "type": "github" + }, + "original": { + "owner": "numToStr", + "repo": "Comment.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-lua/plenary.nvim": { + "flake": false, + "locked": { + "lastModified": 1739311008, + "narHash": "sha256-8FV5RjF7QbDmQOQynpK7uRKONKbPRYbOPugf9ZxNvUs=", + "owner": "nvim-lua", + "repo": "plenary.nvim", + "rev": "857c5ac632080dba10aae49dba902ce3abf91b35", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "plenary.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-lualine/lualine.nvim": { + "flake": false, + "locked": { + "lastModified": 1742039150, + "narHash": "sha256-qYKykdCcXd+OHmK3WvsUCbn0zDKTQDj49VYsQ8iVvgs=", + "owner": "nvim-lualine", + "repo": "lualine.nvim", + "rev": "b8b60c7f1d0d95ad74ee215b2291280b30482476", + "type": "github" + }, + "original": { + "owner": "nvim-lualine", + "repo": "lualine.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-telescope/telescope-file-browser.nvim": { + "flake": false, + "locked": { + "lastModified": 1729728595, + "narHash": "sha256-VJbRi91TTOwUkQYyTM6Njl7MtX8/mOjINiqWYWEtyxg=", + "owner": "nvim-telescope", + "repo": "telescope-file-browser.nvim", + "rev": "626998e5c1b71c130d8bc6cf7abb6709b98287bb", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-file-browser.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": { + "flake": false, + "locked": { + "lastModified": 1741765009, + "narHash": "sha256-Zyv8ikxdwoUiDD0zsqLzfhBVOm/nKyJdZpndxXEB6ow=", + "owner": "nvim-telescope", + "repo": "telescope-fzf-native.nvim", + "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-fzf-native.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-telescope/telescope-ui-select.nvim": { + "flake": false, + "locked": { + "lastModified": 1701723223, + "narHash": "sha256-YRhNmmG4gx9Ht8JwjQfbTjJyTHEuZmtP6lqnhOsk8bE=", + "owner": "nvim-telescope", + "repo": "telescope-ui-select.nvim", + "rev": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-ui-select.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-telescope/telescope.nvim": { + "flake": false, + "locked": { + "lastModified": 1742171408, + "narHash": "sha256-mHucOyrgQc3wVdK7lUQANW8Jka+m5gQ2z8JWtwo99bU=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "a17d611a0e111836a1db5295f04945df407c5135", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, + "nvim_plugin-nvim-tree/nvim-tree.lua": { + "flake": false, + "locked": { + "lastModified": 1740787655, + "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=", + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "type": "github" + } + }, + "nvim_plugin-nvim-tree/nvim-web-devicons": { + "flake": false, + "locked": { + "lastModified": 1742215722, + "narHash": "sha256-JKOvXJr1s2lpP5aeRE7OC3IeOrF5uJxg/Tal3eScd6g=", + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "rev": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "type": "github" + } + }, + "nvim_plugin-nvim-treesitter/nvim-treesitter-context": { + "flake": false, + "locked": { + "lastModified": 1742201688, + "narHash": "sha256-rpmHIOXiD/mh0PHBdo1k1Wdb213KtBevmyCFrP89tME=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "rev": "83ded3bbff8bc13abc9704bf1c5e426f3ba343c4", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "type": "github" + } + }, + "nvim_plugin-rafamadriz/friendly-snippets": { + "flake": false, + "locked": { + "lastModified": 1733106470, + "narHash": "sha256-I8SRZxnoNC6SOWW+scoA77Jwyxcb4eUczppLdyOiZe0=", + "owner": "rafamadriz", + "repo": "friendly-snippets", + "rev": "efff286dd74c22f731cdec26a70b46e5b203c619", + "type": "github" + }, + "original": { + "owner": "rafamadriz", + "repo": "friendly-snippets", + "type": "github" + } + }, + "nvim_plugin-rcarriga/nvim-notify": { + "flake": false, + "locked": { + "lastModified": 1737405174, + "narHash": "sha256-6vNfc7E9DMXF0IBXJCLA8Rp+uOgbDch/Q7beW0ys3Vo=", + "owner": "rcarriga", + "repo": "nvim-notify", + "rev": "22f29093eae7785773ee9d543f8750348b1a195c", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-notify", + "type": "github" + } + }, + "nvim_plugin-rmagatti/auto-session": { + "flake": false, + "locked": { + "lastModified": 1742136796, + "narHash": "sha256-Tc4EfcucGAR+5qURjoYqG5gW24PCYJLVd47OrFhyfRo=", + "owner": "rmagatti", + "repo": "auto-session", + "rev": "317412742990371f8e4709074da5c378456a27ff", + "type": "github" + }, + "original": { + "owner": "rmagatti", + "repo": "auto-session", + "type": "github" + } + }, + "nvim_plugin-ron/ron.vim": { + "flake": false, + "locked": { + "lastModified": 1660904719, + "narHash": "sha256-8/xJmymtVGVz2avzlamgK1cNflZ3NRL+B3c7xxbI964=", + "owner": "ron-rs", + "repo": "ron.vim", + "rev": "f749e543975a82e8dd9a6e7df9600a1c098ae800", + "type": "github" + }, + "original": { + "owner": "ron-rs", + "repo": "ron.vim", + "type": "github" + } + }, + "nvim_plugin-saadparwaiz1/cmp_luasnip": { + "flake": false, + "locked": { + "lastModified": 1730707109, + "narHash": "sha256-86lKQPPyqFz8jzuLajjHMKHrYnwW6+QOcPyQEx6B+gw=", + "owner": "saadparwaiz1", + "repo": "cmp_luasnip", + "rev": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90", + "type": "github" + }, + "original": { + "owner": "saadparwaiz1", + "repo": "cmp_luasnip", + "type": "github" + } + }, + "nvim_plugin-sindrets/diffview.nvim": { + "flake": false, + "locked": { + "lastModified": 1718279802, + "narHash": "sha256-SX+ybIzL/w6uyCy4iZKnWnzTFwqB1oXSgyYVAdpdKi8=", + "owner": "sindrets", + "repo": "diffview.nvim", + "rev": "4516612fe98ff56ae0415a259ff6361a89419b0a", + "type": "github" + }, + "original": { + "owner": "sindrets", + "repo": "diffview.nvim", + "type": "github" + } + }, + "nvim_plugin-stevearc/conform.nvim": { + "flake": false, + "locked": { + "lastModified": 1741136809, + "narHash": "sha256-8uC+6rQdLqpfF/lf25mppqK/xgM1+6RGIyZaheaPd48=", + "owner": "stevearc", + "repo": "conform.nvim", + "rev": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d", + "type": "github" + }, + "original": { + "owner": "stevearc", + "repo": "conform.nvim", + "type": "github" + } + }, + "nvim_plugin-stevearc/dressing.nvim": { + "flake": false, + "locked": { + "lastModified": 1739381641, + "narHash": "sha256-dBz+/gZA6O6fJy/GSgM6ZHGAR3MTGt/W1olzzTYRlgM=", + "owner": "stevearc", + "repo": "dressing.nvim", + "rev": "2d7c2db2507fa3c4956142ee607431ddb2828639", + "type": "github" + }, + "original": { + "owner": "stevearc", + "repo": "dressing.nvim", + "type": "github" + } + }, + "nvim_plugin-tpope/vim-sleuth": { + "flake": false, + "locked": { + "lastModified": 1726718493, + "narHash": "sha256-2Cr3h3uJvUL3CSoJs3aBFrkBeOBURSQItgQ4ep9sHXM=", + "owner": "tpope", + "repo": "vim-sleuth", + "rev": "be69bff86754b1aa5adcbb527d7fcd1635a84080", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-sleuth", + "type": "github" + } + }, + "nvim_plugin-tpope/vim-surround": { + "flake": false, + "locked": { + "lastModified": 1666730476, + "narHash": "sha256-DZE5tkmnT+lAvx/RQHaDEgEJXRKsy56KJY919xiH1lE=", + "owner": "tpope", + "repo": "vim-surround", + "rev": "3d188ed2113431cf8dac77be61b842acb64433d9", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-surround", + "type": "github" + } + }, + "nvim_plugin-uga-rosa/ccc.nvim": { + "flake": false, + "locked": { + "lastModified": 1735970087, + "narHash": "sha256-53WsxOfWULlO4VbSXA4DW6wjkbCzpQjkzv4O8pReuEc=", + "owner": "uga-rosa", + "repo": "ccc.nvim", + "rev": "b57cbaf8db3ac43c56c9e2c7f3812944638260ed", + "type": "github" + }, + "original": { + "owner": "uga-rosa", + "repo": "ccc.nvim", + "type": "github" + } + }, + "nvim_plugin-windwp/nvim-ts-autotag": { + "flake": false, + "locked": { + "lastModified": 1739910276, + "narHash": "sha256-a3Bcql68mp3y5bH9XMiDTQB0e75T+qFB593objIGg/I=", + "owner": "windwp", + "repo": "nvim-ts-autotag", + "rev": "a1d526af391f6aebb25a8795cbc05351ed3620b5", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-ts-autotag", + "type": "github" + } + }, + "nvim_plugin-yetone/avante.nvim": { + "flake": false, + "locked": { + "lastModified": 1742209600, + "narHash": "sha256-XmyRo20+VhyjP5CLgSy0Tr/7R031EJSmMEN/wK9JNk8=", + "owner": "yetone", + "repo": "avante.nvim", + "rev": "540cc53f0c30214e3e4b5688f030bb2d8277b8ce", + "type": "github" + }, + "original": { + "owner": "yetone", + "repo": "avante.nvim", + "type": "github" + } + }, + "nvim_plugin-zbirenbaum/copilot-cmp": { + "flake": false, + "locked": { + "lastModified": 1733947099, + "narHash": "sha256-erRL8bY/zuwuCZfttw+avTrFV7pjv2H6v73NzY2bymM=", + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "rev": "15fc12af3d0109fa76b60b5cffa1373697e261d1", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "type": "github" + } + }, + "nvim_plugin-zbirenbaum/copilot.lua": { + "flake": false, + "locked": { + "lastModified": 1739230958, + "narHash": "sha256-632UIbG1jwam+tug5+jODkT509+uBfJgUN21C3ppnEo=", + "owner": "zbirenbaum", + "repo": "copilot.lua", + "rev": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot.lua", + "type": "github" + } + }, + "ragenix": { + "inputs": { + "agenix": "agenix", + "crane": "crane", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1741508717, + "narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=", + "owner": "yaxitech", + "repo": "ragenix", + "rev": "2a2bea99d74927e54adf53cbf113219def67d5c9", + "type": "github" + }, + "original": { + "owner": "yaxitech", + "repo": "ragenix", + "type": "github" + } + }, "root": { "inputs": { + "common": "common", "deploy-rs": "deploy-rs", - "mod_common": "mod_common", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_5", + "ros_neovim": "ros_neovim" + } + }, + "ros_neovim": { + "inputs": { + "nixpkgs": "nixpkgs_6", + "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", + "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", + "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", + "nvim_plugin-L3MON4D3/LuaSnip": "nvim_plugin-L3MON4D3/LuaSnip", + "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": "nvim_plugin-MeanderingProgrammer/render-markdown.nvim", + "nvim_plugin-MunifTanjim/nui.nvim": "nvim_plugin-MunifTanjim/nui.nvim", + "nvim_plugin-RRethy/vim-illuminate": "nvim_plugin-RRethy/vim-illuminate", + "nvim_plugin-Saecki/crates.nvim": "nvim_plugin-Saecki/crates.nvim", + "nvim_plugin-aznhe21/actions-preview.nvim": "nvim_plugin-aznhe21/actions-preview.nvim", + "nvim_plugin-b0o/schemastore.nvim": "nvim_plugin-b0o/schemastore.nvim", + "nvim_plugin-catppuccin/nvim": "nvim_plugin-catppuccin/nvim", + "nvim_plugin-chrisgrieser/nvim-early-retirement": "nvim_plugin-chrisgrieser/nvim-early-retirement", + "nvim_plugin-declancm/cinnamon.nvim": "nvim_plugin-declancm/cinnamon.nvim", + "nvim_plugin-folke/lazy.nvim": "nvim_plugin-folke/lazy.nvim", + "nvim_plugin-folke/neodev.nvim": "nvim_plugin-folke/neodev.nvim", + "nvim_plugin-folke/which-key.nvim": "nvim_plugin-folke/which-key.nvim", + "nvim_plugin-hrsh7th/cmp-buffer": "nvim_plugin-hrsh7th/cmp-buffer", + "nvim_plugin-hrsh7th/cmp-nvim-lsp": "nvim_plugin-hrsh7th/cmp-nvim-lsp", + "nvim_plugin-hrsh7th/cmp-path": "nvim_plugin-hrsh7th/cmp-path", + "nvim_plugin-hrsh7th/nvim-cmp": "nvim_plugin-hrsh7th/nvim-cmp", + "nvim_plugin-j-hui/fidget.nvim": "nvim_plugin-j-hui/fidget.nvim", + "nvim_plugin-johmsalas/text-case.nvim": "nvim_plugin-johmsalas/text-case.nvim", + "nvim_plugin-lewis6991/gitsigns.nvim": "nvim_plugin-lewis6991/gitsigns.nvim", + "nvim_plugin-lnc3l0t/glow.nvim": "nvim_plugin-lnc3l0t/glow.nvim", + "nvim_plugin-lukas-reineke/indent-blankline.nvim": "nvim_plugin-lukas-reineke/indent-blankline.nvim", + "nvim_plugin-lvimuser/lsp-inlayhints.nvim": "nvim_plugin-lvimuser/lsp-inlayhints.nvim", + "nvim_plugin-m4xshen/hardtime.nvim": "nvim_plugin-m4xshen/hardtime.nvim", + "nvim_plugin-mbbill/undotree": "nvim_plugin-mbbill/undotree", + "nvim_plugin-mfussenegger/nvim-lint": "nvim_plugin-mfussenegger/nvim-lint", + "nvim_plugin-mrcjkb/rustaceanvim": "nvim_plugin-mrcjkb/rustaceanvim", + "nvim_plugin-neovim/nvim-lspconfig": "nvim_plugin-neovim/nvim-lspconfig", + "nvim_plugin-nosduco/remote-sshfs.nvim": "nvim_plugin-nosduco/remote-sshfs.nvim", + "nvim_plugin-numToStr/Comment.nvim": "nvim_plugin-numToStr/Comment.nvim", + "nvim_plugin-nvim-lua/plenary.nvim": "nvim_plugin-nvim-lua/plenary.nvim", + "nvim_plugin-nvim-lualine/lualine.nvim": "nvim_plugin-nvim-lualine/lualine.nvim", + "nvim_plugin-nvim-telescope/telescope-file-browser.nvim": "nvim_plugin-nvim-telescope/telescope-file-browser.nvim", + "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim", + "nvim_plugin-nvim-telescope/telescope-ui-select.nvim": "nvim_plugin-nvim-telescope/telescope-ui-select.nvim", + "nvim_plugin-nvim-telescope/telescope.nvim": "nvim_plugin-nvim-telescope/telescope.nvim", + "nvim_plugin-nvim-tree/nvim-tree.lua": "nvim_plugin-nvim-tree/nvim-tree.lua", + "nvim_plugin-nvim-tree/nvim-web-devicons": "nvim_plugin-nvim-tree/nvim-web-devicons", + "nvim_plugin-nvim-treesitter/nvim-treesitter-context": "nvim_plugin-nvim-treesitter/nvim-treesitter-context", + "nvim_plugin-rafamadriz/friendly-snippets": "nvim_plugin-rafamadriz/friendly-snippets", + "nvim_plugin-rcarriga/nvim-notify": "nvim_plugin-rcarriga/nvim-notify", + "nvim_plugin-rmagatti/auto-session": "nvim_plugin-rmagatti/auto-session", + "nvim_plugin-ron/ron.vim": "nvim_plugin-ron/ron.vim", + "nvim_plugin-saadparwaiz1/cmp_luasnip": "nvim_plugin-saadparwaiz1/cmp_luasnip", + "nvim_plugin-sindrets/diffview.nvim": "nvim_plugin-sindrets/diffview.nvim", + "nvim_plugin-stevearc/conform.nvim": "nvim_plugin-stevearc/conform.nvim", + "nvim_plugin-stevearc/dressing.nvim": "nvim_plugin-stevearc/dressing.nvim", + "nvim_plugin-tpope/vim-sleuth": "nvim_plugin-tpope/vim-sleuth", + "nvim_plugin-tpope/vim-surround": "nvim_plugin-tpope/vim-surround", + "nvim_plugin-uga-rosa/ccc.nvim": "nvim_plugin-uga-rosa/ccc.nvim", + "nvim_plugin-windwp/nvim-ts-autotag": "nvim_plugin-windwp/nvim-ts-autotag", + "nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim", + "nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp", + "nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1742226527, + "narHash": "sha256-CT9227XXn1t8H1ivNBBkBcf+npB7tWk5yzEQoJvbGVU=", + "ref": "refs/heads/master", + "rev": "e8bafafc36fb2227dab8f0ddb67a2439d9077091", + "revCount": 268, + "type": "git", + "url": "https://git.joshuabell.xyz/nvim" + }, + "original": { + "type": "git", + "url": "https://git.joshuabell.xyz/nvim" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "common", + "ragenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741400194, + "narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "ros_neovim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742178793, + "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "954582a766a50ebef5695a9616c93b5386418c08", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, "systems": { @@ -111,9 +1351,39 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { - "systems": "systems" + "systems": "systems_3" }, "locked": { "lastModified": 1701680307, diff --git a/hosts/oracle/o001/flake.nix b/hosts/oracle/o001/flake.nix index b0fabaf..71dfe7c 100644 --- a/hosts/oracle/o001/flake.nix +++ b/hosts/oracle/o001/flake.nix @@ -2,18 +2,19 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; deploy-rs.url = "github:serokell/deploy-rs"; - - mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common"; - mod_common.inputs.nixpkgs.follows = "nixpkgs"; + common.url = "git+https://git.joshuabell.xyz/dotfiles"; + ros_neovim.url = "git+https://git.joshuabell.xyz/nvim"; }; outputs = { self, nixpkgs, + common, + ros_neovim, deploy-rs, ... - }@inputs: + }: let configuration_name = "o001"; lib = nixpkgs.lib; @@ -37,76 +38,67 @@ nixosConfigurations = { nixos = self.nixosConfigurations.${configuration_name}; - "${configuration_name}" = - let - auto_modules = builtins.concatMap ( - input: - lib.optionals - (builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules) - [ - input.nixosModules.default - ] - ) (builtins.attrValues inputs); - in - (lib.nixosSystem { - system = "aarch64-linux"; - modules = [ - ./configuration.nix - ./hardware-configuration.nix - ./nginx.nix - ./vaultwarden.nix - ../../../components/nix/tailscale.nix - ( - { pkgs, ... }: - { - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG90Gg6dV3yhZ5+X40vICbeBwV9rfD39/8l9QSqluTw8 nix2oracle" - ]; - components = { - # NOTE we manually onboard this machine since it has no secrets uploaded to it - tailscale.useSecretsAuth = false; - }; + "${configuration_name}" = lib.nixosSystem { + system = "aarch64-linux"; + modules = [ + common.nixosModules.default + ros_neovim.nixosModules.default + ./configuration.nix + ./hardware-configuration.nix + ./nginx.nix + ./vaultwarden.nix + ( + { pkgs, ... }: + { + environment.systemPackages = with pkgs; [ + bitwarden + vaultwarden + ]; - services.fail2ban = { - enable = true; - ignoreIP = [ - "100.64.0.0/10" - ]; + ringofstorms_common = { + systemName = configuration_name; + general = { + disableRemoteBuildsOnLio = true; + readWindowsDrives = false; + jetbrainsMonoFont = false; + ttyCapsEscape = false; }; - services.openssh = { - enable = true; - settings.PermitRootLogin = "yes"; - settings.PasswordAuthentication = false; + programs = { + tailnet.enable = true; + tailnet.useSecretsAuth = false; + ssh.enable = true; + docker.enable = true; }; - - mods = { - common = { - disableRemoteBuildsOnLio = true; - systemName = configuration_name; - allowUnfree = true; - primaryUser = "luser"; - docker = true; - users = { - luser = { - extraGroups = [ - "wheel" - "networkmanager" - ]; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG90Gg6dV3yhZ5+X40vICbeBwV9rfD39/8l9QSqluTw8 nix2oracle" - ]; - }; + users = { + users = { + root = { + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG90Gg6dV3yhZ5+X40vICbeBwV9rfD39/8l9QSqluTw8 nix2oracle" + ]; + shell = pkgs.zsh; }; }; }; - } - ) - ] ++ auto_modules; - specialArgs = { - inherit inputs; - }; - }); + homeManager = { + users = { + root = { + imports = with common.homeManagerModules; [ + tmux + atuin + git + postgres + starship + zoxide + zsh + ]; + }; + }; + }; + }; + } + ) + ]; + }; }; }; } diff --git a/hosts/oracle/o001/hardware-configuration.nix b/hosts/oracle/o001/hardware-configuration.nix index 561a4d3..ec56e90 100644 --- a/hosts/oracle/o001/hardware-configuration.nix +++ b/hosts/oracle/o001/hardware-configuration.nix @@ -2,6 +2,7 @@ { imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; boot.loader.grub = { + enable = true; efiSupport = true; efiInstallAsRemovable = true; device = "nodev"; diff --git a/hosts/oracle/o001/vaultwarden.nix b/hosts/oracle/o001/vaultwarden.nix index fd97d35..b185fbc 100644 --- a/hosts/oracle/o001/vaultwarden.nix +++ b/hosts/oracle/o001/vaultwarden.nix @@ -61,7 +61,7 @@ in SIGNUPS_ALLOWED = false; ROCKET_PORT = builtins.toString v_port; ROCKET_ADDRESS = "127.0.0.1"; - # ADMIN_TOKEN = "> vaultwarden hash"; + ADMIN_TOKEN = "$argon2id$v=19$m=65540,t=3,p=4$YMFEq4GZiCeM+MBSW75G+gq6Dnywszaqhhdrt5pIyLw$zdlU/ws8kfBVa/FWp1LVfhnu+CVuItG2nPGXgKyjWug"; }; }; }; From 2b026ed0c883c942a84d20a9c0491905e61ddbf3 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Wed, 19 Mar 2025 12:52:19 -0500 Subject: [PATCH 7/7] update for auth h002 --- common/programs/tailnet.nix | 12 ++++-------- hosts/h002/flake.nix | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/common/programs/tailnet.nix b/common/programs/tailnet.nix index 6ec5d2d..953b408 100644 --- a/common/programs/tailnet.nix +++ b/common/programs/tailnet.nix @@ -17,18 +17,12 @@ in options = { } // lib.attrsets.setAttrByPath cfg_path { - enable = lib.mkEnableOption "rust development tools"; - useSecretsAuth = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Whether to use secrets authentication for Tailscale"; - }; + enable = lib.mkEnableOption "enable tailnet"; useHeadscale = lib.mkOption { type = lib.types.bool; default = true; description = "Whether to use headscale login server."; }; - }; config = lib.mkIf cfg.enable { @@ -37,7 +31,9 @@ in enable = true; openFirewall = true; useRoutingFeatures = "client"; - authKeyFile = lib.mkIf cfg.useSecretsAuth config.age.secrets.headscale_auth.path; + authKeyFile = lib.mkIf ( + config ? age && config.age ? secrets && config.age.secrets ? headscale_auth + ) config.age.secrets.headscale_auth.path; # https://tailscale.com/kb/1241/tailscale-up extraUpFlags = lib.mkIf cfg.useHeadscale [ "--login-server=https://headscale.joshuabell.xyz" diff --git a/hosts/h002/flake.nix b/hosts/h002/flake.nix index 5730299..7eb232e 100644 --- a/hosts/h002/flake.nix +++ b/hosts/h002/flake.nix @@ -75,6 +75,7 @@ users = { josh = { imports = with common.homeManagerModules; [ + kitty tmux atuin direnv