summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Finlinson <devin.finlinson@pm.me>2026-03-06 02:21:13 -0700
committerDevin Finlinson <devin.finlinson@pm.me>2026-03-06 02:21:13 -0700
commit815ad2e347b7036d45dcd1d5e2640393126b4bf9 (patch)
tree3f431603a56cdf082ab5bbf8c4ae4b7bb4eaf99b
parent2f6bfa3994137152939d448e05374dccb8d6970b (diff)
working microvm setup, but home-manager broken for target vms
-rw-r--r--flake.nix2
-rw-r--r--machines/doretta/default.nix60
-rw-r--r--machines/vm/foolcreek/default.nix68
3 files changed, 75 insertions, 55 deletions
diff --git a/flake.nix b/flake.nix
index 0d58a36..a9a8dcc 100644
--- a/flake.nix
+++ b/flake.nix
@@ -270,6 +270,7 @@
# lix-module.nixosModules.default
microvm.nixosModules.host
home-manager.nixosModules.home-manager { home-manager.users.defin = import ./home-manager/doretta.nix; }
+ { microvm.autostart = [ "foolcreek" ]; }
];
};
bosco = lib.nixosSystem { # networking server
@@ -307,6 +308,7 @@
];
};
foolcreek = lib.nixosSystem { # vm for website
+ specialArgs = { inherit inputs; };
modules = minimalHomeManagerSettings ++ [ ./machines/vm/foolcreek
microvm.nixosModules.microvm
home-manager.nixosModules.home-manager { home-manager.users.defin = import ./home-manager/default.nix; }
diff --git a/machines/doretta/default.nix b/machines/doretta/default.nix
index dc3d4aa..7b08338 100644
--- a/machines/doretta/default.nix
+++ b/machines/doretta/default.nix
@@ -16,7 +16,9 @@
../../modules/nixos/environment.nix
../../modules/nixos/tailscale.nix
../../modules/nixos/system-packages.nix
- # microvm.host
+
+ # microvm host
+ ../vm/foolcreek/default.nix
../../modules/nixos/minecraft-server.nix
@@ -39,34 +41,40 @@
};
programs.virt-manager.enable = true;
- microvm = {
- vms = {
- foolcreek = {
- config = {
- microvm.shares = [{
- source = "/nix/store";
- mountPoint = "/nix/.ro-store";
- tag = "ro-store";
- proto = "virtiofs";
- }];
+ # microvm = {
+ # autostart = [
+ # "foolcreek"
+ # ];
+ # };
+ systemd.network = {
+ enable = true;
+
+ netdevs."br0" = {
+ netdevConfig = {
+ Name = "br0";
+ Kind = "bridge";
+ };
+ };
+ networks = {
+ "10-lan" = {
+ matchConfig.Name = ["eno2" "vm-*"];
+ networkConfig = { Bridge = "br0"; };
+ };
+ "10-lan-bridge" = {
+ matchConfig.Name = "br0";
+ networkConfig = {
+ Address = ["10.1.15.101/24"];
+ Gateway = "10.1.15.254";
+ DNS = ["8.8.8.8"];
};
+ linkConfig.RequiredForOnline = "routable";
};
};
- # interfaces = [{
- # type = "tap";
- # id = "vm-foolcreek";
- # mac = "02:00:00:00:00:01";
- # }];
- };
- # systemd.network = {
- # enable = true;
- # netdevs."10-microvm" = {
- # netdevConfig = {
- # Name = "microvm";
- # Kind = "bridge";
- # };
- # };
+ # netdevs."10-microvm".netdevConfig = {
+ # Name = "microvm";
+ # Kind = "bridge";
+ # };
# networks = {
# "10-microvm" = {
# matchConfig.Name = "microvm";
@@ -121,7 +129,7 @@
# Kind = "bridge";
# };
# };
- # };
+ };
# Set your time zone.
time.timeZone = "US/Mountain";
diff --git a/machines/vm/foolcreek/default.nix b/machines/vm/foolcreek/default.nix
index ad3fc92..e69ed98 100644
--- a/machines/vm/foolcreek/default.nix
+++ b/machines/vm/foolcreek/default.nix
@@ -1,31 +1,26 @@
-{ config, pkgs, ... }:
+{ microvm, config, pkgs, ... }:
# let
# language ;
# in
{
+ microvm.vms.foolcreek.config = {
imports = [
# ./hardware-configuration.nix
../../../modules/nixos/nix-common.nix
../../../modules/nixos/environment.nix
- ../../../modules/nixos/system-packages.nix
+ # ../../../modules/nixos/system-packages.nix
../../../modules/users/defin.nix
../../../modules/users/root.nix
];
-
networking.hostName = "foolcreek";
# boot.loader.systemd-boot.enable = true;
# boot.loader.efi.canTouchEfiVariables = true;
- # virtualisation.vmVariant = {
- # virtualisation = {
- # memorySize = 2048; # Use 2048 MiB memory.
- # cores = 1;
- # graphics = false;
- # };
- # };
- microvm = {
+
+ # microvm = {
+ # microvm = {
# forwardPorts = [ # forward local port 2222-> 22, to ssh into the VM
# { from = "host"; host.port = 2222; guest.port = 22; }
@@ -35,23 +30,33 @@
# # host.address = "127.0.0.1"; host.port = 80;
# }
# ];
- # interfaces =[
- # {
- # type = "tap";
- # id = "vm-foolcreek";
- # mac = "02:00:00:00:00:01";
- # }
- # { type = "user"; }
- # ];
- };
+ microvm.shares = [{
+ source = "/nix/store";
+ mountPoint = "/nix/.ro-store";
+ tag = "ro-store";
+ proto = "9p";
+ }];
+
+ microvm.interfaces =[
+ {
+ type = "tap";
+ id = "vm-fc";
+ mac = "02:00:00:00:00:01";
+ }
+ # { type = "user"; }
+ ];
+ microvm.vcpu = 24;
+ # microvm.mem = 2048;
+
+ # };
systemd.network = {
enable = true;
networks."20-lan" = {
matchConfig.Type = "ether";
networkConfig = {
- Address = ["10.1.11.101/24" "2001:db8::b/64"];
- Gateway = "10.1.11.254";
+ Address = ["10.1.15.102/24" "2001:db8::b/64"];
+ Gateway = "10.1.15.254";
DNS = ["8.8.8.8"];
IPv6AcceptRA = true;
DHCP = "no";
@@ -59,18 +64,23 @@
};
};
- services.wordpress.sites."localhost" = {
- # languages = [ pkgs.wordpressPackages.languages. ]
+ # services.wordpress.sites."localhost" = {
+ # # languages = [ pkgs.wordpressPackages.languages. ]
- };
-
- networking.firewall.allowedTCPPorts = [ 22 80 443];
+ # };
+ networking.firewall.allowedTCPPorts = [ 22 80 443 ];
+ services.openssh = {
+ enable = true;
+ ports = [22];
+ };
environment.systemPackages = with pkgs; [
cowsay
lolcat
+ btop
];
- nixpkgs.hostPlatform = "x86_64-linux";
- system.stateVersion = "24.11";
+ # nixpkgs.hostPlatform = "x86_64-linux";
+ system.stateVersion = "25.11";
+ };
}