revised flake.nix, gpt sucks

This commit is contained in:
2025-06-01 21:56:13 -05:00
parent 249be3bc39
commit 3b88def8b9
7 changed files with 152 additions and 338 deletions
+2 -1
View File
@@ -1,7 +1,7 @@
keys:
hosts:
- &laptop age1ldgnl53dmvl4fjz6hgdj0cvensagddn3ltpmxfm72m8q273w75fsk42p8v
- &nixos-homelab-00 age1p840m2676v7svktt3ljf25j6su7vgrrdpghfxk2a0l9lv2y0hsfqyswlfc
- &nixos-homelab-00 age1nxqlqldr5pmcxjpdl99ntzx42aclflmesx73qvs9czewzh9k8elsj3skt9
creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups:
@@ -12,3 +12,4 @@ creation_rules:
- *nixos-homelab-00
- *nixos-homelab-00
- *nixos-homelab-00
- *nixos-homelab-00
+18
View File
@@ -0,0 +1,18 @@
warning: Git tree '/home/roy/homelab-config' is dirty
error:
… while calling the 'seq' builtin
at /nix/store/1678p8vrnc4d1x65ahq6zwrhah102cgf-source/lib/modules.nix:360:18:
359| options = checked options;
360| config = checked (removeAttrs config [ "_module" ]);
| ^
361| _module = checked (config._module);
… while calling the 'throw' builtin
at /nix/store/1678p8vrnc4d1x65ahq6zwrhah102cgf-source/lib/modules.nix:331:13:
330| else
331| throw baseMsg
| ^
332| else
error: The option `default' does not exist. Definition values:
- In `/nix/store/1678p8vrnc4d1x65ahq6zwrhah102cgf-source/flake.nix': <function, args: {config, lib, pkgs}>
+2 -275
View File
@@ -1,46 +1,5 @@
{
"nodes": {
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1748225455,
"narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=",
"owner": "nix-community",
"repo": "disko",
"rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -59,106 +18,7 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"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": 1747688870,
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d5f1f641b289553927b3801580598d200a501863",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748294338,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.8",
"repo": "ixx",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1748421225,
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1748406211,
"narHash": "sha256-B3BsCRbc+x/d0WiG1f+qfSLUy+oiIfih54kalWBi+/M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3d1f29646e4b57ed468d60f9d286cde23a8d1707",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1748421225,
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
@@ -174,94 +34,10 @@
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2",
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1748564405,
"narHash": "sha256-uCmQLJmdg0gKWBs+vhNmS9RIPJW8/ddo6TvQ/a4gupc=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "8b3a69cfea5ba2fa008c6c57ab79c99c513a349b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748298102,
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
"owner": "NuschtOS",
"repo": "search",
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"quasiSecrets": {
"locked": {
"lastModified": 1748827872,
"narHash": "sha256-l5vEHHoG0X49ZaAi/dlyVidrgRl+uY2sTHSXiPStoUA=",
"ref": "refs/heads/main",
"rev": "f6dad37607b8044097d2f8700aee755e4268a6ce",
"revCount": 14,
"type": "git",
"url": "ssh://git@github.com/RoyDumblauskas/server-semi-secrets"
},
"original": {
"type": "git",
"url": "ssh://git@github.com/RoyDumblauskas/server-semi-secrets"
}
},
"root": {
"inputs": {
"disko": "disko",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"quasiSecrets": "quasiSecrets",
"sops-nix": "sops-nix",
"tests-service": "tests-service"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747603214,
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
@@ -278,55 +54,6 @@
"repo": "default",
"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"
}
},
"tests-service": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1748825739,
"narHash": "sha256-pLMRDpZYpkpQRRBJ3pnHf9OjwW5WEnpHL1sZ11SHXYw=",
"owner": "RoyDumblauskas",
"repo": "tests-service",
"rev": "9a324e39c3d0d9b1b679da5909e6b7eb98fe4ecb",
"type": "github"
},
"original": {
"owner": "RoyDumblauskas",
"repo": "tests-service",
"type": "github"
}
}
},
"root": "root",
+119 -51
View File
@@ -1,65 +1,133 @@
{
description = "Server Config Controller";
description = "tests-service for Roy's Homelab";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixvim.url = "github:nix-community/nixvim";
quasiSecrets.url = "git+ssh://git@github.com/RoyDumblauskas/server-semi-secrets";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
flake-utils.url = "github:numtide/flake-utils";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
outputs = {
self,
nixpkgs,
flake-utils,
}: let
nixosModule = {
config,
lib,
pkgs,
...
}: {
options.services.tests-service = {
enable = lib.mkEnableOption "Status reports for all homelab services";
port = lib.mkOption {
type = lib.types.port;
default = 8080;
description = "Port to listen on";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
default-nginx = {
enable = lib.mkEnableOption "Enable nginx reverse proxy to direct to service";
hostname = {
type = lib.types.str;
default = "localhost";
description = "Hostname to attach to service";
};
# This is a path to the services I've declared.
# It just happens to be stored in the same repository (relative),
# but could well be a separate repository
tests-service = {
url = "github:RoyDumblauskas/tests-service";
};
};
outputs = { self, nixpkgs, nixvim, home-manager, disko, sops-nix, quasiSecrets, tests-service }@inputs:
let
nodes = [
{
name = "nixos-homelab-00";
hostId = "3884D2F1";
}
config = lib.mkIf config.services.tests-service.enable {
systemd.services.tests-service = {
description = "Status page for homelab services";
wantedBy = ["multi-user.target"];
after = ["network.target"];
serviceConfig = {
ExecStart = "${pkgs.simple-http-server}/bin/tests-service --port ${ toString config.services.tests-service.port }";
Restart = "always";
Type = "simple";
DynamicUser = "yes";
WorkingDirectory = "${self.packages.${pkgs.system}.default}";
};
};
services.nginx = lib.mkIf config.services.tests-service.default-nginx.enable {
enable = true;
virtualHosts."${config.services.tests-service.default-nginx.hostname}" = {
forceSSL = true;
enableACME = true;
acmeRoot = null;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.tests-service.port}";
extraConfig = ''
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
'';
};
};
};
networking.firewall.allowedTCPPorts = lib.mkMerge [
(lib.mkIf config.services.tests-service.enable [ config.services.tests-service.port ])
(lib.mkIf config.services.tests-service.default-nginx.enable [ 80 443 ])
];
};
};
in
(flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
dioxusApp = pkgs.stdenv.mkDerivation {
pname = "tests-service";
version = "0.1.0";
src = ./.;
buildInputs = with pkgs; [
dioxus-cli
rustc
cargo
# tauri deps?
pkg-config
gobject-introspection
cargo-tauri
nodejs
at-spi2-atk
atkmm
cairo
gdk-pixbuf
glib
gtk3
harfbuzz
librsvg
libsoup_3
pango
webkitgtk_4_1
openssl
wasm-pack
wasm-bindgen-cli
lld
];
buildPhase = ''
dx build --release
'';
installPhase = ''
mkdir -p $out
cp -r dist/* $out/
'';
};
in {
nixosConfigurations = builtins.listToAttrs (map (node: {
name = node.name;
value = nixpkgs.lib.nixosSystem {
specialArgs = {
meta = {
hostname = node.name;
hostId = node.hostId;
packages.default = dioxusApp;
apps.default = {
type = "app";
program = "${dioxusApp}/index.html";
};
};
system = "x86_64-linux";
modules = [
./configuration.nix
./hardware-configuration.nix
./disk-config.nix
disko.nixosModules.disko
sops-nix.nixosModules.sops
quasiSecrets.nixosModules.ipAddrs
quasiSecrets.nixosModules.services
tests-service.nixosModules."x86_64-linux"
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.sysAdmin = ./home.nix;
}
];
};
}) nodes);
}))
// {
nixosModules.default = nixosModule;
};
}
View File
+3 -3
View File
@@ -8,11 +8,11 @@
"age": [
{
"recipient": "age1ldgnl53dmvl4fjz6hgdj0cvensagddn3ltpmxfm72m8q273w75fsk42p8v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrZzE0WkJBNk91bTMxWkQv\nRFdYNnBuSmY3d1lJQnQ4S09QOFY3QjNRRlRFCjNRSHBZYjdlZW81RXZOaXRZTURG\nZ2duRjY4TFl3U2ZkZGxsaW5hUi9QY2cKLS0tIGZxUTRzck1oaE5LZnpBeG11aDJG\nd0Jiem9xdjZRaGw1NVY4U2FwTk5EVmMKjuUaozKLj74Nr3uXuDu6LvJTCCDRDNRT\n3WvJt6DuFatsZ5zjvt0R7+0C0+YvZhBKuvfkfHPNj82UrFNCeRzpqA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzWUxvOEtwNkhodDdsWFoz\ndytudERqT3hKaWJITmExOGZleU4yc1U5RTJzClh5UHdhMDhIbXB6WEFKNC9IZWx6\nbXE0YVZzMUdCSDc1OUI3ZGNmbDFBTGcKLS0tIDRySGc3YkVVckJVZmtUbUduSUtQ\nSFUvUTJ0MU9sVXJ5Mnh1WWp3TTdZV1EKZ8qea9sub3I0vxIzMYVCqalYE9XdBOV7\ng/ITnSr4uKraz0X5xFMno5pR0ab43NWeyPfABwzoh+zBnlQMUgusQA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1p840m2676v7svktt3ljf25j6su7vgrrdpghfxk2a0l9lv2y0hsfqyswlfc",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUWnVXeEhYUjREUjM2azFZ\nS1dHemdsZnVKOUhyb0tHWmJUckRVbkdQRHpjCjNsWmpUMmJwai9ncmNXdmY5Zlpz\ncUwzSFg0MzhJYkxJNC9JS3FHWDl1dzQKLS0tIG5vS1hiRVBxTy9vQlpselhqRm5v\nVUlxMFJrZDlVempWYzR6NHNqUk14c0kKwnxxpRpiOmikqWOq7NPwYKX8kzEbC8XC\nxJy4xBLocURa9rTZOHpzDG91XUeQzFQE2N16dWSJz6yOMz7okunPOQ==\n-----END AGE ENCRYPTED FILE-----\n"
"recipient": "age1nxqlqldr5pmcxjpdl99ntzx42aclflmesx73qvs9czewzh9k8elsj3skt9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4SnlWTGJ0WnZNYjlLUDZk\nZWo3ajlGNFhacm11bmJRSzNzU0lkNk4xTzBNCk1GUlBNZWNCWnhFVHc1aUhDTjFL\nUU5FUTU5TkZOVFRpRlp6ZHhXeitIWVkKLS0tIEovQjRPMVZKVDNvU2tQUlZwTjFD\nWXdBOXNNQm91N0tZdTc2QVBXTXhIZHMK6uxSjyenaObLyLNDXjn2IwCid1Gh48+m\nofB2b9a/nOj4fq8Gz0qvdpfjX/uv1YLFe/8qEW3Vwk9uuuQouL7HVw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-17T15:26:55Z",
+3 -3
View File
@@ -9,11 +9,11 @@
"age": [
{
"recipient": "age1ldgnl53dmvl4fjz6hgdj0cvensagddn3ltpmxfm72m8q273w75fsk42p8v",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGSFVKUGo5L21hbDIyZ1kz\nUGdvQ0VQWk1FdFJSbUQ4Z29RVUZDaW5JU2tvCnI3WHdieUhUSjZqQm44Y1Z5RG5z\nbW5haC8wQVB3a0xvUnphbnllSWgwZU0KLS0tIDBFaFYzTlpDRVY0TnZPM0FYZkZQ\nMXRpZzF2Q05kcFJTVXhXVWVCYSsxL3cKn7U48cNBjhtTjSVAIPfFC8Y6gPCUvQJy\nvWLAmyDXAuugLhmpY+xMfDgZwg0KqzZr8mfckfRAJNcMNM2AnvMmig==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFMHFVc2dHRzRuOGhJWGJF\nZTUrWFFzeDFudDV4OHJQQUlFV1pnWTU1dmdnCnp0OFBGbWk0Yy9MREZ0TWRwMWRx\nNGlWUmdaN2k2S0FjUWk1MjdTdXFIa1EKLS0tICtFb2VTaE5GN3I3ZkhRR0t5R09a\nR3paVzUrNm5odnBrT1REM2V2ckF4WXMKuWoAfnIi5WoGSSDvKdl9fP9IYDp+wCeY\ntM9gUl2/1QcA3HG7mReaX8OqXnPF+wAIjPwvjxW4wLsM3oysxsgPIA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1p840m2676v7svktt3ljf25j6su7vgrrdpghfxk2a0l9lv2y0hsfqyswlfc",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwK1lMWkxLOHFxeUNCV3FN\ncFZYY1MraXlDbjZnNDB1U1BEa0xyejVkSzJnCkg0Sy9kMGVqZUN6YTdoWkxzRS9h\nSEpHeWJNL2R2SUdiaUIvek41QVdvdE0KLS0tIFhKczZoZTYrV01VWUZ6V3ZqbzF2\nb21tZWpOQzNPNnZWRlUvWlBXb2NXTlUKF9zcWFu5wLzkBWdFHnwZdKkC/WMjcWJ3\nxRTamCIqEUZUgFJBH2IQebGzC7BAISlrbIPeHwxpzoRpaSYJc9GXuQ==\n-----END AGE ENCRYPTED FILE-----\n"
"recipient": "age1nxqlqldr5pmcxjpdl99ntzx42aclflmesx73qvs9czewzh9k8elsj3skt9",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFRjU5a3VCTUt5dW9yWE9j\ncnM2cDNnRVNycG0va2VidzAwOFlmcE5uNnpRCi9MeWIvS3V4NDd4T1Z5ZGlFVGlH\nM2w0bVFGYXMxQUh1bktETXI5VW1IZ00KLS0tIFpBb2pFUzBiRHFpVDR1V3JBY09R\nRDVhTFBXT0pBYkpxOE9EUTNBd012TEkKW+eCIeM6+PthWtqiYgRr6pL1qMk6nnPq\nU/k6xFWOEMw4hhW3WETePbN8Qlochw3XjjkawyDqi3Sl/nmJJR3MBw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-28T04:15:19Z",