{ description = "La flake de aurore"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; flake-parts.url = "github:hercules-ci/flake-parts"; # Secret management agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; # Disks management disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; # Formatter treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self , agenix , disko , flake-parts , nixpkgs , ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ inputs.treefmt-nix.flakeModule ]; systems = [ "x86_64-linux" ]; flake = with nixpkgs.lib; { colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ ]; }; }; jitsi = { deployment = { targetHost = "jitsi.pub.infra.auro.re"; targetPort = 22; targetUser = "root"; tags = [ "services" ]; }; imports = [ ./profiles/common agenix.nixosModules.default disko.nixosModules.disko ./profiles/vm ./disks/layout_vm.nix ./hosts/vm/jitsi ]; }; }; nixosConfigurations = let defaultConfig = [ ./profiles/common agenix.nixosModules.default disko.nixosModules.disko ]; defaultVM = [ ./profiles/vm ./disks/layout_vm.nix ] ++ defaultConfig; in { grafana = nixosSystem { specialArgs = inputs; modules = [ ./hosts/vm/grafana ] ++ defaultVM; }; log-2 = nixosSystem { specialArgs = inputs; modules = [ ./hosts/vm/log-2 ./disks/layout_vm_log.nix ] ++ defaultVM; }; # VL: Peut-ĂȘtre avoir de l'auto-discovery: On a beaucoup trop de machines jitsi = nixosSystem { specialArgs = inputs; modules = [ ./hosts/vm/jitsi ] ++ defaultVM; }; }; }; perSystem = { config, pkgs, system, ... }: { devShells = { default = pkgs.callPackage ./devshells/default.nix { inherit (inputs) agenix; }; }; # Formatter treefmt.config = { package = pkgs.treefmt; programs = { # *.nix nixpkgs-fmt.enable = true; # *.md (and more) prettier.enable = true; }; }; }; }; }