chore: cleaned up some stuff

This commit is contained in:
Nick 2025-12-13 20:35:53 -06:00
parent 09926277fd
commit 77dcbe3c33
12 changed files with 104 additions and 168 deletions

View file

@ -11,15 +11,15 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.services.instances) firefly-iii;
interface0Cfg = firefly-iii.interfaces.interface0;
interfaceCfg = firefly-iii.interfaces.interface0;
fireflyNick = fireflyVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
host = interface0Cfg.domain;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
host = interfaceCfg.domain;
owner = email.address2;
mnt = guestPath user0;
};

View file

@ -10,16 +10,16 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.forgejo.interfaces.interface0;
interfaceCfg = instances.forgejo.interfaces.interface0;
forgejoNick = forgejoVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
host = interface0Cfg.domain;
host = interfaceCfg.domain;
};
in
forgejoNick

View file

@ -10,16 +10,16 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.jellyfin.interfaces.interface0;
interfaceCfg = instances.jellyfin.interfaces.interface0;
jellyfinCeres = jellyfinVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
host = interface0Cfg.domain;
host = interfaceCfg.domain;
};
in

View file

@ -22,16 +22,16 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.mastodon.interfaces.interface0;
interfaceCfg = instances.mastodon.interfaces.interface0;
mastodonNick = mastodonVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
host = interface0Cfg.domain;
host = interfaceCfg.domain;
};
in
mastodonNick

View file

@ -10,17 +10,17 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface1;
interfaceCfg = opencloud.interfaces.interface1;
opencloudProject = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
inter = "enp0s6";
host = "${interface0Cfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
host = "${interfaceCfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
};
in
opencloudProject

View file

@ -10,17 +10,17 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface0;
interfaceCfg = opencloud.interfaces.interface0;
opencloudNick = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = guestPath user0;
inter = "enp0s6";
host = interface0Cfg.domain;
host = interfaceCfg.domain;
};
in
opencloudNick

View file

@ -10,17 +10,17 @@ let
inherit (import ../config { inherit flake lib; }) photoprismVM;
inherit (flake.config.services.instances) photoprism;
inherit (flake.config.people) user0;
interface0Cfg = photoprism.interfaces.interface0;
interfaceCfg = photoprism.interfaces.interface0;
photoprismNick = photoprismVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = guestPath user0;
data = mediaPath user0;
host = interface0Cfg.domain;
host = interfaceCfg.domain;
};
in
photoprismNick

View file

@ -11,16 +11,16 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.qbittorrent.interfaces.interface0;
interfaceCfg = instances.qbittorrent.interfaces.interface0;
qbittorrentCeres = qbittorrentVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
host = interface0Cfg.domain;
host = interfaceCfg.domain;
port = 51820;
endpoint = "185.111.110.1";
address = [ "10.2.0.2/32" ];

View file

@ -5,6 +5,8 @@
let
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) syncthing;
inherit (import ../../../../helpers.nix { inherit flake; }) labHelpers;
inherit (labHelpers) mediaPath docsPath miscPath;
serviceCfg = syncthing;
in
{
@ -17,10 +19,6 @@ in
userMac,
ssh,
mnt,
folders,
devices,
tmp,
mounts,
}:
{
microvm.vms = {
@ -39,15 +37,11 @@ in
openDefaultPorts = true;
systemService = true;
guiAddress = "0.0.0.0:${toString serviceCfg.ports.port0}";
# guiPasswordFile = "/run/secrets/${user}-pass";
settings = {
gui = {
user = user;
password = pass;
};
folders = folders;
devices = devices;
options = {
urAccepted = -1;
};
@ -97,8 +91,10 @@ in
tmpfiles.rules = [
"d /var/lib/${serviceCfg.name} 0755 ${serviceCfg.name} ${serviceCfg.name} -"
]
++ tmp;
"d /var/lib/${serviceCfg.name}/docs 0755 ${serviceCfg.name} ${serviceCfg.name} -"
"d /var/lib/${serviceCfg.name}/media 0755 ${serviceCfg.name} ${serviceCfg.name} -"
"d /var/lib/${serviceCfg.name}/misc 0755 ${serviceCfg.name} ${serviceCfg.name} -"
];
};
microvm = {
vcpu = 1;
@ -136,14 +132,32 @@ in
source = "${mnt}/${serviceCfg.name}";
tag = "${serviceCfg.name}_${user}_data";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/docs";
proto = "virtiofs";
source = docsPath user;
tag = "${serviceCfg.name}_${user}_docs";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/media";
proto = "virtiofs";
source = mediaPath user;
tag = "${serviceCfg.name}_${user}_media";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/misc";
proto = "virtiofs";
source = miscPath user;
tag = "${serviceCfg.name}_${user}_misc";
}
{
mountPoint = "/run/secrets";
proto = "virtiofs";
source = "/run/secrets/${serviceCfg.name}";
tag = "host_secrets";
}
]
++ mounts;
];
};
};
};

View file

