nixos-configs/outputs.nix

215 lines
4.9 KiB
Nix
Raw Normal View History

{
inputs = let
inherit (import ./inputs.nix) mkDep mkInput otherInputs;
mainInputs = {
systems = mkInput {
owner = "nix-systems";
repo = "default-linux";
};
nixpkgs = mkInput {
owner = "NixOS";
repo = "nixpkgs";
chore: update flake.lock Flake Inputs: • Updated input 'discord-overlay': 'github:matt1432/discord-nightly-overlay/a9c387d' (2024-07-30) → 'github:matt1432/discord-nightly-overlay/f7a47ab' (2024-07-31) • Updated input 'discord-overlay/Vencord-src': 'github:Vendicated/vencord/5e9a9fe' (2024-07-25) → 'github:Vendicated/vencord/1bfdcf2' (2024-07-31) • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder?ref=refs/heads/master&rev=ddf3fa5' (2024-07-28) → 'git+https://repo.dec05eba.com/gpu-screen-recorder?ref=refs/heads/master&rev=dde9c3f' (2024-08-01) • Updated input 'home-manager': 'github:nix-community/home-manager/4fcd54d' (2024-07-30) → 'github:nix-community/home-manager/6e09057' (2024-07-31) • Updated input 'hyprland': 'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=3b9b534&submodules=1' (2024-07-30) → 'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=09bb565&submodules=1' (2024-08-01) • Updated input 'jellyfin-flake': 'github:matt1432/nixos-jellyfin/7253d43' (2024-07-30) → 'github:matt1432/nixos-jellyfin/8787fa9' (2024-08-01) • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS/3bd0599' (2024-07-26) → 'github:Jovian-Experiments/Jovian-NixOS/ff83ee2' (2024-08-01) • Updated input 'nix-gaming': 'github:fufexan/nix-gaming/7a07614' (2024-07-29) → 'github:fufexan/nix-gaming/78f4737' (2024-08-01) • Updated input 'nixd': 'github:nix-community/nixd/4c306e7' (2024-07-26) → 'github:nix-community/nixd/5c3f5ca' (2024-07-31) • Added input 'nixd/treefmt-nix': 'github:numtide/treefmt-nix/768acdb' (2024-07-30) • Added input 'nixd/treefmt-nix/nixpkgs': follows 'nixd/nixpkgs' • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/3fcada1' (2024-07-30) → 'github:NixOS/nixpkgs/9f918d6' (2024-07-31) • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland/8badd76' (2024-07-30) → 'github:nix-community/nixpkgs-wayland/f542b1e' (2024-08-02) • Updated input 'pcsd': 'github:matt1432/nixos-pcsd/3fa8578' (2024-07-31) → 'github:matt1432/nixos-pcsd/f3cc4e9' (2024-08-01) Docker Images: • vegardit/gitea-act-runner dind-latest: sha256:4b6c8d7b73c597b70b6d675ad8bb75b1ad0cdd686fabd51a50f89baa2e9c27e8 → sha256:a69efce45a138217a87e24fe0197519a95ec60fc35bfcaffaced9fed5e86a1ec • rssbridge/rss-bridge latest: sha256:6161fe1fef70ad077dcae364164d7739c9c0d76bbc7f154dd64a2352fc93f291 → sha256:7fe570255a762fe4c183be06bcb58f0a5718605a24bd4a87ef32fc6e8ea8657d • nextcloud 29.0.4-fpm: sha256:ef2c7bb5acb7763d2f898214db4a65876c828aaf36567cd2ab2af6697c2f758e → sha256:3673ad2455a4dfbdbeef2860aa0f5955b3b122a5ed56d463a0315df9e4405758 • ghcr.io/linuxserver/calibre latest: sha256:9d769fe402690da7f3ca750a925859ef99b4e5bec86d4739f87c7cd43e18a246 → sha256:e179e32b1ed42814816e5379d08ee9d9f957f6e704c8695bd1ffece9668a9192 • ghcr.io/linuxserver/prowlarr latest: sha256:9a98da4fb506278ce92c2fdbb4e08a38418dd1456e3dd8b3a1f00a42a8ec4fb0 → sha256:7fe57565907f4f776d43c15b2e020a0e4a62fe1e04e80e25b85a3ae4ca49e5d0 • ghcr.io/linuxserver/sabnzbd latest: sha256:d6a2a967d47b495c5342bc23de76d35eeb2f3ceb53c7be51885ad25f95dffe9b → sha256:dda700370ad4281d8ffda4fbdad8ac3f720a2829936eafc794fca652095ed4be • ghcr.io/fallenbagel/jellyseerr develop: sha256:788f508bdb33812a77acc8281e1299ff95ddebd07aee40d452e4f0c74bb15dc9 → sha256:8ea014ac2b7058c3a6a68df0cb0399a96c04438f1c9376dee1bbb6ec747ee7c1 Firefox Addons: ublock-origin: 1.58.0 -> 1.59.0 Misc Sources: Vuetorrent: 2.11.0 -> 2.11.1
2024-08-02 01:38:41 -04:00
ref = "nixos-unstable";
};
home-manager = mkDep {
2024-06-11 19:17:20 -04:00
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";
};
2024-06-28 13:44:12 -04:00
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 {
# FIXME: https://github.com/NixOS/nixpkgs/issues/338315
# cudaSupport = true;
extraModules = [./devices/binto];
};
bbsteamie = mkNixOS {extraModules = [./devices/bbsteamie];};
# NAS
nos = mkNixOS {
# FIXME: https://github.com/NixOS/nixpkgs/issues/338315
# cudaSupport = true;
extraModules = [
./devices/nos
secrets.nixosModules.nos
];
};
# Build / test server
servivi = mkNixOS {
extraModules = [
./devices/servivi
secrets.nixosModules.servivi
];
};
2024-08-18 20:59:01 -04:00
# Home-assistant
2024-09-05 22:42:17 -04:00
homie = mkNixOS {
extraModules = [
./devices/homie
secrets.nixosModules.homie
];
};
2024-08-18 20:59:01 -04:00
# 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;});
2024-06-10 22:57:20 -04:00
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
'')
];
};
node = pkgs.mkShell {
packages =
(builtins.attrValues {
inherit
(pkgs)
nodejs_latest
typescript
;
2024-08-06 20:35:11 -04:00
})
++ [
(pkgs.writeShellApplication {
name = "updateNpmDeps";
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);
};
}