diff --git a/flake.lock b/flake.lock index cc940d3..e1f77b6 100644 --- a/flake.lock +++ b/flake.lock @@ -91,6 +91,27 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729712798, + "narHash": "sha256-a+Aakkb+amHw4biOZ0iMo8xYl37uUL48YEXIC5PYJ/8=", + "owner": "nix-community", + "repo": "disko", + "rev": "09a776702b004fdf9c41a024e1299d575ee18a7d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "disko", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -295,11 +316,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1729657195, - "narHash": "sha256-YGk7oeyyfvZs4d8qAyMBPg2J/euYK48hPiI6PLKEa30=", + "lastModified": 1729715559, + "narHash": "sha256-DigThx4MJv4tWEimqYzxymIZFUcTgQ3D1vZyG8FD9VA=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "6e0aadc585c6d9fdaaebfa5853adbf9610897c82", + "rev": "cdac64970e894c3211d94da8925fbf905b52a594", "type": "github" }, "original": { @@ -605,13 +626,29 @@ "type": "github" } }, + "nixpkgs_6": { + "locked": { + "lastModified": 1729256560, + "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { - "lastModified": 1729696174, - "narHash": "sha256-3eW+rOlHyL5umNzwDH5TmsewBWI0y7zoo2t1jjtBUtk=", + "lastModified": 1729717185, + "narHash": "sha256-/glhZ2JA9T9fzCSyoTdBJRfii3AoWSX6dTChxtLspJs=", "owner": "nix-community", "repo": "NUR", - "rev": "210fc3297340f3b1151780a73c4e91ce67d44db1", + "rev": "2bd2584390b70b296266d129aea1ba0084d9e2d0", "type": "github" }, "original": { @@ -649,6 +686,7 @@ "ags": "ags", "catppuccin": "catppuccin", "chaotic": "chaotic", + "disko": "disko", "home-manager": "home-manager_2", "hyprland": "hyprland", "matugen": "matugen", @@ -656,7 +694,8 @@ "nur": "nur", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", - "wezterm": "wezterm" + "wezterm": "wezterm", + "zen-browser": "zen-browser" } }, "rust-overlay": { @@ -834,6 +873,24 @@ "type": "github" } }, + "zen-browser": { + "inputs": { + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1729380040, + "narHash": "sha256-EQmcUC7xnbiOHhOTdHD1OAqp+9AAkxu+GMPZ8dZkzrg=", + "owner": "ch4og", + "repo": "zen-browser-flake", + "rev": "fb3ae7fa9a64ff2c6d0b8364660c916b64a16af7", + "type": "github" + }, + "original": { + "owner": "ch4og", + "repo": "zen-browser-flake", + "type": "github" + } + }, "zlib": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 2a72aab..e9e0d8a 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,6 @@ auto-optimise-store = true; }; - inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; @@ -38,6 +37,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + disko = { + url = "github:nix-community/disko/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -50,35 +54,42 @@ wezterm.url = "github:wez/wezterm?dir=nix"; - catppuccin = { - url = "github:catppuccin/nix"; - }; + catppuccin = { url = "github:catppuccin/nix"; }; hyprland.url = "github:hyprwm/Hyprland"; + + zen-browser.url = "github:ch4og/zen-browser-flake"; + }; - outputs = { self, nixpkgs, chaotic, nur, home-manager, ... }@inputs: - let + outputs = { self, nixpkgs, chaotic, nur, home-manager, disko, ... }@inputs: + let system = "x86_64-linux"; + specialArgs = { inherit inputs; }; in { nixosConfigurations = { nyx = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; modules = [ ./hosts/nyx/configuration.nix inputs.home-manager.nixosModules.default chaotic.nixosModules.default ]; }; - + helios = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; modules = [ ./hosts/helios/configuration.nix # inputs.home-manager.nixosModules.default chaotic.nixosModules.default ]; }; + + theia = nixpkgs.lib.nixosSystem { + modules = [ + ./hosts/theia/configuration.nix + disko.nixosModules.disko + ]; + }; }; }; } diff --git a/hosts/theia/configuration.nix b/hosts/theia/configuration.nix new file mode 100644 index 0000000..71d1ab5 --- /dev/null +++ b/hosts/theia/configuration.nix @@ -0,0 +1,53 @@ +{ modulesPath, lib, pkgs, ... }: { + system.stateVersion = "24.11"; + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "virtio_scsi" "ahci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + boot.loader.grub = { + enable = true; + }; + + networking = { + useDHCP = lib.mkDefault false; + defaultGateway = { + address = "178.63.247.183"; + interface = "ens3"; + }; + + interfaces = { + ens3 = { + ipv4 = { + addresses = [ + { + address = "178.63.118.252"; + prefixLength = 32; + } + ]; + + routes = [ + { + address = "178.63.247.183"; + prefixLength = 32; + } + ]; + }; + }; + }; + }; + + services.openssh = { + enable = true; + }; + + users.users.root = { + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPbmiNqoyeKXk/VopFm2cFfEnV4cKCFBhbhyYB69Fuu elissa.tamminen@gmail.com" + ]; + initialHashedPassword = "$y$j9T$TzqbL4iMGLjli6EEXfRCZ0$AhFJ4iCFxRlstth5owic3M5nq74Sp1qhtctjSBcgAl8"; + }; +} diff --git a/hosts/theia/disk-config.nix b/hosts/theia/disk-config.nix new file mode 100644 index 0000000..a51111a --- /dev/null +++ b/hosts/theia/disk-config.nix @@ -0,0 +1,55 @@ +{ lib, ... }: +{ + disko.devices = { + disk.disk1 = { + device = lib.mkDefault "/dev/vda"; + 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" + ]; + }; + }; + }; + }; + }; + }; +}