mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-08-08 21:04:38 -05:00
refactor: abstracting out bookmark info
This commit is contained in:
parent
85117d2dca
commit
77a31e9688
19 changed files with 114 additions and 64 deletions
|
@ -57,6 +57,7 @@ let
|
||||||
label = stringType;
|
label = stringType;
|
||||||
name = stringType;
|
name = stringType;
|
||||||
hostname = stringType;
|
hostname = stringType;
|
||||||
|
tags = listType;
|
||||||
domains = genOptions stringType "url";
|
domains = genOptions stringType "url";
|
||||||
dns = genOptions stringType "provider";
|
dns = genOptions stringType "provider";
|
||||||
localhost = genOptions stringType "address";
|
localhost = genOptions stringType "address";
|
||||||
|
@ -241,6 +242,7 @@ in
|
||||||
sopsPath = "/var/lib/secrets";
|
sopsPath = "/var/lib/secrets";
|
||||||
sslPath = "/var/lib/acme";
|
sslPath = "/var/lib/acme";
|
||||||
varLib = "/var/lib";
|
varLib = "/var/lib";
|
||||||
|
synologyName = "synology";
|
||||||
dummy = "";
|
dummy = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ in
|
||||||
url0 = audiobookshelfDomain;
|
url0 = audiobookshelfDomain;
|
||||||
};
|
};
|
||||||
subdomain = audiobookshelfSubdomain;
|
subdomain = audiobookshelfSubdomain;
|
||||||
|
tags = [
|
||||||
|
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${audiobookshelfLabel}";
|
path0 = "${servicePath}/${audiobookshelfLabel}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,6 +25,11 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"forge"
|
||||||
|
"git"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,6 +25,12 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
"glance"
|
||||||
|
"dashboard"
|
||||||
|
"weather"
|
||||||
|
"podcasts"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,6 +19,14 @@ in
|
||||||
domains = {
|
domains = {
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
|
tags = [
|
||||||
|
"jelly"
|
||||||
|
"video"
|
||||||
|
"streaming"
|
||||||
|
"movies"
|
||||||
|
"shows"
|
||||||
|
"music"
|
||||||
|
];
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
|
|
|
@ -22,6 +22,11 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"mast"
|
||||||
|
"md"
|
||||||
|
];
|
||||||
sops = {
|
sops = {
|
||||||
path0 = "${sopsPath}/${name}";
|
path0 = "${sopsPath}/${name}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,9 @@ in
|
||||||
path0 = "${sopsPath}/${name}";
|
path0 = "${sopsPath}/${name}";
|
||||||
};
|
};
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
|
tags = [
|
||||||
|
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
path1 = "";
|
path1 = "";
|
||||||
|
|
|
@ -24,6 +24,12 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"next"
|
||||||
|
"cloud"
|
||||||
|
"calendar"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,6 +21,11 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"chat"
|
||||||
|
"ai"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
path1 = "/mnt/media/storage/${name}";
|
path1 = "/mnt/media/storage/${name}";
|
||||||
|
|
|
@ -25,6 +25,11 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"opencloud"
|
||||||
|
"cloud"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,6 +22,9 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
path1 = "/mnt/media/storage/${name}";
|
path1 = "/mnt/media/storage/${name}";
|
||||||
|
|
|
@ -25,6 +25,9 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,6 +25,11 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = subdomain;
|
subdomain = subdomain;
|
||||||
|
tags = [
|
||||||
|
"search"
|
||||||
|
"sear"
|
||||||
|
"searx"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}";
|
path0 = "${servicePath}/${label}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,6 +4,7 @@ let
|
||||||
domain0
|
domain0
|
||||||
sslPath
|
sslPath
|
||||||
sopsPath
|
sopsPath
|
||||||
|
synologyName
|
||||||
;
|
;
|
||||||
|
|
||||||
label = "Syncthing";
|
label = "Syncthing";
|
||||||
|
@ -20,6 +21,12 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
synologyName
|
||||||
|
"sync"
|
||||||
|
"thing"
|
||||||
|
];
|
||||||
ports = {
|
ports = {
|
||||||
port0 = 8388; # Syncthing (WebUI)
|
port0 = 8388; # Syncthing (WebUI)
|
||||||
port1 = 21027; # Syncthing (Discovery)
|
port1 = 21027; # Syncthing (Discovery)
|
||||||
|
|
|
@ -2,14 +2,20 @@
|
||||||
let
|
let
|
||||||
inherit (moduleFunctions.instancesFunctions)
|
inherit (moduleFunctions.instancesFunctions)
|
||||||
sopsPath
|
sopsPath
|
||||||
|
synologyName
|
||||||
;
|
;
|
||||||
|
|
||||||
label = "Synology";
|
label = "Synology";
|
||||||
name = "synology";
|
name = synologyName;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
label = label;
|
label = label;
|
||||||
name = name;
|
name = name;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"dsm"
|
||||||
|
"cloud"
|
||||||
|
];
|
||||||
sops = {
|
sops = {
|
||||||
path0 = "${sopsPath}/${name}";
|
path0 = "${sopsPath}/${name}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,6 +18,13 @@ in
|
||||||
sops = {
|
sops = {
|
||||||
path0 = "${sopsPath}/${name}";
|
path0 = "${sopsPath}/${name}";
|
||||||
};
|
};
|
||||||
|
domains = {
|
||||||
|
url0 = domain3;
|
||||||
|
};
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"blog"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "/var/lib/website/dist";
|
path0 = "/var/lib/website/dist";
|
||||||
path1 = "";
|
path1 = "";
|
||||||
|
|
|
@ -24,6 +24,13 @@ in
|
||||||
url0 = domain;
|
url0 = domain;
|
||||||
};
|
};
|
||||||
subdomain = name;
|
subdomain = name;
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"bitwarden"
|
||||||
|
"vault"
|
||||||
|
"bit"
|
||||||
|
"warden"
|
||||||
|
];
|
||||||
paths = {
|
paths = {
|
||||||
path0 = "${servicePath}/${label}/BackupDir";
|
path0 = "${servicePath}/${label}/BackupDir";
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,6 +8,8 @@ let
|
||||||
;
|
;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
name = "router";
|
||||||
|
label = "Router";
|
||||||
domains = {
|
domains = {
|
||||||
url0 = domain0;
|
url0 = domain0;
|
||||||
url1 = domain1;
|
url1 = domain1;
|
||||||
|
@ -17,6 +19,10 @@ in
|
||||||
dns = {
|
dns = {
|
||||||
provider0 = "namecheap";
|
provider0 = "namecheap";
|
||||||
};
|
};
|
||||||
|
tags = [
|
||||||
|
"router"
|
||||||
|
"asus"
|
||||||
|
];
|
||||||
localhost = {
|
localhost = {
|
||||||
address0 = "127.0.0.1"; # Local
|
address0 = "127.0.0.1"; # Local
|
||||||
address1 = "0.0.0.0"; # All
|
address1 = "0.0.0.0"; # All
|
||||||
|
|
|
@ -15,25 +15,6 @@ let
|
||||||
instances
|
instances
|
||||||
;
|
;
|
||||||
|
|
||||||
jellyfinTags = [
|
|
||||||
"jelly"
|
|
||||||
"video"
|
|
||||||
"streaming"
|
|
||||||
"movies"
|
|
||||||
"shows"
|
|
||||||
"music"
|
|
||||||
];
|
|
||||||
ollamaTags = [
|
|
||||||
instances.ollama.name
|
|
||||||
"chat"
|
|
||||||
"ai"
|
|
||||||
];
|
|
||||||
syncthingTags = [
|
|
||||||
instances.syncthing.name
|
|
||||||
"sync"
|
|
||||||
"thing"
|
|
||||||
instances.synology.name
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
name = "Self Hosted";
|
name = "Self Hosted";
|
||||||
|
@ -49,35 +30,39 @@ in
|
||||||
];
|
];
|
||||||
keyword = "Website";
|
keyword = "Website";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = instances.opencloud.label;
|
||||||
|
url = "https://${instances.opencloud.domains.url0}";
|
||||||
|
tags = [
|
||||||
|
|
||||||
|
];
|
||||||
|
keyword = "Cloud";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = instances.forgejo.label;
|
name = instances.forgejo.label;
|
||||||
url = "https://${instances.forgejo.domains.url0}";
|
url = "https://${instances.forgejo.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
instances.forgejo.name
|
|
||||||
"forge"
|
|
||||||
"git"
|
|
||||||
];
|
];
|
||||||
keyword = instances.forgejo.label;
|
keyword = instances.forgejo.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "${instances.jellyfin.label} (Internet)";
|
name = "${instances.jellyfin.label} (Internet)";
|
||||||
url = "https://${instances.jellyfin.domains.url0}";
|
url = "https://${instances.jellyfin.domains.url0}";
|
||||||
tags = jellyfinTags;
|
tags = [ ];
|
||||||
keyword = instances.jellyfin.label;
|
keyword = instances.jellyfin.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "${instances.jellyfin.label} (Local)";
|
name = "${instances.jellyfin.label} (Local)";
|
||||||
url = "http://${ceres.ip.address0}:${toString instances.jellyfin.ports.port1}";
|
url = "http://${ceres.ip.address0}:${toString instances.jellyfin.ports.port1}";
|
||||||
tags = jellyfinTags;
|
tags = [ ];
|
||||||
keyword = instances.jellyfin.label;
|
keyword = instances.jellyfin.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = instances.mastodon.label;
|
name = instances.mastodon.label;
|
||||||
url = "https://${instances.mastodon.domains.url0}";
|
url = "https://${instances.mastodon.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
instances.mastodon.name
|
|
||||||
"mast"
|
|
||||||
"md"
|
|
||||||
];
|
];
|
||||||
keyword = instances.mastodon.label;
|
keyword = instances.mastodon.label;
|
||||||
}
|
}
|
||||||
|
@ -96,51 +81,34 @@ in
|
||||||
name = instances.nextcloud.label;
|
name = instances.nextcloud.label;
|
||||||
url = "https://${instances.nextcloud.domains.url0}";
|
url = "https://${instances.nextcloud.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
instances.nextcloud.name
|
|
||||||
"next"
|
|
||||||
"cloud"
|
|
||||||
"calendar"
|
|
||||||
];
|
];
|
||||||
keyword = instances.nextcloud.label;
|
keyword = instances.nextcloud.label;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name = aliases.name2;
|
|
||||||
url = instances.web.domains.url2;
|
|
||||||
tags = [
|
|
||||||
aliases.name3
|
|
||||||
"blog"
|
|
||||||
];
|
|
||||||
keyword = aliases.name2;
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "${instances.glance.label} (Local)";
|
name = "${instances.glance.label} (Local)";
|
||||||
url = "https://${instances.glance.domains.url0}";
|
url = "https://${instances.glance.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
"glance"
|
|
||||||
"dashboard"
|
|
||||||
"weather"
|
|
||||||
"podcasts"
|
|
||||||
];
|
];
|
||||||
keyword = instances.glance.label;
|
keyword = instances.glance.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "${instances.ollama.label} (Server)";
|
name = "${instances.ollama.label} (Server)";
|
||||||
url = "https://${instances.ollama.domains.url0}";
|
url = "https://${instances.ollama.domains.url0}";
|
||||||
tags = ollamaTags;
|
tags = [ ];
|
||||||
keyword = instances.ollama.label;
|
keyword = instances.ollama.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "${instances.ollama.label} (Desktop)";
|
name = "${instances.ollama.label} (Desktop)";
|
||||||
url = "http://${mars.ip.address0}:${toString instances.ollama.ports.port0}";
|
url = "http://${mars.ip.address0}:${toString instances.ollama.ports.port0}";
|
||||||
tags = ollamaTags;
|
tags = [ ];
|
||||||
keyword = instances.ollama.label;
|
keyword = instances.ollama.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "Router";
|
name = "Router";
|
||||||
url = "http://${instances.web.localhost.address2}";
|
url = "http://${instances.web.localhost.address2}";
|
||||||
tags = [
|
tags = [
|
||||||
"router"
|
|
||||||
"asus"
|
|
||||||
];
|
];
|
||||||
keyword = "Router";
|
keyword = "Router";
|
||||||
}
|
}
|
||||||
|
@ -148,9 +116,7 @@ in
|
||||||
name = "${instances.searx.label} (Internet)";
|
name = "${instances.searx.label} (Internet)";
|
||||||
url = "https://${instances.searx.domains.url0}";
|
url = "https://${instances.searx.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
"search"
|
|
||||||
"sear"
|
|
||||||
"searx"
|
|
||||||
];
|
];
|
||||||
keyword = instances.searx.label;
|
keyword = instances.searx.label;
|
||||||
}
|
}
|
||||||
|
@ -158,25 +124,21 @@ in
|
||||||
name = "${instances.syncthing.label} (${instances.synology.label})";
|
name = "${instances.syncthing.label} (${instances.synology.label})";
|
||||||
url = "http://${synology.ip.address0}:${toString instances.syncthing.ports.port0}";
|
url = "http://${synology.ip.address0}:${toString instances.syncthing.ports.port0}";
|
||||||
tags = [
|
tags = [
|
||||||
"synology"
|
];
|
||||||
] ++ syncthingTags;
|
|
||||||
keyword = instances.syncthing.label;
|
keyword = instances.syncthing.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "${instances.syncthing.label} (Desktop)";
|
name = "${instances.syncthing.label} (Desktop)";
|
||||||
url = "http://localhost:${toString instances.syncthing.ports.port0}";
|
url = "http://localhost:${toString instances.syncthing.ports.port0}";
|
||||||
tags = [
|
tags = [
|
||||||
"desktop"
|
];
|
||||||
] ++ syncthingTags;
|
|
||||||
keyword = instances.syncthing.label;
|
keyword = instances.syncthing.label;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = instances.synology.label;
|
name = instances.synology.label;
|
||||||
url = "https://${synology.ip.address0}:${toString instances.synology.ports.port0}";
|
url = "https://${synology.ip.address0}:${toString instances.synology.ports.port0}";
|
||||||
tags = [
|
tags = [
|
||||||
instances.synology.name
|
|
||||||
"dsm"
|
|
||||||
"cloud"
|
|
||||||
];
|
];
|
||||||
keyword = instances.synology.label;
|
keyword = instances.synology.label;
|
||||||
}
|
}
|
||||||
|
@ -184,11 +146,7 @@ in
|
||||||
name = instances.vaultwarden.label;
|
name = instances.vaultwarden.label;
|
||||||
url = "https://${instances.vaultwarden.domains.url0}";
|
url = "https://${instances.vaultwarden.domains.url0}";
|
||||||
tags = [
|
tags = [
|
||||||
instances.vaultwarden.name
|
|
||||||
"bitwarden"
|
|
||||||
"vault"
|
|
||||||
"bit"
|
|
||||||
"warden"
|
|
||||||
];
|
];
|
||||||
keyword = instances.vaultwarden.label;
|
keyword = instances.vaultwarden.label;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue