test: setting up nas structure

This commit is contained in:
Nick 2025-12-09 00:52:21 -06:00
parent 4225970826
commit a92229390e
36 changed files with 275 additions and 1039 deletions

View file

@ -6,12 +6,15 @@
...
}:
let
inherit (labHelpers) guestPath;
inherit (import ./config { inherit config flake pkgs; }) fireflyVM;
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.services.instances) firefly-iii;
interface0Cfg = firefly-iii.interfaces.interface0;
in
{
fireflyNick = fireflyVM {
user = user0;
ip = interface0Cfg.microvm.ip;
@ -19,7 +22,7 @@ let
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh0;
host = interface0Cfg.domain;
mnt = "";
mnt = guestPath user0;
owner = email.address2;
};
@ -44,7 +47,4 @@ let
# host = "";
# owner = "";
# };
in
fireflyNick
# // fireflyStacie // fireflyGarnet
}

View file

@ -5,21 +5,21 @@
...
}:
let
inherit (labHelpers) mntPath;
inherit (import ./config { inherit flake pkgs; }) forgejoVM;
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.forgejo.interfaces.interface0;
in
{
forgejoNick = forgejoVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = mntPath;
host = interface0Cfg.domain;
};
in
forgejoNick
# // forgejoStacie // forgejoGarnet
}

View file

@ -1,5 +1,6 @@
{
labHelpers = {
mntPath = "/mnt/storage";
guestPath = user: "/mnt/storage/users/${user}/guests";
docsPath = user: "/mnt/storage/users/${user}/home/docs";
mediaPath = user: "/mnt/storage/users/${user}/home/media";

View file

@ -5,21 +5,22 @@
...
}:
let
inherit (labHelpers) mntPath;
inherit (import ./config { inherit flake pkgs; }) jellyfinVM;
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.jellyfin.interfaces.interface0;
in
{
jellyfinNick = jellyfinVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = mntPath;
host = interface0Cfg.domain;
};
in
jellyfinNick
# // forgejoStacie // forgejoGarnet
}

View file

@ -5,21 +5,22 @@
...
}:
let
inherit (labHelpers) mntPath;
inherit (import ./config { inherit flake pkgs; }) mastodonVM;
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.mastodon.interfaces.interface0;
in
{
mastodonNick = mastodonVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = mntPath;
host = interface0Cfg.domain;
};
in
mastodonNick
# // mastodonStacie // mastodonGarnet
}

View file

@ -5,10 +5,13 @@
...
}:
let
inherit (labHelpers) mntPath;
inherit (import ./config { inherit flake pkgs; }) minecraftVM;
inherit (flake.config.services) instances;
inherit (flake.config.people) user0;
in
{
minecraftNick01 =
let
interfaceCfg = instances.minecraft.interfaces.interface0;
@ -20,7 +23,7 @@ let
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
port = interfaceCfg.microvm.port;
mnt = "";
mnt = mntPath;
worldNumber = "01";
config = {
allow-flight = false;
@ -67,7 +70,7 @@ let
userMac = interfaceCfg.microvm.macUser;
ssh = interfaceCfg.microvm.ssh;
port = interfaceCfg.microvm.port;
mnt = "";
mnt = mntPath;
worldNumber = "02";
config = {
allow-flight = false;
@ -101,5 +104,4 @@ let
};
};
in
minecraftNick01 // minecraftNick02
}

View file

@ -5,22 +5,36 @@
...
}:
let
inherit (labHelpers) mntPath guestPath;
inherit (import ./config { inherit flake pkgs; }) opencloudVM;
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface0;
interface1Cfg = opencloud.interfaces.interface1;
in
{
opencloudNick = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = guestPath user0;
host = interface0Cfg.domain;
};
opencloudProject = opencloudVM {
user = user0;
ip = interface1Cfg.microvm.ip;
mac = interface1Cfg.microvm.mac;
userMac = interface1Cfg.microvm.macUser;
ssh = interface1Cfg.microvm.ssh;
mnt = mntPath;
host = "${interface0Cfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
};
# opencloudStacie = opencloudVM {
# user = "stacie";
# ip = ipAddress id1;
@ -40,7 +54,4 @@ let
# mnt = guestPath "garnet";
# host = "";
# };
in
opencloudNick
# // opencloudStacie // opencloudGarnet
}

View file

