matt1432
2e3612b7fb
All checks were successful
Discord / discord commits (push) Has been skipped
Flake Inputs: • Updated input 'agsV2': 'github:Aylur/ags/a93f0ac' (2024-10-16) → 'github:Aylur/ags/b7f3896' (2024-10-19) • Updated input 'astal': 'github:Aylur/astal/f763c44' (2024-10-18) → 'github:Aylur/astal/bfb7e27' (2024-10-20) • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar/fcada91' (2024-10-15) → 'github:elchininet/custom-sidebar/80942f5' (2024-10-21) • Updated input 'home-manager': 'github:nix-community/home-manager/09a0c0c' (2024-10-18) → 'github:nix-community/home-manager/1e27f21' (2024-10-20) • Updated input 'hyprland': 'github:hyprwm/Hyprland/0e630e9' (2024-10-17) → 'github:hyprwm/Hyprland/62ee5cc' (2024-10-19) • Updated input 'nix-gaming': 'github:fufexan/nix-gaming/79f0e31' (2024-10-18) → 'github:fufexan/nix-gaming/177e270' (2024-10-20) • Updated input 'nix-index-db': 'github:Mic92/nix-index-database/5c54c33' (2024-10-13) → 'github:Mic92/nix-index-database/04f8a11' (2024-10-20) • Updated input 'nixd': 'github:nix-community/nixd/c38702b' (2024-10-01) → 'github:nix-community/nixd/d3c7e56' (2024-10-20) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/5785b6b' (2024-10-16) → 'github:NixOS/nixpkgs/4c2fcb0' (2024-10-18) • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland/2535bdd' (2024-10-18) → 'github:nix-community/nixpkgs-wayland/7c64c3c' (2024-10-20) • Updated input 'pokemon-colorscripts-src': 'gitlab:phoneybadger/pokemon-colorscripts/0483c85' (2022-10-28) → 'gitlab:phoneybadger/pokemon-colorscripts/5802ff6' (2024-10-19) • Updated input 'sops-nix': 'github:Mic92/sops-nix/06535d0' (2024-10-08) → 'github:Mic92/sops-nix/c504fd7' (2024-10-20) • Updated input 'spotifywebapi-src': 'github:thlucas1/SpotifyWebApiPython/4bb0658' (2024-10-14) → 'github:thlucas1/SpotifyWebApiPython/8c6aff1' (2024-10-19) • Updated input 'tuya-local-src': 'github:make-all/tuya-local/587d622' (2024-10-18) → 'github:make-all/tuya-local/38744c0' (2024-10-21) Docker Images: • rssbridge/rss-bridge latest: sha256:da785b43f43e4f718c525d71453d6b7011db98c68434f02315cb7ee1ecc88889 → sha256:42b4d1d1e3fb2c361a3a2fe2921a847bbdcd0d6d14a4d411482665fc4560a58d
217 lines
4.9 KiB
Nix
217 lines
4.9 KiB
Nix
{
|
|
inputs = let
|
|
inherit (import ./inputs.nix) mkDep mkInput otherInputs;
|
|
|
|
mainInputs = {
|
|
systems = mkInput {
|
|
owner = "nix-systems";
|
|
repo = "default-linux";
|
|
};
|
|
|
|
nixpkgs = mkInput {
|
|
owner = "NixOS";
|
|
repo = "nixpkgs";
|
|
ref = "nixos-unstable";
|
|
};
|
|
|
|
home-manager = mkDep {
|
|
owner = "nix-community";
|
|
repo = "home-manager";
|
|
};
|
|
|
|
nix-on-droid = mkDep {
|
|
owner = "nix-community";
|
|
repo = "nix-on-droid";
|
|
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
|
|
sops-nix = mkDep {
|
|
owner = "Mic92";
|
|
repo = "sops-nix";
|
|
};
|
|
|
|
secrets = mkDep {
|
|
type = "git";
|
|
url = "ssh://git@git.nelim.org/matt1432/nixos-secrets";
|
|
|
|
inputs.sops-nix.follows = "sops-nix";
|
|
};
|
|
|
|
jovian = mkDep {
|
|
owner = "Jovian-Experiments";
|
|
repo = "Jovian-NixOS";
|
|
};
|
|
};
|
|
in
|
|
mainInputs // otherInputs;
|
|
|
|
outputs = inputs @ {
|
|
nixpkgs,
|
|
secrets,
|
|
self,
|
|
systems,
|
|
...
|
|
}: let
|
|
inherit (import ./lib {inherit inputs;}) mkVersion mkNixOS mkNixOnDroid mkPkgs;
|
|
|
|
perSystem = attrs:
|
|
nixpkgs.lib.genAttrs (import systems) (system:
|
|
attrs (mkPkgs {inherit system nixpkgs;}));
|
|
in {
|
|
nixosModules = import ./nixosModules self;
|
|
|
|
homeManagerModules = import ./homeManagerModules self;
|
|
|
|
nixosConfigurations = {
|
|
# Desktops
|
|
wim = mkNixOS {
|
|
extraModules = [
|
|
./devices/wim
|
|
secrets.nixosModules.default
|
|
];
|
|
};
|
|
binto = mkNixOS {
|
|
cudaSupport = true;
|
|
extraModules = [./devices/binto];
|
|
};
|
|
|
|
bbsteamie = mkNixOS {extraModules = [./devices/bbsteamie];};
|
|
|
|
# NAS
|
|
nos = mkNixOS {
|
|
cudaSupport = true;
|
|
extraModules = [
|
|
./devices/nos
|
|
secrets.nixosModules.nos
|
|
];
|
|
};
|
|
|
|
# Build / test server
|
|
servivi = mkNixOS {
|
|
extraModules = [
|
|
./devices/servivi
|
|
secrets.nixosModules.servivi
|
|
];
|
|
};
|
|
|
|
# Home-assistant
|
|
homie = mkNixOS {
|
|
extraModules = [
|
|
./devices/homie
|
|
secrets.nixosModules.homie
|
|
];
|
|
};
|
|
|
|
# Cluster
|
|
thingone = mkNixOS {
|
|
extraModules = [
|
|
(import ./devices/cluster "thingone")
|
|
secrets.nixosModules.thingy
|
|
];
|
|
};
|
|
thingtwo = mkNixOS {
|
|
extraModules = [
|
|
(import ./devices/cluster "thingtwo")
|
|
secrets.nixosModules.thingy
|
|
];
|
|
};
|
|
|
|
live-image = mkNixOS {
|
|
extraModules = [
|
|
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
|
|
{
|
|
vars = {
|
|
mainUser = "nixos";
|
|
hostName = "nixos";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
nixOnDroidConfigurations.default =
|
|
mkNixOnDroid [./devices/android];
|
|
|
|
legacyPackages =
|
|
perSystem (pkgs:
|
|
import ./legacyPackages {inherit mkVersion pkgs inputs;});
|
|
|
|
packages =
|
|
perSystem (pkgs:
|
|
import ./packages {inherit self pkgs mkVersion inputs;});
|
|
|
|
overlays = import ./overlays {};
|
|
|
|
apps =
|
|
perSystem (pkgs:
|
|
import ./apps {inherit inputs pkgs;});
|
|
|
|
devShells = perSystem (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = [
|
|
(pkgs.writeShellScriptBin "mkIso" ''
|
|
isoConfig="nixosConfigurations.live-image.config.system.build.isoImage"
|
|
nom build $(realpath /etc/nixos)#$isoConfig
|
|
'')
|
|
];
|
|
};
|
|
|
|
netdaemon = pkgs.mkShell {
|
|
packages = [
|
|
pkgs.dotnet-sdk_8
|
|
];
|
|
};
|
|
|
|
node = pkgs.mkShell {
|
|
packages =
|
|
(builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
nodejs_latest
|
|
typescript
|
|
;
|
|
})
|
|
++ [
|
|
(pkgs.writeShellApplication {
|
|
name = "bumpNpmDeps";
|
|
runtimeInputs = builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
prefetch-npm-deps
|
|
nodejs_latest
|
|
;
|
|
};
|
|
text = ''
|
|
npm i --package-lock-only || true # this command will fail but still updates the main lockfile
|
|
prefetch-npm-deps ./package-lock.json
|
|
'';
|
|
})
|
|
];
|
|
};
|
|
|
|
subtitles-dev = pkgs.mkShell {
|
|
packages = builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
nodejs_latest
|
|
ffmpeg-full
|
|
typescript
|
|
;
|
|
|
|
inherit
|
|
(pkgs.nodePackages)
|
|
ts-node
|
|
;
|
|
};
|
|
};
|
|
});
|
|
|
|
# For nix-fast-build. I use a custom output to alleviate eval time of this flake. ie. when doing nix flake show
|
|
nixFastChecks =
|
|
perSystem (pkgs:
|
|
import ./checks {inherit pkgs self;});
|
|
|
|
formatter = perSystem (pkgs: pkgs.alejandra);
|
|
};
|
|
}
|