summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo <noreply@leoflo.me>2026-03-17 10:38:53 +0100
committerLeonardo <noreply@leoflo.me>2026-03-17 10:41:47 +0100
commit16143e4821cbadcf6f3076ece71940eeb85b800e (patch)
tree55411800d0fd4f046cb710a56c4f1dfabf554cf2
parentba8da5ca2c32c2d1ee43f73f533b99531731be66 (diff)
downloadnixos-16143e4821cbadcf6f3076ece71940eeb85b800e.tar.gz
nixos-16143e4821cbadcf6f3076ece71940eeb85b800e.zip
nixos-anywhere config
-rw-r--r--flake.nix38
-rw-r--r--systems/nixos-anywhere/configuration.nix22
-rw-r--r--systems/nixos-anywhere/disk-config.nix57
-rw-r--r--systems/nixos-anywhere/hardware-configuration.nix1
4 files changed, 109 insertions, 9 deletions
diff --git a/flake.nix b/flake.nix
index ec60154..761312b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,20 +3,34 @@
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixos-hardware.url = "github:nixos/nixos-hardware?ref=master";
- home-manager.url = "github:nix-community/home-manager?ref=master";
- home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ home-manager = {
+ url = "github:nix-community/home-manager?ref=master";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ xfce4-hiddenapps-plugin = {
+ url = "git+https://codeberg.org/leoflo/xfce4-hiddenapps-plugin?ref=refs/tags/v0.0.1";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
- xfce4-hiddenapps-plugin.url = "git+https://codeberg.org/leoflo/xfce4-hiddenapps-plugin?ref=refs/tags/v0.0.1";
- xfce4-hiddenapps-plugin.inputs.nixpkgs.follows = "nixpkgs";
+ dbmain-nix = {
+ url = "git+https://codeberg.org/leoflo/dbmain-nix?ref=refs/tags/v11.0.2";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
- dbmain-nix.url = "git+https://codeberg.org/leoflo/dbmain-nix?ref=refs/tags/v11.0.2";
- dbmain-nix.inputs.nixpkgs.follows = "nixpkgs";
+ obdautodoctor-nix = {
+ url = "git+https://codeberg.org/leoflo/obdautodoctor-nix?ref=refs/tags/v5.1.8";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
- obdautodoctor-nix.url = "git+https://codeberg.org/leoflo/obdautodoctor-nix?ref=refs/tags/v5.1.8";
- obdautodoctor-nix.inputs.nixpkgs.follows = "nixpkgs";
+ disko = {
+ url = "github:nix-community/disko";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
};
- outputs = {nixpkgs, home-manager, ...} @ inputs:
+ outputs = {nixpkgs, home-manager, disko, nixos-facter-modules, ...} @ inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
@@ -55,5 +69,11 @@
pkgs = pkgs;
modules = [ ./homes/server ];
};
+
+ # NixOS anywhere
+ nixosConfigurations."nixos-anywhere" = nixpkgs.lib.nixosSystem {
+ specialArgs = { inherit system; };
+ modules = [ ./systems/nixos-anywhere/configuration.nix disko.nixosModules.disko ];
+ };
};
}
diff --git a/systems/nixos-anywhere/configuration.nix b/systems/nixos-anywhere/configuration.nix
new file mode 100644
index 0000000..46aedb8
--- /dev/null
+++ b/systems/nixos-anywhere/configuration.nix
@@ -0,0 +1,22 @@
+{modulesPath, pkgs, ...} @ args:
+{
+ imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
+ (modulesPath + "/profiles/qemu-guest.nix")
+ ./disk-config.nix
+ ];
+
+ boot.loader.grub = {
+ efiSupport = true;
+ efiInstallAsRemovable = true;
+ };
+
+ services.openssh.enable = true;
+ users.users.root.openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMjRcsulH/b/fVyj+YQi3YchW6wLiWvpgiM+iz4tokSD leo@hermes"
+ ] ++ (args.extraPublicKeys or []);
+
+ environment.systemPackages = with pkgs; [ curl gitMinimal ];
+
+ system.stateVersion = "25.05";
+}
diff --git a/systems/nixos-anywhere/disk-config.nix b/systems/nixos-anywhere/disk-config.nix
new file mode 100644
index 0000000..fd6371c
--- /dev/null
+++ b/systems/nixos-anywhere/disk-config.nix
@@ -0,0 +1,57 @@
+{ lib, ... }: {
+ disko.devices = {
+ disk.disk1 = {
+ device = lib.mkDefault "/dev/sda";
+ type = "disk";
+ content = {
+ type = "gpt";
+ partitions = {
+ boot = {
+ name = "boot";
+ size = "1M";
+ type = "EF02";
+ };
+
+ esp = {
+ name = "ESP";
+ size = "500M";
+ type = "EF00";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ };
+ };
+
+ root = {
+ name = "root";
+ size = "100%";
+ content = {
+ type = "lvm_pv";
+ vg = "pool";
+ };
+ };
+ };
+ };
+ };
+
+ lvm_vg = {
+ pool = {
+ type = "lvm_vg";
+ lvs = {
+ root = {
+ size = "100%FREE";
+ content = {
+ type = "filesystem";
+ format = "ext4";
+ mountpoint = "/";
+ mountOptions = [
+ "defaults"
+ ];
+ };
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/systems/nixos-anywhere/hardware-configuration.nix b/systems/nixos-anywhere/hardware-configuration.nix
new file mode 100644
index 0000000..a40df93
--- /dev/null
+++ b/systems/nixos-anywhere/hardware-configuration.nix
@@ -0,0 +1 @@
+throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-generate-config ./hardware-configuration.nix`?"