Flake lock file updates: • Updated input 'home-manager': 'github:nix-community/home-manager/2f23fa308a7c067e52dfcc30a0758f47043ec176' (2024-09-22) → 'github:nix-community/home-manager/aecd341dfead1c3ef7a3c15468ecd71e8343b7c6' (2024-11-17) • Updated input 'nixos-mailserver': 'gitlab:simple-nixos-mailserver/nixos-mailserver/29916981e7b3b5782dc5085ad18490113f8ff63b' (2024-06-11) → 'gitlab:simple-nixos-mailserver/nixos-mailserver/af7d3bf5daeba3fc28089b015c0dd43f06b176f2' (2024-08-05) • Removed input 'nixos-mailserver/utils' • Removed input 'nixos-mailserver/utils/systems' • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59' (2024-11-16) → 'github:NixOS/nixpkgs/057f63b6dc1a2c67301286152eb5af20747a9cb4' (2024-11-16) • Updated input 'nixvim': 'github:nix-community/nixvim/8d29728abfcc2e4207afb3fd8606feff17c15cec' (2024-11-18) → 'github:nix-community/nixvim/2f71c4250bef7a52fe21bd00d1e58c119f62008c' (2024-11-20) • Updated input 'nixvim/git-hooks': 'github:cachix/git-hooks.nix/af8a16fe5c264f5e9e18bcee2859b40a656876cf' (2024-10-30) → 'github:cachix/git-hooks.nix/3308484d1a443fc5bc92012435d79e80458fe43c' (2024-11-19) • Updated input 'nixvim/git-hooks/flake-compat': 'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04) → follows 'nixvim/flake-compat' • Updated input 'nixvim/home-manager': 'github:nix-community/home-manager/2f23fa308a7c067e52dfcc30a0758f47043ec176' (2024-09-22) → 'github:nix-community/home-manager/a46e702093a5c46e192243edbd977d5749e7f294' (2024-11-19) • Updated input 'nixvim/nix-darwin': 'github:lnl7/nix-darwin/683d0c4cd1102dcccfa3f835565378c7f3cbe05e' (2024-11-01) → 'github:lnl7/nix-darwin/61cee20168a3ebb71a9efd70a55adebaadfbe4d4' (2024-11-19) • Added input 'nixvim/nuschtosSearch': 'github:NuschtOS/search/fe07070f811b717a4626d01fab714a87d422a9e1' (2024-11-18) • Added input 'nixvim/nuschtosSearch/flake-utils': 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b' (2024-11-13) • Added input 'nixvim/nuschtosSearch/flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Added input 'nixvim/nuschtosSearch/ixx': 'github:NuschtOS/ixx/9fd01aad037f345350eab2cd45e1946cc66da4eb' (2024-10-26) • Added input 'nixvim/nuschtosSearch/ixx/flake-utils': follows 'nixvim/nuschtosSearch/flake-utils' • Added input 'nixvim/nuschtosSearch/ixx/nixpkgs': follows 'nixvim/nuschtosSearch/nixpkgs' • Added input 'nixvim/nuschtosSearch/nixpkgs': follows 'nixvim/nixpkgs' • Updated input 'nixvim/treefmt-nix': 'github:numtide/treefmt-nix/746901bb8dba96d154b66492a29f5db0693dbfcc' (2024-10-30) → 'github:numtide/treefmt-nix/62003fdad7a5ab7b6af3ea9bd7290e4c220277d0' (2024-11-20)
127 lines
3.5 KiB
Nix
127 lines
3.5 KiB
Nix
{
|
|
description = "NixOS system configuration";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-24.11";
|
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
|
# nixpkgs-master.url = "nixpkgs";
|
|
agenix.url = "github:ryantm/agenix";
|
|
deploy-rs.url = "github:serokell/deploy-rs";
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-24.11";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
firefox-gnome-theme = {
|
|
url = "github:rafaelmardojai/firefox-gnome-theme";
|
|
flake = false;
|
|
};
|
|
gitea-github-theme = {
|
|
url = "git+ssh://git@git.vimium.com/jordan/gitea-github-theme.git?ref=main";
|
|
flake = false;
|
|
};
|
|
kvlibadwaita = {
|
|
url = "github:GabePoel/KvLibadwaita";
|
|
flake = false;
|
|
};
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
nixos-mailserver = {
|
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nixvim = {
|
|
url = "github:nix-community/nixvim";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
plasma-manager = {
|
|
url = "github:nix-community/plasma-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
secrets = {
|
|
url = "git+ssh://git@git.vimium.com/jordan/nix-secrets.git";
|
|
flake = false;
|
|
};
|
|
thunderbird-gnome-theme = {
|
|
url = "github:rafaelmardojai/thunderbird-gnome-theme";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ { self, nixpkgs, ... }:
|
|
let
|
|
inherit (nixpkgs) lib;
|
|
|
|
domain = "mesh.vimium.net";
|
|
forEverySystem = lib.getAttrs lib.systems.flakeExposed;
|
|
forEachSystem = lib.genAttrs [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
];
|
|
mkDeployNode = hostName: {
|
|
hostname = "${hostName}.${domain}";
|
|
|
|
profiles.system = {
|
|
user = "root";
|
|
path = inputs.deploy-rs.lib.${self.nixosConfigurations.${hostName}.config.system.build.toplevel.system}.activate.nixos self.nixosConfigurations.${hostName};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
overlays = lib.packagesFromDirectoryRecursive {
|
|
callPackage = path: overrides: import path;
|
|
directory = ./overlays;
|
|
};
|
|
|
|
legacyPackages = forEachSystem (system:
|
|
lib.packagesFromDirectoryRecursive {
|
|
callPackage = nixpkgs.legacyPackages.${system}.callPackage;
|
|
directory = ./pkgs;
|
|
});
|
|
|
|
nixosConfigurations = lib.pipe ./hosts [
|
|
builtins.readDir
|
|
(lib.filterAttrs (name: value: value == "directory"))
|
|
(lib.mapAttrs (name: value:
|
|
lib.nixosSystem {
|
|
specialArgs = { inherit self; };
|
|
|
|
modules = [
|
|
{
|
|
networking = {
|
|
inherit domain;
|
|
hostName = name;
|
|
};
|
|
}
|
|
./hosts/${name}
|
|
];
|
|
}))
|
|
];
|
|
|
|
devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {
|
|
buildInputs = [
|
|
inputs.agenix.packages.x86_64-linux.agenix
|
|
inputs.deploy-rs.packages.x86_64-linux.deploy-rs
|
|
];
|
|
};
|
|
|
|
deploy = {
|
|
magicRollback = true;
|
|
autoRollback = true;
|
|
sshUser = "root";
|
|
nodes = lib.genAttrs [
|
|
"mail"
|
|
# "pi"
|
|
# "skycam"
|
|
"vps1"
|
|
] mkDeployNode;
|
|
};
|
|
|
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib;
|
|
};
|
|
}
|
|
|