test: setting up opencloud and microvms

This commit is contained in:
Nick 2025-12-04 23:24:00 -06:00
parent 0ed3bb9b64
commit b5929e0834
8 changed files with 79 additions and 35 deletions

View file

@ -16,7 +16,7 @@ in
ports = { ports = {
port0 = 80; port0 = 80;
port1 = 443; port1 = 443;
port2 = 8443; port2 = 8080;
port3 = 8445; # Opencloud port3 = 8443;
}; };
} }

View file

@ -32,7 +32,7 @@ in
]; ];
subdomain = subdomain; subdomain = subdomain;
ports = { ports = {
port0 = 8080; port0 = 8084;
port1 = 8081; port1 = 8081;
}; };
interface = { interface = {

View file

@ -45,7 +45,7 @@ in
imports = builtins.attrValues { imports = builtins.attrValues {
inherit (modules) inherit (modules)
acme acme
caddy caddy0
comfyui comfyui
firefly-iii firefly-iii
forgejo forgejo
@ -71,7 +71,7 @@ in
imports = builtins.attrValues { imports = builtins.attrValues {
inherit (modules) inherit (modules)
acme acme
caddy caddy1
impermanence impermanence
microvm microvm
opencloud0 opencloud0

View file

@ -0,0 +1,33 @@
{ flake, ... }:
let
inherit (flake.config.services) instances;
inherit (flake.config.machines.devices) eris;
opencloud = instances.opencloud0;
service = instances.caddy;
in
{
services.caddy = {
enable = true;
virtualHosts = {
"${opencloud.domains.url0}" = {
extraConfig = ''
reverse_proxy ${eris.ip.address0}:${builtins.toString service.ports.port1} {
transport http {
tls
tls_insecure_skip_verify
}
}
'';
};
};
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
service.ports.port1
];
};
};
}

View file

@ -0,0 +1,20 @@
{ flake, ... }:
let
inherit (flake.config.services) instances;
service = instances.caddy;
in
{
services.caddy = {
enable = true;
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
service.ports.port1
];
};
};
}

View file

@ -1,20 +1,11 @@
{ flake, ... }:
let let
inherit (flake.config.services) instances; importList =
let
service = instances.caddy; content = builtins.readDir ./.;
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
in
map (name: ./. + "/${name}") dirContent;
in in
{ {
services.caddy = { imports = importList;
enable = true;
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
service.ports.port1
];
};
};
} }

View file

@ -18,10 +18,11 @@ in
Kind = "bridge"; Kind = "bridge";
}; };
}; };
networks = { networks = {
"20-lan" = { "20-lan" = {
matchConfig.Name = [ matchConfig.Name = [
"enp3s0" "enp10s0"
"vm-*" "vm-*"
]; ];
networkConfig = { networkConfig = {
@ -31,7 +32,7 @@ in
"30-br-vms" = { "30-br-vms" = {
matchConfig.Name = "br-vms"; matchConfig.Name = "br-vms";
networkConfig = { networkConfig = {
Address = "192.168.50.245/24"; Address = "192.168.50.240/24";
Gateway = "192.168.50.1"; Gateway = "192.168.50.1";
DNS = [ "192.168.50.1" ]; DNS = [ "192.168.50.1" ];
}; };
@ -39,6 +40,7 @@ in
}; };
}; };
}; };
networking = { networking = {
hostName = ceres.name; hostName = ceres.name;
networkmanager.enable = false; networkmanager.enable = false;

View file

@ -1,5 +1,4 @@
{ {
lib,
flake, flake,
... ...
}: }:
@ -7,9 +6,7 @@ let
inherit (flake.config.machines.devices) eris; inherit (flake.config.machines.devices) eris;
in in
{ {
microvm.host.enable = true; microvm.host.enable = true;
systemd.network = { systemd.network = {
enable = true; enable = true;
netdevs."10-br-vms" = { netdevs."10-br-vms" = {
@ -18,13 +15,15 @@ in
Kind = "bridge"; Kind = "bridge";
}; };
}; };
networks = { networks = {
"20-lan" = { "20-enp3s0" = {
matchConfig.Name = [ matchConfig.Name = "enp3s0";
"enp10s0" networkConfig = {
"vm-*" Bridge = "br-vms";
]; };
};
"20-vm" = {
matchConfig.Name = "vm-*";
networkConfig = { networkConfig = {
Bridge = "br-vms"; Bridge = "br-vms";
}; };
@ -40,12 +39,11 @@ in
}; };
}; };
}; };
networking = { networking = {
hostName = eris.name; hostName = eris.name;
networkmanager.enable = true; networkmanager.enable = false;
nftables.enable = true; nftables.enable = true;
useDHCP = lib.mkDefault true; useDHCP = false;
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ allowedTCPPorts = [