@ -38,7 +38,6 @@ in
passwordFile = "/run/secrets/${user}-pass";
storagePath = "/var/lib/${serviceCfg.name}";
originalsPath = "/var/lib/${serviceCfg.name}-media";
importPath = "photos";
address = "0.0.0.0";
};
openssh = {

View file

@ -5,19 +5,22 @@
...
}:
let
inherit (labHelpers) guestPath mediaPath;
inherit (import ./config { inherit flake lib; }) photoprismVM;
inherit (flake.config.services.instances) photoprism;
inherit (flake.config.people) user0;
interface0Cfg = photoprism.interfaces.interface0;
in
{
photoprismNick = photoprismVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
data = "";
mnt = guestPath user0;
data = mediaPath user0;
host = interface0Cfg.domain;
};
@ -41,6 +44,4 @@ let
# data = mediaPath "stacie";
# };
in
photoprismNick
# // photoprismStacie // photoprismGarnet
}

View file

@ -5,19 +5,22 @@
...
}:
let
inherit (labHelpers) mntPath;
inherit (import ./config { inherit flake pkgs; }) qbittorrentVM;
inherit (flake.config.people) user0;
inherit (flake.config.services) instances;
interface0Cfg = instances.qbittorrent.interfaces.interface0;
qbittorrentNick = qbittorrentVM {
in
{
qbittorrentCeres = qbittorrentVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = mntPath;
host = interface0Cfg.domain;
port = 51820;
endpoint = "185.111.110.1";
@ -25,6 +28,4 @@ let
dns = [ "10.2.0.1" ];
key = "QPfiwJQmt5VLEOh1ufLbi1lj6LUnwQY0tgDSh3pWx1k=";
};
in
qbittorrentNick
# // qbittorrentStacie // qbittorrentGarnet
}

View file

@ -4,6 +4,12 @@
...
}:
let
inherit (labHelpers)
docsPath
guestPath
mediaPath
miscPath
;
inherit (import ./config { inherit flake; }) syncthingVM;
inherit (flake.config.services) instances;
inherit (flake.config.people) user0;
@ -52,19 +58,19 @@ let
{
mountPoint = "/var/lib/${serviceCfg.name}/docs";
proto = "virtiofs";
source = "";
source = docsPath user;
tag = "${serviceCfg.name}_${user}_docs";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/media";
proto = "virtiofs";
source = "";
source = mediaPath user;
tag = "${serviceCfg.name}_${user}_media";
}
{
mountPoint = "/var/lib/${serviceCfg.name}/misc";
proto = "virtiofs";
source = "";
source = miscPath user;
tag = "${serviceCfg.name}_${user}_misc";
}
];
@ -75,6 +81,8 @@ let
"d /var/lib/${serviceCfg.name}/misc 0755 ${serviceCfg.name} ${serviceCfg.name} -"
];
in
{
syncthingNick =
let
phoneID = "OALKHLZ-OODUWVX-PAC2LI7-UMZMSZO-FELLRCD-RS4DHJS-PVA5YQK-WTFXXQI";
@ -85,7 +93,7 @@ let
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = guestPath user0;
host = interface0Cfg.domain;
folders = foldersHelper user0;
devices = devicesHelper user0 phoneID "Phone" "192.168.50.8";
@ -112,7 +120,4 @@ let
# syncID = "";
# deviceIP = "";
# };
in
syncthingNick
# // syncthingStacie // syncthingGarnet
}

View file

@ -4,19 +4,22 @@
...
}:
let
inherit (labHelpers) guestPath;
inherit (import ./config { inherit flake; }) vaultwardenVM;
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) vaultwarden;
interface0Cfg = vaultwarden.interfaces.interface0;
in
{
vaultwardenNick = vaultwardenVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = "";
mnt = guestPath user0;
host = interface0Cfg.domain;
};
@ -40,6 +43,4 @@ let
# host = "";
# };
in
vaultwardenNick
# // vaultwardenStacie // vaultwardenGarnet
}

View file

@ -8,7 +8,9 @@ let
inherit (import ./config { inherit flake pkgs; }) websiteVM;
inherit (flake.config.services) instances;
websiteNick =
in
{
websiteUpRoot =
let
websitePkg = flake.self.packages.${pkgs.system}.website;
interfaceCfg = instances.website.interfaces.interface0;
@ -34,5 +36,4 @@ let
package = websitePkg;
};
in
websiteNick // websiteProject
}

View file

@ -9,7 +9,9 @@ let
inherit (flake.config.services) instances;
interfaceCfg = instances.zookeeper.interfaces.interface0;
zookeeperNick =
in
{
zookeeperBot =
let
appPackage = flake.self.packages.${pkgs.system}.zookeeper;
in
@ -21,5 +23,4 @@ let
package = appPackage;
};
in
zookeeperNick
}