nixos-config/flake.nix

110 lines
3.5 KiB
Nix
Raw Normal View History

2022-01-14 09:19:01 +00:00
rec {
description = "Lotte's NixOS installation";
# Use NixOS unstable
2022-03-05 20:39:49 +00:00
inputs = {
nixpkgs.url = github:NixOS/nixpkgs;
2022-03-05 20:39:49 +00:00
flake-utils.url = github:numtide/flake-utils;
2022-04-06 14:00:34 +00:00
home-manager.url = "github:andresilva/home-manager/fix-systemd-services";
2022-03-05 20:39:49 +00:00
home-manager.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = github:Mic92/sops-nix;
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
chir-rs.url = "git+https://git.chir.rs/darkkirb/chir.rs.git?ref=main";
nur.url = "github:nix-community/NUR";
polymc.url = "github:PolyMC/PolyMC";
polymc.inputs.nixpkgs.follows = "nixpkgs";
2022-03-05 20:39:49 +00:00
dns.url = "github:DarkKirb/dns.nix?ref=master";
2022-04-19 09:31:24 +00:00
hydra.url = github:thufschmitt/hydra/nix-ca;
2022-04-20 07:39:18 +00:00
nix.url = github:NixOS/nix/2.6.1;
2022-04-20 07:58:47 +00:00
hydra.inputs.nix.follows = "nix";
hydra.inputs.nixpkgs.follows = "nix/nixpkgs";
2022-03-12 21:02:54 +00:00
hosts-list.url = github:StevenBlack/hosts;
hosts-list.flake = false;
nixos-hardware.url = github:NixOS/nixos-hardware;
2022-03-25 13:29:24 +00:00
miifox-net.url = "git+https://git.chir.rs/CarolineHusky/MiiFox.net";
miifox-net.flake = false;
nixpkgs-systemd-249.url = github:NixOS/nixpkgs/47494ea53c11312dcbf8e453a13f8e605814aa0f;
2022-03-05 20:39:49 +00:00
};
2022-01-14 09:19:01 +00:00
2022-04-07 09:08:17 +00:00
outputs = { self, nixpkgs, sops-nix, home-manager, chir-rs, nur, polymc, ... } @ args:
let
systems = [
{
name = "nixos-8gb-fsn1-1"; # Hetzner Server
system = "x86_64-linux";
}
{
name = "nutty-noon"; # PC
system = "x86_64-linux";
}
{
name = "thinkrac"; # Thinkpad T470
system = "x86_64-linux";
}
2022-04-16 12:19:56 +00:00
{
name = "installer"; # The Installer DVD
system = "x86_64-linux";
2022-04-16 12:19:56 +00:00
}
2022-04-24 08:39:44 +00:00
{
name = "nas"; # My nas
system = "x86_64-linux";
}
2022-03-02 13:37:22 +00:00
#{
# name = "rpi2"; # Raspberry Pi 2
# system = "armv7l-linux";
#}
];
in
rec {
nixosConfigurations =
builtins.listToAttrs (map
({ name, system }: {
inherit name;
value = nixpkgs.lib.nixosSystem
{
2022-02-08 21:01:33 +00:00
inherit system;
specialArgs = args // {
inherit system;
};
modules = [
(./config + "/${name}.nix")
./config/default.nix
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
({ pkgs, ... }: {
nixpkgs.overlays = [
(self: super: {
chir-rs = chir-rs.outputs.defaultPackage.${system};
})
nur.overlay
polymc.overlay
];
})
2022-04-13 18:27:52 +00:00
(import utils/link-input.nix args)
];
2022-02-08 21:01:33 +00:00
};
})
systems);
2022-04-16 11:02:32 +00:00
devShell.x86_64-linux = let pkgs = import nixpkgs { system = "x86_64-linux"; }; in
pkgs.mkShell {
nativeBuildInputs = [
pkgs.sops
2022-04-24 10:35:13 +00:00
pkgs.ssh-to-age
2022-04-16 11:02:32 +00:00
];
};
hydraJobs = (builtins.listToAttrs (map
({ name, system }: {
inherit name;
value = {
${system} = nixosConfigurations.${name}.config.system.build.toplevel;
};
2022-01-14 09:19:01 +00:00
})
2022-04-16 11:02:32 +00:00
systems)) // {
devShell = devShell;
# Uncomment the line to build an installer image
# This is EXTREMELY LARGE and will make builds take forever
# installer.x86_64-linux = nixosConfigurations.installer.config.system.build.isoImage;
2022-04-16 11:02:32 +00:00
};
};
2022-01-14 09:19:01 +00:00
}