cd0ccb40ad
Flake lock file updates: • Updated input 'haskell-flake': 'github:srid/haskell-flake/4fc511d93a55fedf815c1647ad146c26d7a2054e' (2022-11-11) → 'github:srid/haskell-flake/54334cfae9bbb73732bbb1437260017044f68d0b' (2022-12-19) • Updated input 'home-manager': 'github:nix-community/home-manager/37713c6b04b963d41664e03576f73a18c9b0d224' (2022-12-18) → 'github:nix-community/home-manager/e7eba9cc46547ae86642ad3c6a9a4fb22c07bc26' (2022-12-19) • Updated input 'nix-packages': 'github:DarkKirb/nix-packages/6b944ce1d1b4ceca1bc71e3aa060922bd2040856' (2022-12-16) → 'github:DarkKirb/nix-packages/21a1e883fc8855d606601d0736573b36617d789e' (2022-12-20) • Updated input 'nixos-hardware': 'github:NixOS/nixos-hardware/e462a4baf75eeac639b4942481759de08a3bc94e' (2022-12-16) → 'github:NixOS/nixos-hardware/25010a042c23695ae457a97aad60e9b1d49f2ecc' (2022-12-19) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/c4ae266de959fb5a48a210bfc7ee16030a558638' (2022-12-19) → 'github:NixOS/nixpkgs/3014c6792181eba45af6d6e282bb5819044c4367' (2022-12-20) • Updated input 'nur': 'github:nix-community/NUR/9d70eeafc6cc2f97c5b769058d12631d74a994e3' (2022-12-19) → 'github:nix-community/NUR/1c62de16ff1c1f4e10172af163a28a7430fe2d0e' (2022-12-20) • Updated input 'prismmc': 'github:PrismLauncher/PrismLauncher/11c8237d8bddbf1fe371f6bc6c2cbc9f07e66e51' (2022-12-18) → 'github:PrismLauncher/PrismLauncher/8c194cd245c7cf0431a7dfcba1aea5b4eee0304b' (2022-12-19) • Updated input 'prismmc/flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/009399224d5e398d03b22badca40a37ac85412a1' (2022-11-17) • Removed input 'prismmc/tomlplusplus' • Updated input 'sops-nix': 'github:Mic92/sops-nix/da98a111623101c64474a14983d83dad8f09f93d' (2022-12-04) → 'github:Mic92/sops-nix/32840f16ffa0856cdf9503a8658f2dd42bf70342' (2022-12-19)
169 lines
4.4 KiB
Nix
169 lines
4.4 KiB
Nix
rec {
|
|
description = "Lotte's NixOS installation";
|
|
|
|
# Use NixOS unstable
|
|
inputs = {
|
|
# Sorted by name
|
|
dns = {
|
|
url = "github:DarkKirb/dns.nix";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
ema.url = "github:EmaApps/ema";
|
|
emanote = {
|
|
url = "github:EmaApps/emanote";
|
|
inputs.ema.follows = "ema";
|
|
inputs.flake-parts.follows = "flake-parts";
|
|
inputs.haskell-flake.follows = "haskell-flake";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
flake-parts = {
|
|
url = "github:hercules-ci/flake-parts";
|
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
};
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
haskell-flake.url = "github:srid/haskell-flake";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
hosts-list = {
|
|
url = "github:StevenBlack/hosts";
|
|
flake = false;
|
|
};
|
|
hydra = {
|
|
url = "github:NixOS/hydra";
|
|
#inputs.nix.follows = "nix";
|
|
#inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nix-packages = {
|
|
url = "github:DarkKirb/nix-packages";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
|
nixpkgs-noto-variable.url = "github:NixOS/nixpkgs/1988f9a17fc1c2ab11f5817adf34a4eb8d06454d";
|
|
nur.url = "github:nix-community/NUR";
|
|
plasma-manager = {
|
|
url = "github:pjones/plasma-manager";
|
|
inputs.home-manager.follows = "home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
prismmc = {
|
|
url = "github:PrismLauncher/PrismLauncher";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.nixpkgs-stable.follows = "nixpkgs";
|
|
};
|
|
tomlplusplus = {
|
|
url = "github:marzer/tomlplusplus";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
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 = "nas"; # My nas
|
|
system = "x86_64-linux";
|
|
}
|
|
{
|
|
name = "instance-20221213-1915"; # Oracle server
|
|
system = "aarch64-linux";
|
|
}
|
|
];
|
|
in rec {
|
|
nixosConfigurations = builtins.listToAttrs (map
|
|
({
|
|
name,
|
|
system,
|
|
}: {
|
|
inherit name;
|
|
value =
|
|
nixpkgs.lib.nixosSystem
|
|
{
|
|
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 = [
|
|
nur.overlay
|
|
args.prismmc.overlay
|
|
];
|
|
home-manager.extraSpecialArgs = args // {inherit system;};
|
|
})
|
|
(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
|
|
statix
|
|
backblaze-b2
|
|
];
|
|
};
|
|
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;
|
|
};
|
|
})
|
|
systems))
|
|
// {
|
|
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;
|
|
};
|
|
};
|
|
}
|