# This can be built with nixos-rebuild --flake .#myhost build { description = "the simplest flake for nixos-rebuild"; inputs = { nixpkgs = { url = "github:NixOS/nixpkgs/nixos-22.11"; }; # inputs.emacs-overlay.url = "github:nix-community/emacs-overlay"; # inputs.coricamu.url = "github:danth/coricamu"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-22.11"; home-manager = { url = "github:nix-community/home-manager/release-22.11"; inputs.nixpkgs.follows = "nixpkgs"; }; # alfis.url = "github:Revertron/Alfis"; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; raspberry-pi-nix.url = "github:tstat/raspberry-pi-nix"; }; # Outputs can be anything, but the wiki + some commands define their own # specific keys. Wiki page: https://nixos.wiki/wiki/Flakes#Output_schema outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, nixos-generators, # hm-unstable, stylix, # alfis, # colmena, # coricamu, # deploy-rs, zero, raspberry-pi-nix, simple-nixos-mailserver, ... } @inputs: let system = "x86_64-linux"; overlay-unstable = final: prev: { # unstable = nixpkgs-unstable.legacyPackages.${prev.system}; unstable = import nixpkgs-unstable { inherit system; config.allowUnfree = true; }; }; in { overlays = import ./overlays/unstable.nix { inherit inputs; }; nixosConfigurations = { powerbook = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = self.colmena.meta.specialArgs; # Import our old system configuration.nix modules = self.colmena.powerbook.imports; }; marigold = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = self.colmena.meta.specialArgs; # Import our old system configuration.nix modules = self.colmena.marigold.imports; }; }; packages."x86_64-linux" = { marigold-install-iso = nixos-generators.nixosGenerate { system = "x86_64-linux"; modules = [ ./hosts/iso.nix stylix.nixosModules.stylix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.cw = import ./users/home.nix { user = "cw"; pkgs = nixpkgs.legacyPackages.x86_64-linux; }; } ]; format = "install-iso"; }; marigold-iso = nixos-generators.nixosGenerate { system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.x86_64-linux; modules = [ ./hosts/iso.nix stylix.nixosModules.stylix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.cw = import ./users/home.nix { user = "cw"; pkgs = nixpkgs.legacyPackages.x86_64-linux; }; } ]; format = "iso"; }; }; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; overlays = []; }; nodeNixpkgs.bike = import nixpkgs { system = "aarch64-linux"; }; specialArgs = inputs; }; marigold = { imports = [ ./WIP/hosts/marigold.nix ]; deployment.targetHost = "marigold.cw.ygg"; }; moto = { imports = [ ./WIP/hosts/moto.nix ]; deployment.targetHost = "moto.cw.ygg"; }; powerbook = { imports = [ ./WIP/hosts/powerbook.nix ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; }) home-manager.nixosModules.home-manager ]; deployment = { allowLocalDeployment = true; targetHost = null; }; }; kernelpanic = { imports = [ ./WIP/hosts/kernelpanic.nix home-manager.nixosModules.home-manager stylix.nixosModules.stylix simple-nixos-mailserver.nixosModule ]; deployment = { targetHost = "kernelpanic.cw.ygg"; keys = { "yggdrasil.conf.secret" = { keyFile = "./secrets/yggdrasil-kernelpanic.conf"; uploadAt = "pre-activation"; }; }; }; }; telescreen = { imports = [ ./WIP/hosts/telescreen.nix home-manager.nixosModules.home-manager stylix.nixosModules.stylix ]; deployment = { targetHost = "telescreen.cw.ygg"; }; }; }; }; }