nixos-config/flake.nix

64 lines
2.1 KiB
Nix

{
inputs = {
nixpkgs.url = "flake:nixpkgs/nixos-21.05";
nixpkgs-unstable.url = "flake:nixpkgs/nixos-unstable";
simple-nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-21.05";
inputs.nixpkgs.follows = "nixpkgs";
};
dogetipbot-telegram = {
url = "gitlab:nyanloutre/dogetipbot-telegram/master";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixpkgs-unstable, simple-nixos-mailserver, dogetipbot-telegram }: {
nixosConfigurations.loutreos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
({ pkgs, ... }: {
nix.nixPath = [
"nixpkgs=${nixpkgs}"
];
})
nixpkgs.nixosModules.notDetected
"${nixpkgs-unstable}/nixos/modules/services/audio/navidrome.nix"
simple-nixos-mailserver.nixosModule
dogetipbot-telegram.nixosModule
./systems/LoutreOS/configuration.nix
({ pkgs, ... }: {
systemd.services.ipmihddtemp = {
description = "IPMI HDD temp fan control";
wantedBy = ["multi-user.target"];
path = with pkgs;[ ipmitool smartmontools ];
serviceConfig = {
ExecStart = with nixpkgs-unstable.legacyPackages.x86_64-linux;
let env = python3Packages.python.buildEnv.override {
extraLibs = with python3Packages;[ pysmart ];
ignoreCollisions = true;
};
in "${pkgs.writeShellScriptBin "run.sh" ''
${env}/bin/python ${pkgs.writeScript "ipmihddtemp.py" "${builtins.readFile ./ipmihddtemp.py}"}
''}/bin/run.sh";
};
};
})
];
};
nixosConfigurations.paul-fixe = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
({ pkgs, ... }: {
nix.nixPath = [
"nixpkgs=${nixpkgs-unstable}"
];
})
nixpkgs-unstable.nixosModules.notDetected
./systems/PC-Fixe/configuration.nix
];
};
};
}