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-12-13 09:00:47 +00:00
|
|
|
# Sorted by name
|
2023-01-15 11:12:01 +00:00
|
|
|
attic = {
|
2023-04-13 11:57:24 +00:00
|
|
|
url = "github:DarkKirb/attic";
|
2023-09-02 12:53:21 +00:00
|
|
|
inputs.cargo2nix.follows = "cargo2nix";
|
2023-01-28 20:44:02 +00:00
|
|
|
inputs.crane.follows = "crane";
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
2023-09-08 11:39:34 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2023-09-02 12:53:21 +00:00
|
|
|
inputs.rust-overlay.follows = "rust-overlay";
|
|
|
|
};
|
|
|
|
cargo2nix = {
|
|
|
|
url = "github:DarkKirb/cargo2nix/release-0.11.0";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
inputs.rust-overlay.follows = "rust-overlay";
|
2023-01-15 11:12:01 +00:00
|
|
|
};
|
2023-01-28 20:18:18 +00:00
|
|
|
crane = {
|
|
|
|
url = "github:DarkKirb/crane";
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
2023-09-08 11:39:34 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2023-04-16 07:17:47 +00:00
|
|
|
inputs.rust-overlay.follows = "rust-overlay";
|
2023-01-28 20:18:18 +00:00
|
|
|
};
|
2022-12-13 09:00:47 +00:00
|
|
|
dns = {
|
|
|
|
url = "github:DarkKirb/dns.nix";
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2023-06-13 06:07:34 +00:00
|
|
|
emanote = {
|
|
|
|
url = "github:EmaApps/emanote";
|
|
|
|
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";
|
|
|
|
};
|
2023-03-03 09:46:02 +00:00
|
|
|
flake-utils.url = "github:DarkKirb/flake-utils";
|
2023-06-13 06:07:34 +00:00
|
|
|
haskell-flake.url = "github:srid/haskell-flake";
|
2022-12-13 09:00:47 +00:00
|
|
|
home-manager = {
|
|
|
|
url = "github:nix-community/home-manager";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2023-04-13 06:57:08 +00:00
|
|
|
nix-neovim = {
|
|
|
|
url = "github:syberant/nix-neovim";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2022-12-13 09:00:47 +00:00
|
|
|
nix-packages = {
|
2023-04-08 14:05:13 +00:00
|
|
|
url = "git+https://git.chir.rs/darkkirb/nix-packages.git?ref=main";
|
2022-12-13 09:00:47 +00:00
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2023-05-23 13:34:44 +00:00
|
|
|
nixos-config-for-netboot = {
|
2023-07-01 12:26:15 +00:00
|
|
|
url = "github:DarkKirb/nixos-config/6ed9cdc5bd473f0cf4860ff001a11b7ea4b769f4";
|
2023-05-23 13:34:44 +00:00
|
|
|
inputs.nixos-config-for-netboot.follows = "nixos-config-for-netboot";
|
|
|
|
};
|
2022-06-12 15:42:42 +00:00
|
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
2023-05-25 05:56:21 +00:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
2022-12-13 09:00:47 +00:00
|
|
|
nur.url = "github:nix-community/NUR";
|
2023-01-13 19:20:47 +00:00
|
|
|
rust-overlay = {
|
|
|
|
url = "github:oxalica/rust-overlay";
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
2023-04-16 06:47:38 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2023-01-13 19:20:47 +00:00
|
|
|
};
|
2022-12-13 09:00:47 +00:00
|
|
|
sops-nix = {
|
|
|
|
url = "github:Mic92/sops-nix";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
inputs.nixpkgs-stable.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 = "nas"; # My nas
|
|
|
|
system = "x86_64-linux";
|
|
|
|
}
|
2023-03-18 09:11:05 +00:00
|
|
|
{
|
|
|
|
name = "installer"; # Installer iso
|
|
|
|
system = "x86_64-linux";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "netboot"; # Installer netboot
|
|
|
|
system = "x86_64-linux";
|
|
|
|
}
|
2022-12-13 20:20:34 +00:00
|
|
|
{
|
|
|
|
name = "instance-20221213-1915"; # Oracle server
|
|
|
|
system = "aarch64-linux";
|
2022-12-12 17:42:01 +00:00
|
|
|
}
|
2023-03-03 09:46:02 +00:00
|
|
|
{
|
|
|
|
name = "vf2"; # VisionFive 2
|
|
|
|
system = "riscv64-linux";
|
|
|
|
}
|
2022-06-12 15:39:15 +00:00
|
|
|
];
|
|
|
|
in rec {
|
|
|
|
nixosConfigurations = builtins.listToAttrs (map
|
|
|
|
({
|
|
|
|
name,
|
|
|
|
system,
|
2022-12-18 13:54:23 +00:00
|
|
|
configName ? name,
|
2022-06-12 15:39:15 +00:00
|
|
|
}: {
|
|
|
|
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 = [
|
2022-12-18 13:54:23 +00:00
|
|
|
(./config + "/${configName}.nix")
|
2022-06-12 15:39:15 +00:00
|
|
|
./config/default.nix
|
|
|
|
sops-nix.nixosModules.sops
|
|
|
|
home-manager.nixosModules.home-manager
|
|
|
|
({pkgs, ...}: {
|
|
|
|
nixpkgs.overlays = [
|
|
|
|
nur.overlay
|
2022-02-26 08:13:08 +00:00
|
|
|
];
|
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);
|
2022-12-18 12:15:23 +00:00
|
|
|
overlays = {
|
|
|
|
x86_64-linux = import ./overlays args "x86_64-linux";
|
|
|
|
aarch64-linux = import ./overlays args "aarch64-linux";
|
2023-03-03 09:46:02 +00:00
|
|
|
riscv64-linux = import ./overlays args "riscv64-linux";
|
2022-12-18 12:15:23 +00:00
|
|
|
};
|
2022-06-12 15:39:15 +00:00
|
|
|
devShell.x86_64-linux = let
|
2022-12-18 12:15:23 +00:00
|
|
|
pkgs = import nixpkgs {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
overlays = [self.overlays.x86_64-linux];
|
|
|
|
};
|
2022-06-12 15:39:15 +00:00
|
|
|
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;
|
2023-04-13 06:57:08 +00:00
|
|
|
packages.x86_64-linux = let
|
|
|
|
pkgs = import nixpkgs {
|
|
|
|
system = "x86_64-linux";
|
2023-07-05 06:39:58 +00:00
|
|
|
overlays = [
|
|
|
|
self.overlays.x86_64-linux
|
|
|
|
args.nix-packages.overlays.x86_64-linux.default
|
|
|
|
];
|
2023-04-13 18:35:12 +00:00
|
|
|
config.allowUnfree = true;
|
2023-04-13 06:57:08 +00:00
|
|
|
};
|
|
|
|
in {
|
|
|
|
neovim-base = args.nix-neovim.buildNeovim {
|
|
|
|
inherit pkgs;
|
|
|
|
configuration = import ./config/programs/vim/configuration.nix false;
|
|
|
|
};
|
|
|
|
neovim = args.nix-neovim.buildNeovim {
|
|
|
|
inherit pkgs;
|
|
|
|
configuration = import ./config/programs/vim/configuration.nix true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
packages.aarch64-linux = let
|
|
|
|
pkgs = import nixpkgs {
|
|
|
|
system = "aarch64-linux";
|
2023-07-05 06:39:58 +00:00
|
|
|
overlays = [
|
|
|
|
self.overlays.aarch64-linux
|
|
|
|
args.nix-packages.overlays.aarch64-linux.default
|
|
|
|
];
|
2023-04-13 18:35:12 +00:00
|
|
|
config.allowUnfree = true;
|
2023-04-13 06:57:08 +00:00
|
|
|
};
|
|
|
|
in {
|
|
|
|
neovim-base = args.nix-neovim.buildNeovim {
|
|
|
|
inherit pkgs;
|
|
|
|
configuration = import ./config/programs/vim/configuration.nix false;
|
|
|
|
};
|
|
|
|
neovim = args.nix-neovim.buildNeovim {
|
|
|
|
inherit pkgs;
|
|
|
|
configuration = import ./config/programs/vim/configuration.nix true;
|
|
|
|
};
|
|
|
|
};
|
2023-06-11 14:39:22 +00:00
|
|
|
packages.riscv64-linux = let
|
|
|
|
pkgs = import nixpkgs {
|
2023-06-18 06:15:37 +00:00
|
|
|
system = "riscv64-linux";
|
2023-07-05 06:39:58 +00:00
|
|
|
overlays = [
|
|
|
|
self.overlays.riscv64-linux
|
|
|
|
(import ./overlays/riscv.nix args)
|
|
|
|
args.nix-packages.overlays.riscv64-linux.default
|
|
|
|
];
|
2023-06-11 14:39:22 +00:00
|
|
|
config.allowUnfree = true;
|
|
|
|
};
|
|
|
|
in {
|
|
|
|
neovim-base = args.nix-neovim.buildNeovim {
|
|
|
|
inherit pkgs;
|
|
|
|
configuration = import ./config/programs/vim/configuration.nix false;
|
|
|
|
};
|
|
|
|
};
|
2022-06-12 15:39:15 +00:00
|
|
|
hydraJobs =
|
|
|
|
(builtins.listToAttrs (map
|
|
|
|
({
|
|
|
|
name,
|
|
|
|
system,
|
2022-12-18 13:54:23 +00:00
|
|
|
...
|
2022-06-12 15:39:15 +00:00
|
|
|
}: {
|
2022-02-26 08:13:08 +00:00
|
|
|
inherit name;
|
|
|
|
value = {
|
2022-02-26 08:55:00 +00:00
|
|
|
${system} = nixosConfigurations.${name}.config.system.build.toplevel;
|
2022-02-26 08:13:08 +00:00
|
|
|
};
|
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;
|
2023-04-13 06:57:08 +00:00
|
|
|
inherit packages;
|
2022-04-16 15:59:04 +00:00
|
|
|
# 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
|
|
|
}
|