All checks were successful
Check flake / build-amd64-linux (push) Successful in 3m46s
Flake lock file updates: • Updated input 'firefox-gnome-theme': 'github:rafaelmardojai/firefox-gnome-theme/b58d48d1a465970af7d4161e913f153afd7917d2?narHash=sha256-%2Bss4aGLB2vLasJXT01lhamUiGfkjWszrYhd2S4RvJA4%3D' (2025-03-24) → 'github:rafaelmardojai/firefox-gnome-theme/26b99e51e7f15a62eb3f90aea536d9ba55f782df?narHash=sha256-v1uYWuOPpXgUxx8WPLtXyLLCBL2/lgMjqyg7K9RPirw%3D' (2025-03-24) • Added input 'stylix': 'github:danth/stylix/9bfc74f330ead111e8ea354b2220a431b0cfaa26?narHash=sha256-utsgC6H3ja6sLAXMd8//I2D7yjyScFqVDRX0wpbqPZo%3D' (2025-03-14) • Added input 'stylix/base16': 'github:SenchoPens/base16.nix/153d52373b0fb2d343592871009a286ec8837aec?narHash=sha256-%2BR1BH5wHhfnycySb7Sy5KbYEaTJZWm1h%2BLW1OtyhiTs%3D' (2024-11-21) • Added input 'stylix/base16/fromYaml': 'github:SenchoPens/fromYaml/106af9e2f715e2d828df706c386a685698f3223b?narHash=sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8%3D' (2024-11-18) • Added input 'stylix/base16-fish': 'github:tomyun/base16-fish/2f6dd973a9075dabccd26f1cded09508180bf5fe?narHash=sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA%3D' (2021-06-01) • Added input 'stylix/base16-helix': 'github:tinted-theming/base16-helix/03860521c40b0b9c04818f2218d9cc9efc21e7a5?narHash=sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/%2B2sYJa2o%3D' (2025-01-14) • Added input 'stylix/base16-vim': 'github:tinted-theming/base16-vim/577fe8125d74ff456cf942c733a85d769afe58b7?narHash=sha256-e0bpPySdJf0F68Ndanwm%2BKWHgQiZ0s7liLhvJSWDNsA%3D' (2024-11-28) • Added input 'stylix/firefox-gnome-theme': 'github:rafaelmardojai/firefox-gnome-theme/5a81d390bb64afd4e81221749ec4bffcbeb5fa80?narHash=sha256-RsvHGNTmO2e/eVfgYK7g%2BeYEdwwh7SbZa%2BgZkT24MEA%3D' (2025-03-10) • Added input 'stylix/flake-compat': 'github:edolstra/flake-compat/ff81ac966bb2cae68946d5ed5fc4994f96d0ffec?narHash=sha256-NeCCThCEP3eCl2l/%2B27kNNK7QrwZB1IJCrXfrbv5oqU%3D' (2024-12-04) • Added input 'stylix/flake-utils': 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13) • Added input 'stylix/flake-utils/systems': follows 'stylix/systems' • Added input 'stylix/git-hooks': 'github:cachix/git-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc?narHash=sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc%3D' (2025-03-07) • Added input 'stylix/git-hooks/flake-compat': follows 'stylix/flake-compat' • Added input 'stylix/git-hooks/gitignore': 'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394?narHash=sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs%3D' (2024-02-28) • Added input 'stylix/git-hooks/gitignore/nixpkgs': follows 'stylix/git-hooks/nixpkgs' • Added input 'stylix/git-hooks/nixpkgs': follows 'stylix/nixpkgs' • Added input 'stylix/gnome-shell': 'github:GNOME/gnome-shell/dadd58f630eeea41d645ee225a63f719390829dc?narHash=sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg%3D' (2024-11-23) • Added input 'stylix/home-manager': 'github:nix-community/home-manager/9d3d080aec2a35e05a15cedd281c2384767c2cfe?narHash=sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA%3D' (2025-02-17) • Added input 'stylix/home-manager/nixpkgs': follows 'stylix/nixpkgs' • Added input 'stylix/nixpkgs': 'github:NixOS/nixpkgs/ebe2788eafd539477f83775ef93c3c7e244421d3?narHash=sha256-yfDy6chHcM7pXpMF4wycuuV%2BILSTG486Z/vLx/Bdi6Y%3D' (2025-03-10) • Added input 'stylix/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e?narHash=sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768%3D' (2023-04-09) • Added input 'stylix/tinted-foot': 'github:tinted-theming/tinted-foot/fd1b924b6c45c3e4465e8a849e67ea82933fcbe4?narHash=sha256-%2BeDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ%3D' (2024-09-21) • Added input 'stylix/tinted-kitty': 'github:tinted-theming/tinted-kitty/eb39e141db14baef052893285df9f266df041ff8?narHash=sha256-2xF3sH7UIwegn%2B2gKzMpFi3pk5DlIlM18%2Bvj17Uf82U%3D' (2024-05-23) • Added input 'stylix/tinted-tmux': 'github:tinted-theming/tinted-tmux/d48ee86394cbe45b112ba23ab63e33656090edb4?narHash=sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU%3D' (2025-03-02)
162 lines
4.6 KiB
Nix
162 lines
4.6 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/nixos-24.11";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
pre-commit-hooks = {
|
|
url = "github:cachix/git-hooks.nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
secrets = {
|
|
url = "git+ssh://git@git.vimium.com/jordan/nix-secrets.git";
|
|
flake = false;
|
|
};
|
|
stylix.url = "github:danth/stylix/release-24.11";
|
|
thunderbird-gnome-theme = {
|
|
url = "github:rafaelmardojai/thunderbird-gnome-theme";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
inputs@{ self, nixpkgs, ... }:
|
|
let
|
|
inherit (nixpkgs) lib;
|
|
|
|
domain = "mesh.vimium.net";
|
|
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 inputs; };
|
|
|
|
modules = [
|
|
{
|
|
networking = {
|
|
inherit domain;
|
|
hostName = name;
|
|
};
|
|
}
|
|
./hosts/${name}
|
|
];
|
|
}
|
|
))
|
|
];
|
|
|
|
checks =
|
|
builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib
|
|
// (forEachSystem (system: {
|
|
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
|
|
src = ./.;
|
|
hooks = {
|
|
check-case-conflicts.enable = true;
|
|
check-executables-have-shebangs.enable = true;
|
|
check-merge-conflicts.enable = true;
|
|
deadnix = {
|
|
enable = true;
|
|
settings = {
|
|
noLambdaArg = true;
|
|
};
|
|
};
|
|
detect-private-keys.enable = true;
|
|
end-of-file-fixer.enable = true;
|
|
fix-byte-order-marker.enable = true;
|
|
mixed-line-endings.enable = true;
|
|
nixfmt-rfc-style.enable = true;
|
|
trim-trailing-whitespace.enable = true;
|
|
};
|
|
};
|
|
}));
|
|
|
|
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
|
|
|
|
devShells = forEachSystem (system: {
|
|
default = nixpkgs.legacyPackages.${system}.mkShell {
|
|
inherit (self.checks.${system}.pre-commit-check) shellHook;
|
|
buildInputs = [
|
|
inputs.agenix.packages.${system}.agenix
|
|
inputs.deploy-rs.packages.${system}.deploy-rs
|
|
] ++ self.checks.${system}.pre-commit-check.enabledPackages;
|
|
};
|
|
});
|
|
|
|
deploy = {
|
|
magicRollback = true;
|
|
autoRollback = true;
|
|
sshUser = "root";
|
|
nodes = lib.genAttrs [
|
|
"mail"
|
|
# "pi"
|
|
# "skycam"
|
|
"vps1"
|
|
] mkDeployNode;
|
|
};
|
|
};
|
|
}
|