pointfichiers/flake.nix
2024-10-02 08:44:59 +02:00

128 lines
2.8 KiB
Nix

{
description = "Configuration Home Manager jaajesque";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
caddy = {
url = "github:GaspardCulis/nixos-caddy-ovh";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# Hyprland
hyprland = {
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
follows = "hy3/hyprland";
};
hy3 = {
url = "github:outfoxxed/hy3";
};
end-rs = {
url = "github:Dr-42/end-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
disko,
deploy-rs,
sops-nix,
home-manager,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
nixosConfigurations = {
Zephyrus = nixpkgs.lib.nixosSystem {
extraArgs = {inherit inputs;};
modules = [
./hosts/Zephyrus
disko.nixosModules.disko
home-manager.nixosModules.home-manager
];
};
OVHCloud = nixpkgs.lib.nixosSystem {
extraArgs = {inherit inputs;};
modules = [
./hosts/OVHCloud
disko.nixosModules.disko
sops-nix.nixosModules.sops
home-manager.nixosModules.home-manager
];
};
};
homeConfigurations = {
"gaspard" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {inherit inputs;};
modules = [
./users/gaspard.nix
];
};
"culisg@im2ag" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {inherit inputs;};
modules = [
./users/culisg.nix
];
};
};
deploy.nodes.OVHCloud = {
hostname = "gasdev.fr";
profiles.system = {
user = "root";
sshUser = "root";
sshOpts = ["-p" "22"];
sudo = "";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.OVHCloud;
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [
alejandra
git
helix
nil
pkgs.sops
pkgs.home-manager
pkgs.deploy-rs
];
shellHook = ''
export EDITOR=hx
'';
};
};
}