forked from foxora/nix
125 lines
3.2 KiB
Nix
125 lines
3.2 KiB
Nix
{cerulean, ...} @ inputs:
|
|
cerulean.mkNexus ./. (self: {
|
|
nexus = {
|
|
args = {inherit inputs;};
|
|
|
|
modules = with inputs; [];
|
|
|
|
base = inputs.nixpkgs;
|
|
|
|
groups = {
|
|
servers = {};
|
|
};
|
|
|
|
nodes = let
|
|
inherit
|
|
(self.nexus)
|
|
groups
|
|
;
|
|
in {
|
|
nixarawrui = {
|
|
system = "x86_64-linux";
|
|
|
|
base = inputs.nixpkgs-unstable;
|
|
|
|
modules = with inputs; [
|
|
sddm-silent.nixosModules.default
|
|
];
|
|
};
|
|
|
|
arcturus = {
|
|
system = "x86_64-linux";
|
|
|
|
groups = [
|
|
groups.servers
|
|
];
|
|
|
|
modules = with inputs; [
|
|
microvm.nixosModules.host
|
|
|
|
{
|
|
microvm.vms = {
|
|
home-assistant = {
|
|
autostart = true;
|
|
|
|
config = {
|
|
imports = [./vms/home-assistant/default.nix];
|
|
|
|
networking.hostName = "home-assistant";
|
|
|
|
boot.kernelParams = ["console=ttyS0" "console=ttyS1" "8250.nr_uarts=2"];
|
|
systemd.services."serial-getty@ttyS1".enable = true;
|
|
|
|
microvm = {
|
|
hypervisor = "qemu";
|
|
|
|
# needed to get interface working
|
|
qemu.extraArgs = [
|
|
"-monitor" "unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait"
|
|
"-chardev" "socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off"
|
|
"-serial" "chardev:serial1"
|
|
];
|
|
|
|
# memory cannot be 2GB so i doubled it and used 4GB:
|
|
# https://github.com/microvm-nix/microvm.nix/issues/171
|
|
# TODO: can be fixed by turning off acpi in qemu
|
|
mem = 4096; # 4GB
|
|
vcpu = 2;
|
|
|
|
interfaces = [
|
|
{
|
|
type = "tap";
|
|
id = "vm-hass";
|
|
mac = "0a:00:a0:70:01:01";
|
|
}
|
|
];
|
|
|
|
volumes = [
|
|
{
|
|
image = "/var/lib/microvms/home-assistant/data.img";
|
|
mountPoint = "/var/lib/hass";
|
|
size = 16384; # 16GB
|
|
}
|
|
];
|
|
};
|
|
|
|
systemd.network.enable = true;
|
|
systemd.network.networks."20-lan" = {
|
|
matchConfig.Type = "ether";
|
|
networkConfig = {
|
|
Address = ["10.16.1.127/24"];
|
|
Gateway = "10.16.1.1";
|
|
DNS = ["10.16.1.1"];
|
|
IPv6AcceptRA = true;
|
|
DHCP = "yes";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
];
|
|
|
|
deploy.ssh = {
|
|
host = "10.16.1.163";
|
|
port = 2222;
|
|
user = "foxora";
|
|
};
|
|
};
|
|
|
|
lyra = {
|
|
system = "x86_64-linux";
|
|
|
|
groups = [
|
|
groups.servers
|
|
];
|
|
|
|
deploy.ssh = {
|
|
host = "10.16.1.58";
|
|
port = 2222;
|
|
user = "foxora";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
})
|