nixos-config/flake.nix

137 lines
3.8 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 = {
2022-07-06 07:52:29 +00:00
nixpkgs.url = "github:NixOS/nixpkgs";
2022-06-12 15:42:42 +00:00
flake-utils.url = "github:numtide/flake-utils";
2022-09-17 19:17:32 +00:00
nix-hotfix.url = "github:NixOS/nix/2.10.3";
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";
2022-06-12 15:42:42 +00:00
sops-nix.url = "github:Mic92/sops-nix";
2022-03-05 20:39:49 +00:00
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
nur.url = "github:nix-community/NUR";
2022-10-23 15:58:19 +00:00
prismmc.url = "github:PrismLauncher/PrismLauncher";
2022-10-18 00:33:38 +00:00
prismmc.inputs.nixpkgs.follows = "nixpkgs";
2022-03-05 20:39:49 +00:00
dns.url = "github:DarkKirb/dns.nix?ref=master";
2022-06-12 15:42:42 +00:00
hosts-list.url = "github:StevenBlack/hosts";
2022-03-12 21:02:54 +00:00
hosts-list.flake = false;
2022-06-12 15:42:42 +00:00
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixpkgs-noto-variable.url = "github:NixOS/nixpkgs/1988f9a17fc1c2ab11f5817adf34a4eb8d06454d";
2022-07-09 20:06:22 +00:00
emanote.url = "github:EmaApps/emanote";
2022-08-14 10:34:54 +00:00
invtracker.url = "git+https://git.chir.rs/darkkirb/Programmierbeleg";
2022-09-11 19:31:40 +00:00
nixpkgs-fluffychat.url = "github:Luis-Hebendanz/nixpkgs/fix_mkFlutterApp";
2022-09-21 19:38:51 +00:00
helix.url = "github:helix-editor/helix";
2022-09-30 15:46:21 +00:00
hydra.url = "git+https://git.chir.rs/darkkirb/hydra?ref=hack";
nix-packages.url = "git+https://git.chir.rs/DarkKirb/nix-packages?ref=main";
2022-06-11 13:33:50 +00:00
nix-packages.inputs.nixpkgs.follows = "nixpkgs";
2022-03-05 20:39:49 +00:00
};
2022-01-14 09:19:01 +00:00
2022-06-12 15:39:15 +00:00
outputs = {
self,
nixpkgs,
sops-nix,
home-manager,
nur,
...
} @ 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";
}
{
name = "installer"; # The Installer DVD
system = "x86_64-linux";
}
{
name = "nas"; # My nas
system = "x86_64-linux";
}
#{
# name = "rpi2"; # Raspberry Pi 2
# system = "armv7l-linux";
#}
];
in rec {
nixosConfigurations = builtins.listToAttrs (map
({
name,
system,
}: {
inherit name;
value =
nixpkgs.lib.nixosSystem
{
inherit system;
specialArgs =
args
// {
2022-02-08 21:01:33 +00:00
inherit system;
2022-06-12 15:39:15 +00:00
};
modules = [
(./config + "/${name}.nix")
./config/default.nix
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
({pkgs, ...}: {
nixpkgs.overlays = [
nur.overlay
2022-10-18 00:33:38 +00:00
args.prismmc.overlay
];
2022-07-06 18:25:34 +00:00
home-manager.extraSpecialArgs = args // {inherit system;};
2022-06-12 15:39:15 +00:00
})
(import utils/link-input.nix args)
];
};
})
systems);
devShell.x86_64-linux = let
pkgs = import nixpkgs {system = "x86_64-linux";};
in
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
sops
ssh-to-age
nix-prefetch
nix-prefetch-git
jq
bundix
python3
python3Packages.yapf
github-cli
2022-06-12 15:42:42 +00:00
statix
2022-06-23 06:35:05 +00:00
backblaze-b2
2022-06-12 15:39:15 +00:00
];
};
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
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-06-12 15:39:15 +00:00
systems))
// {
2022-06-12 15:42:42 +00:00
inherit 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-06-12 15:39:15 +00:00
};
2022-01-14 09:19:01 +00:00
}