@ -4,99 +4,21 @@
}:
let
inherit (import ../../../helpers.nix { inherit flake; }) labHelpers;
inherit (labHelpers)
guestPath
mediaPath
docsPath
miscPath
;
inherit (labHelpers) guestPath;
inherit (import ../config { inherit flake; }) syncthingVM;
inherit (flake.config.services) instances;
inherit (flake.config.people) user0;
serviceCfg = instances.syncthing;
interface0Cfg = serviceCfg.interfaces.interface0;
interfaceCfg = serviceCfg.interfaces.interface0;
foldersHelper = user: {
docs = {
enable = true;
id = "docs";
path = "/var/lib/${serviceCfg.name}/docs";
devices = [
"${user}Phone"
];
};
media = {
enable = true;
id = "media";
path = "/var/lib/${serviceCfg.name}/media";
devices = [
"${user}Phone"
];
};
misc = {
enable = true;
id = "misc";
path = "/var/lib/${serviceCfg.name}/misc";
devices = [
"${user}Phone"
];
};
syncthingNick = syncthingVM {
user = user0;
pass = "$2y$05$WoNmQOeBPM5GhxhgkUmZqOoyBU0Y34e9N7gLZ3Xwb2J8V0j5Uoy7u";
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = guestPath user0;
};
devicesHelper = user: syncID: device: deviceIP: {
"${user}${device}" = {
autoAcceptFolders = true;
name = "${user}${device}";
addresses = [
"tcp://${deviceIP}:${toString serviceCfg.ports.port2}"
];
id = syncID;
};
};
mountsHelper = user: [
{
mountPoint = "/var/lib/${serviceCfg.name}/docs";
proto = "virtiofs";
source = docsPath user;
tag = "${serviceCfg.name}_${user}_docs";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/media";
proto = "virtiofs";
source = mediaPath user;
tag = "${serviceCfg.name}_${user}_media";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/misc";
proto = "virtiofs";
source = miscPath user;
tag = "${serviceCfg.name}_${user}_misc";
}
];
tmpRulesIn = [
"d /var/lib/${serviceCfg.name}/docs 0755 ${serviceCfg.name} ${serviceCfg.name} -"
"d /var/lib/${serviceCfg.name}/media 0755 ${serviceCfg.name} ${serviceCfg.name} -"
"d /var/lib/${serviceCfg.name}/misc 0755 ${serviceCfg.name} ${serviceCfg.name} -"
];
syncthingNick =
let
phoneID = "OALKHLZ-OODUWVX-PAC2LI7-UMZMSZO-FELLRCD-RS4DHJS-PVA5YQK-WTFXXQI";
in
syncthingVM {
user = user0;
pass = "$2y$05$WoNmQOeBPM5GhxhgkUmZqOoyBU0Y34e9N7gLZ3Xwb2J8V0j5Uoy7u";
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = guestPath user0;
folders = foldersHelper user0;
devices = devicesHelper user0 phoneID "Phone" "192.168.50.8";
mounts = mountsHelper user0;
tmp = tmpRulesIn;
};
in
syncthingNick

View file

@ -9,22 +9,22 @@ let
inherit (import ../config { inherit flake; }) vaultwardenVM;
inherit (flake.config.services) instances;
interface0Cfg = instances.vaultwarden.interfaces.interface1;
smtpCfg = instances.smtp;
interfaceCfg = instances.vaultwarden.interfaces.interface1;
smtCfg = instances.smtp;
host = flake.inputs.linkpage.secrets.domains.projectsite;
vaultwardenProject = vaultwardenVM {
user = "project";
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = mntPath;
inter = "enp0s5";
host = "${interface0Cfg.subdomain}.${host}";
host = "${interfaceCfg.subdomain}.${host}";
smtpFrom = "noreply@${host}";
smtpHost = smtpCfg.interfaces.interface0.domain;
smtpPort = smtpCfg.ports.port1;
smtpHost = smtCfg.interfaces.interface0.domain;
smtpPort = smtCfg.ports.port1;
smtpUser = "noreply@${host}";
};
in

View file

@ -10,22 +10,22 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.vaultwarden.interfaces.interface0;
smtpCfg = instances.smtp;
interfaceCfg = instances.vaultwarden.interfaces.interface0;
smtCfg = instances.smtp;
vaultwardenNick = vaultwardenVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
ip = interfaceCfg.microvm.ip;
mac = interfaceCfg.microvm.mac;
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
mnt = guestPath user0;
inter = "enp0s5";
host = interface0Cfg.domain;
smtpFrom = smtpCfg.interfaces.interface0.email;
smtpHost = smtpCfg.interfaces.interface0.domain;
smtpPort = smtpCfg.ports.port1;
smtpUser = smtpCfg.interfaces.interface0.email;
host = interfaceCfg.domain;
smtpFrom = smtCfg.interfaces.interface0.email;
smtpHost = smtCfg.interfaces.interface0.domain;
smtpPort = smtCfg.ports.port1;
smtpUser = smtCfg.interfaces.interface0.email;
};
in