summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix155
1 files changed, 91 insertions, 64 deletions
diff --git a/flake.nix b/flake.nix
index 2d71e51..15bd5c9 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,6 +2,10 @@
inputs = {
nixpkgs-unstable.url = github:NixOS/nixpkgs/nixos-unstable;
nixpkgs.url = github:NixOS/nixpkgs/nixos-22.05;
+ home-manager = {
+ url = github:nix-community/home-manager;
+ inputs.nixpkgs.follows = "nixpkgs-unstable";
+ };
sops-nix = {
url = github:Mic92/sops-nix;
inputs.nixpkgs.follows = "nixpkgs";
@@ -10,74 +14,97 @@
url = github:astro/microvm.nix;
inputs.nixpkgs.follows = "nixpkgs";
};
- rust-overlay = {
- url = github:oxalica/rust-overlay;
+ fenix = {
+ url = github:nix-community/fenix;
+ inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
- outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, sops-nix, microvm, rust-overlay, ... }: {
- nixosConfigurations = {
- microwave = nixpkgs-unstable.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- sops-nix.nixosModules.sops
- ./hosts/microwave/configuration.nix
- ./hosts/microwave/secrets.nix
- ./hosts/microwave/hardware-configuration.nix
- ./modules/graphical.nix
- ./modules/basic-tools.nix
- ./modules/gnupg.nix
- ./modules/hw-accel-intel.nix
- ./modules/radio.nix
- ./modules/tlp.nix
- ./modules/wireguard.nix
- ./modules/binary-caches.nix
- ./modules/science.nix
- ./modules/mail.nix
- ./modules/emacs.nix
- ./modules/virtualization.nix
- ({ pkgs, ... }: {
- nixpkgs.overlays = [ rust-overlay.overlays.default ];
- environment.systemPackages = with pkgs; [
- rust-bin.stable.latest.default
- gcc
- ];
- })
- ];
- };
- cirrus = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- sops-nix.nixosModules.sops
- ./hosts/cirrus
- ./modules/basic-tools.nix
- ];
- };
- dishwasher = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.host
- ./hosts/dishwasher
- ./modules/basic-tools.nix
- ./modules/binary-caches.nix
+ outputs =
+ inputs@{ self
+ , nixpkgs
+ , nixpkgs-unstable
+ , sops-nix
+ , microvm
+ , fenix
+ , home-manager
+ , ...
+ }:
+ {
+ nixosConfigurations = {
+ microwave = nixpkgs-unstable.lib.nixosSystem {
+ specialArgs = { inherit inputs; };
+ system = "x86_64-linux";
+ modules = [
+ sops-nix.nixosModules.sops
+ home-manager.nixosModules.home-manager
+ ./hosts/microwave/configuration.nix
+ ./hosts/microwave/secrets.nix
+ ./hosts/microwave/hardware-configuration.nix
+ ./modules/graphical.nix
+ ./modules/basic-tools.nix
+ ./modules/gnupg.nix
+ ./modules/hw-accel-intel.nix
+ ./modules/radio.nix
+ ./modules/tlp.nix
+ ./modules/wireguard.nix
+ ./modules/binary-caches.nix
+ ./modules/science.nix
+ ./modules/mail.nix
+ ./modules/emacs.nix
+ ./modules/virtualization.nix
+ ({ pkgs, ... }: {
+ services.throttled.enable = true;
+ services.influxdb.enable = true;
+ })
+ ({ pkgs, ... }: {
+ nixpkgs.overlays = [ fenix.overlay ];
+ environment.systemPackages = with pkgs; [
+ (fenix.packages."x86_64-linux".complete.withComponents [
+ "cargo"
+ "clippy"
+ "rust-src"
+ "rustc"
+ "rustfmt"
+ ])
+ rust-analyzer-nightly
+ ];
+ })
+ ];
+ };
+ cirrus = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ sops-nix.nixosModules.sops
+ ./hosts/cirrus
+ ./modules/basic-tools.nix
+ ];
+ };
+ dishwasher = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ sops-nix.nixosModules.sops
+ microvm.nixosModules.host
+ ./hosts/dishwasher
+ ./modules/basic-tools.nix
+ ./modules/binary-caches.nix
- {
- microvm.vms.nextcloud = {
- flake = self;
- updateFlake = "git+file:///etc/nixos";
- };
- }
- ];
- };
- nextcloud = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.microvm
- ./microvms/nextcloud
- ];
+ {
+ microvm.vms.nextcloud = {
+ flake = self;
+ updateFlake = "git+file:///etc/nixos";
+ };
+ }
+ ];
+ };
+ nextcloud = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ sops-nix.nixosModules.sops
+ microvm.nixosModules.microvm
+ ./microvms/nextcloud
+ ];
+ };
};
};
- };
}