mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-12-16 11:30:53 -06:00
feat: updated abstractions
This commit is contained in:
parent
4512d7a5d9
commit
9aab8c6444
31 changed files with 70 additions and 97 deletions
|
|
@ -3,46 +3,63 @@ let
|
|||
inherit (flake.config.machines.devices) mars;
|
||||
inherit (flake.config.services) instances;
|
||||
|
||||
svc = service: interface: { inherit service interface; };
|
||||
|
||||
makeBookmarks =
|
||||
{
|
||||
suffix,
|
||||
urlTemplate,
|
||||
services,
|
||||
}:
|
||||
builtins.map (name: {
|
||||
name = "${instances.${name}.label} ${suffix}";
|
||||
url = urlTemplate name;
|
||||
tags = instances.${name}.tags;
|
||||
keyword = instances.${name}.short;
|
||||
}) (builtins.map (service: instances.${service}.name) services);
|
||||
builtins.map (
|
||||
{ service, interface }:
|
||||
let
|
||||
name = instances.${service}.name;
|
||||
interfaceData = instances.${name}.interfaces.${interface};
|
||||
in
|
||||
{
|
||||
name = "${instances.${name}.label} ${suffix}";
|
||||
url = urlTemplate name interfaceData;
|
||||
tags = instances.${name}.tags;
|
||||
keyword = instances.${name}.short;
|
||||
}
|
||||
) services;
|
||||
|
||||
instanceList = [
|
||||
instances.firefly-iii.name
|
||||
instances.forgejo.name
|
||||
instances.jellyfin.name
|
||||
instances.mastodon.name
|
||||
instances.ollama.name
|
||||
instances.qbittorrent.name
|
||||
instances.vaultwarden.name
|
||||
];
|
||||
bookmarkConfigs = [
|
||||
{
|
||||
suffix = "(Remote)";
|
||||
urlTemplate = name: "https://${instances.${name}.domains.url0}";
|
||||
services = instanceList;
|
||||
urlTemplate = name: iface: "https://${iface.domain}";
|
||||
services = [
|
||||
(svc instances.firefly-iii.name "interface0")
|
||||
(svc instances.forgejo.name "interface0")
|
||||
(svc instances.jellyfin.name "interface0")
|
||||
(svc instances.mastodon.name "interface0")
|
||||
(svc instances.ollama.name "interface0")
|
||||
(svc instances.qbittorrent.name "interface0")
|
||||
(svc instances.vaultwarden.name "interface0")
|
||||
];
|
||||
}
|
||||
{
|
||||
suffix = "(Server)";
|
||||
urlTemplate =
|
||||
name: "http://${instances.${name}.interface.ip}:${builtins.toString instances.${name}.ports.port0}";
|
||||
services = instanceList;
|
||||
name: iface: "http://${iface.microvm.ip}:${builtins.toString instances.${name}.ports.port0}";
|
||||
services = [
|
||||
(svc instances.firefly-iii.name "interface0")
|
||||
(svc instances.forgejo.name "interface0")
|
||||
(svc instances.jellyfin.name "interface0")
|
||||
(svc instances.mastodon.name "interface0")
|
||||
(svc instances.ollama.name "interface0")
|
||||
(svc instances.qbittorrent.name "interface0")
|
||||
(svc instances.vaultwarden.name "interface0")
|
||||
];
|
||||
}
|
||||
{
|
||||
suffix = "(Desktop)";
|
||||
urlTemplate = name: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
||||
urlTemplate =
|
||||
name: iface: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
||||
services = [
|
||||
instances.ollama.name
|
||||
instances.syncthing.name
|
||||
(svc instances.ollama.name "interface0")
|
||||
(svc instances.syncthing.name "interface0")
|
||||
];
|
||||
}
|
||||
];
|
||||
|
|
@ -52,7 +69,7 @@ let
|
|||
flatBookmarks = [
|
||||
{
|
||||
name = instances.web.label;
|
||||
url = "http://${instances.web.localhost.address2}";
|
||||
url = "http://${instances.web.addresses.address2}";
|
||||
tags = instances.web.tags;
|
||||
keyword = instances.web.label;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue