{ inputs = { nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.zst"; disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; tranquil = { url = "git+https://tangled.org/tranquil.farm/tranquil-pds"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-pbs = { url = "github:AWildLeon/nixos-pbs"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-compat.follows = "flake-compat"; }; tangled = { url = "git+https://tangled.org/@tangled.org/core"; inputs.nixpkgs.follows = "nixpkgs"; inputs.microvm.follows = "microvm"; inputs.flake-compat.follows = "microvm"; inputs.fenix.follows = "fenix"; inputs.gomod2nix.follows = "gomod2nix"; }; lanzaboote = { url = "github:nix-community/lanzaboote"; inputs.nixpkgs.follows = "nixpkgs"; inputs.crane.follows = "crane"; inputs.pre-commit.follows = "git-hooks"; }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.systems.follows = "nix-systems"; inputs.flake-parts.follows = "flake-parts"; }; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; microvm.url = "github:microvm-nix/microvm.nix"; microvm.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; #jail-nix.url = "sourcehut:~alexdavid/jail.nix"; jail-nix.url = "git+ssh://git@git.cow.computer/cow/jail.nix"; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; inputs.systems.follows = "nix-systems"; inputs.flake-parts.follows = "flake-parts"; }; noctalia = { url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; }; noctalia-official-plugins = { url = "github:noctalia-dev/official-plugins"; flake = false; }; cow-nixos-private = { url = "git+ssh://git@git.cow.computer/cow/nixos-private"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; inputs.sops-nix.follows = "sops-nix"; }; cow-writeups = { url = "git+ssh://git@git.cow.computer/cow/writeups.cow.computer"; inputs.nixpkgs.follows = "nixpkgs"; }; personal-website = { url = "git+ssh://git@git.cow.computer/cow/personal-website"; # inputs.nixpkgs.follows = "nixpkgs"; # TODO: fix build with latest zola inputs.flake-parts.follows = "flake-parts"; }; website = { url = "git+ssh://git@git.cow.computer/cow/website"; # inputs.nixpkgs.follows = "nixpkgs"; # TODO: fix build with latest zola # inputs.flake-parts.follows = "flake-parts"; }; cowingtonpost-website = { url = "git+https://git.cow.computer/cow/cowingtonpost.com"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; }; cows-noctalia-plugins = { url = "git+https://tangled.org/cow.computer/cows-noctalia-plugins"; flake = false; }; lix = { url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; flake = false; }; wallpapers = { url = "git+ssh://git@git.cow.computer/cow/wallpapers"; flake = false; }; lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; inputs.lix.follows = "lix"; inputs.flake-utils.follows = "flake-utils"; }; flake-parts.url = "github:hercules-ci/flake-parts"; nixos-raspberrypi = { url = "github:nvmd/nixos-raspberrypi/main"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-compat.follows = "flake-compat"; }; nix-topology = { url = "github:oddlama/nix-topology"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; dns = { url = "github:nix-community/dns.nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; hosts = { url = "github:StevenBlack/hosts"; inputs.nixpkgs.follows = "nixpkgs"; }; helium-nix = { url = "github:cowingtonpost1/helium-nix?ref=rolling"; inputs.nixpkgs.follows = "nixpkgs"; }; run0-sudo-shim = { url = "github:lordgrimmauld/run0-sudo-shim"; inputs.nixpkgs.follows = "nixpkgs"; inputs.treefmt-nix.follows = "treefmt-nix"; }; ircv3-filehost-server = { url = "git+https://codeberg.org/cowingtonpost/ircv3-filehost-server.git"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; inputs.gomod2nix.follows = "gomod2nix"; }; wire = { url = "github:forallsys/wire/stable"; inputs.nixpkgs.follows = "nixpkgs"; inputs.fenix.follows = "fenix"; inputs.flake-parts.follows = "flake-parts"; inputs.systems.follows = "nix-systems"; inputs.linux-systems.follows = "nix-linux-systems"; inputs.nixpkgs_current_stable.follows = "nixpkgs"; inputs.colmena_benchmarking.inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; stable.follows = "nixpkgs"; }; inputs.treefmt-nix.follows = "treefmt-nix"; inputs.crane.follows = "crane"; inputs.flake-compat.follows = "flake-compat"; inputs.git-hooks.follows = "git-hooks"; }; selfhosted-icons = { url = "github:selfhst/icons"; flake = false; }; nixpak = { url = "github:nixpak/nixpak"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; }; # deduplication inputs flake-compat = { url = "github:edolstra/flake-compat"; }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; crane = { url = "github:ipetkov/crane"; }; flake-utils = { url = "github:numtide/flake-utils"; inputs.systems.follows = "nix-systems"; }; gomod2nix = { url = "github:nix-community/gomod2nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; git-hooks = { url = "github:cachix/git-hooks.nix"; inputs.flake-compat.follows = "flake-utils"; inputs.nixpkgs.follows = "nixpkgs"; }; chaotic = { url = "github:chaotic-cx/nyx"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; nix-systems.url = "github:nix-systems/default"; nix-linux-systems.url = "github:nix-systems/default-linux"; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" ]; imports = [ ./hosts inputs.nix-topology.flakeModule inputs.treefmt-nix.flakeModule ./flake ]; flake = { nixosModules = { }; }; perSystem = { self', pkgs, inputs', system, lib, ... }: { packages = lib.packagesFromDirectoryRecursive { inherit (pkgs) callPackage; directory = ./packages/.; }; treefmt = { programs = { nixfmt.enable = true; }; }; topology = { modules = [ { _module.args.inputs = inputs; } ./topology.nix ]; }; }; }; }