Compare commits

..

10 commits

Author SHA1 Message Date
Nick
40a550f8d9 feat: added glance to deimos 2025-06-10 20:12:12 -05:00
Nick
ecbcec610f feat: kanboard test 2025-06-10 17:06:28 -05:00
Nick
4078c53aca feat: kanboard test 2025-06-10 17:00:23 -05:00
Nick
bc614fa8e5 feat: kanboard test 2025-06-10 16:57:51 -05:00
Nick
3fad9b2f7a feat: kanboard test 2025-06-10 16:30:18 -05:00
Nick
2b368d76e8 feat: kanboard test 2025-06-10 16:29:34 -05:00
Nick
ddb9c88c75 feat: kanboard test 2025-06-10 16:25:14 -05:00
Nick
8aacacd34a feat: kanboard test 2025-06-10 16:21:05 -05:00
Nick
01e12a6d2e feat: kanboard test 2025-06-10 16:19:59 -05:00
Nick
0c1d86e494 refactor: changed url path convention 2025-06-10 15:54:00 -05:00
26 changed files with 83 additions and 25 deletions

View file

@ -9,6 +9,7 @@ let
sopsPath
;
audiobookshelfSubdomain = "books";
audiobookshelfDomain = "${audiobookshelfSubdomain}.${domain0}";
in
{
label = audiobookshelfLabel;
@ -16,6 +17,9 @@ in
sops = {
path0 = "${sopsPath}/${audiobookshelfName}";
};
domains = {
url0 = audiobookshelfDomain;
};
subdomain = audiobookshelfSubdomain;
paths = {
path0 = "${servicePath}/${audiobookshelfLabel}";

View file

@ -10,6 +10,7 @@ let
forgejoLabel = "Forgejo";
forgejoName = "forgejo";
forgejoSubdomain = "source";
forgejoDomain = "${forgejoSubdomain}.${domain3}";
in
{
label = forgejoLabel;
@ -20,6 +21,9 @@ in
sops = {
path0 = "${sopsPath}/${forgejoName}";
};
domains = {
url0 = forgejoDomain;
};
subdomain = forgejoSubdomain;
paths = {
path0 = "${servicePath}/${forgejoLabel}";

View file

@ -10,6 +10,7 @@ let
glanceLabel = "Glance";
glanceName = "glance";
glanceSubdomain = "dashboard";
glanceDomain = "${glanceSubdomain}.${domain0}";
in
{
label = glanceLabel;
@ -20,6 +21,9 @@ in
sops = {
path0 = "${sopsPath}/${glanceName}";
};
domains = {
url0 = glanceDomain;
};
subdomain = glanceSubdomain;
paths = {
path0 = "${servicePath}/${glanceLabel}";

View file

@ -8,6 +8,7 @@ let
sslPath
sopsPath
;
jellyfinDomain = "${jellyfinName}.${domain0}";
in
{
label = jellyfinLabel;
@ -15,6 +16,9 @@ in
sops = {
path0 = "${sopsPath}/${jellyfinName}";
};
domains = {
url0 = jellyfinDomain;
};
subdomain = jellyfinName;
paths = {
path0 = "${servicePath}/${jellyfinLabel}";

4
modules/config/instances/config/kanboard.nix Normal file → Executable file
View file

@ -10,6 +10,7 @@ let
kanboardLabel = "Kanboard";
kanboardName = "kanboard";
kanboardSubdomain = "todo";
kanboardDomain = "${kanboardSubdomain}.${domain0}";
in
{
label = kanboardLabel;
@ -20,6 +21,9 @@ in
sops = {
path0 = "${sopsPath}/${kanboardName}";
};
domains = {
url0 = kanboardDomain;
};
subdomain = kanboardSubdomain;
paths = {
path0 = "${servicePath}/${kanboardLabel}";

View file

@ -10,6 +10,7 @@ let
mastodonLabel = "Mastodon";
mastodonName = "mastodon";
mastodonSubdomain = "social";
mastodonDomain = "${mastodonSubdomain}.${domain3}";
in
{
label = mastodonLabel;
@ -17,6 +18,9 @@ in
email = {
address0 = "noreply@${domain3}";
};
domains = {
url0 = mastodonDomain;
};
subdomain = mastodonSubdomain;
sops = {
path0 = "${sopsPath}/${mastodonName}";

View file

@ -9,6 +9,7 @@ let
nextcloudLabel = "Nextcloud";
nextcloudName = "nextcloud";
nextcloudDomain = "${nextcloudName}.${domain0}";
in
{
label = nextcloudLabel;
@ -19,6 +20,9 @@ in
sops = {
path0 = "${sopsPath}/${nextcloudName}";
};
domains = {
url0 = nextcloudDomain;
};
subdomain = nextcloudName;
paths = {
path0 = "${servicePath}/${nextcloudLabel}";

View file

@ -9,6 +9,7 @@ let
ollamaLabel = "Ollama";
ollamaName = "ollama";
ollamaDomain = "${ollamaName}.${domain0}";
in
{
label = ollamaLabel;
@ -16,6 +17,9 @@ in
sops = {
path0 = "${sopsPath}/${ollamaName}";
};
domains = {
url0 = ollamaDomain;
};
subdomain = ollamaName;
paths = {
path0 = "${servicePath}/${ollamaLabel}";

View file

@ -10,6 +10,7 @@ let
owncastLabel = "Owncast";
owncastName = "owncast";
owncastSubdomain = "stream";
owncastDomain = "${owncastSubdomain}.${domain1}";
in
{
label = owncastLabel;
@ -17,6 +18,9 @@ in
sops = {
path0 = "${sopsPath}/${owncastName}";
};
domains = {
url0 = owncastDomain;
};
subdomain = owncastSubdomain;
paths = {
path0 = "${servicePath}/${owncastLabel}";

View file

@ -10,6 +10,7 @@ let
peertubeLabel = "PeerTube";
peertubeName = "peertube";
peertubeSubdomain = "video";
peertubeDomain = "${peertubeSubdomain}.${domain3}";
in
{
label = peertubeLabel;
@ -20,6 +21,9 @@ in
sops = {
path0 = "${sopsPath}/${peertubeName}";
};
domains = {
url0 = peertubeDomain;
};
subdomain = peertubeSubdomain;
paths = {
path0 = "${servicePath}/${peertubeLabel}";

View file

@ -9,6 +9,7 @@ let
postfixLabel = "Postfix";
postfixName = "postfix";
postfixDomain = "${postfixName}.${domain3}";
in
{
label = postfixLabel;
@ -16,6 +17,9 @@ in
sops = {
path0 = "${sopsPath}/${postfixName}";
};
domains = {
url0 = postfixDomain;
};
subdomain = postfixName;
paths = {
path0 = "${servicePath}/${postfixLabel}";

View file

@ -10,6 +10,7 @@ let
searxLabel = "SearXNG";
searxName = "searx";
searxSubdomain = "search";
searxDomain = "${searxSubdomain}.${domain0}";
in
{
label = searxLabel;
@ -20,6 +21,9 @@ in
sops = {
path0 = "${sopsPath}/${searxName}";
};
domains = {
url0 = searxDomain;
};
subdomain = searxSubdomain;
paths = {
path0 = "${servicePath}/${searxLabel}";

View file

@ -8,6 +8,7 @@ let
syncthingLabel = "Syncthing";
syncthingName = "syncthing";
syncthingDomain = "${syncthingName}.${domain0}";
in
{
label = syncthingLabel;
@ -15,6 +16,9 @@ in
sops = {
path0 = "${sopsPath}/${syncthingName}";
};
domains = {
url0 = syncthingDomain;
};
subdomain = syncthingName;
ports = {
port0 = 8388; # Syncthing (WebUI)

View file

@ -9,6 +9,7 @@ let
vaultwardenLabel = "Vaultwarden";
vaultwardenName = "vaultwarden";
vaultwardenDomain = "${vaultwardenName}.${domain0}";
in
{
label = vaultwardenLabel;
@ -19,6 +20,9 @@ in
sops = {
path0 = "${sopsPath}/${vaultwardenName}";
};
domains = {
url0 = vaultwardenDomain;
};
subdomain = vaultwardenName;
paths = {
path0 = "${servicePath}/${vaultwardenLabel}/BackupDir";

View file

@ -46,6 +46,7 @@ in
xserver
espanso
wireGuard
glance
;
};
};
@ -89,7 +90,7 @@ in
vaultwarden
forgejo
xserver
kanboard
# kanboard
;
};
};

View file

@ -3,7 +3,7 @@ let
inherit (flake.config.services.instances) audiobookshelf web;
inherit (flake.config.machines.devices) ceres;
service = audiobookshelf;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
localhost = web.localhost.address0;
in
{

View file

@ -10,7 +10,7 @@ let
inherit (flake.config.services.instances) smtp forgejo web;
service = forgejo;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url3}";
host = service.domains.url0;
in
{
services = {

View file

@ -5,7 +5,7 @@ let
inherit (flake.config.services.instances) jellyfin web;
service = jellyfin;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
in
{
services = {

29
modules/nixos/services/kanboard/default.nix Normal file → Executable file
View file

@ -10,24 +10,25 @@ let
inherit (flake.config.services.instances) smtp kanboard web;
service = kanboard;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
in
{
services = {
kanboard = {
enable = true;
domain = host;
nginx = null;
# dataDir = "/var/lib/${service.name}";
# settings = {
# MAIL_FROM = service.email.address0;
# # HTTP_PROXY_HOSTNAME = host;
# HTTP_PROXY_PORT = service.ports.poract0;
# HTTP_PROXY_PORT = service.ports.port0;
# MAIL_TRANSPORT = "smtp";
# MAIL_SMTP_HOSTNAME = smtp.hostname;
# MAIL_SMTP_PORT = smtp.ports.port0;
# MAIL_SMTP_USERNAME = service.email.address0;
# MAIL_SMTP_PASSWORD = config.sops.secrets."${service.name}-smtp".path;
# MAIL_SMTP_ENCRYPTION = "null";
# MAIL_SMTP_ENCRYPTION = "ssl";
# };
};
caddy = {
@ -63,19 +64,19 @@ in
);
};
fileSystems."/var/lib/${service.name}" = {
device = service.paths.path0;
fsType = "none";
options = [
"bind"
];
depends = [
ceres.storage0.mount
];
};
# fileSystems."/var/lib/${service.name}" = {
# device = service.paths.path0;
# fsType = "none";
# options = [
# "bind"
# ];
# depends = [
# ceres.storage0.mount
# ];
# };
systemd.tmpfiles.rules = [
"Z ${service.paths.path0} 755 ${service.name} ${service.name} -"
# "Z ${service.paths.path0} 755 ${service.name} ${service.name} -"
"Z ${service.sops.path0} 755 ${service.name} ${service.name} -"
];

View file

@ -11,7 +11,7 @@ let
;
inherit (flake.config.services.instances) smtp mastodon web;
service = mastodon;
host = "${mastodon.subdomain}.${web.domains.url3}";
host = service.domains.url0;
localhost = web.localhost.address0;
in
{

View file

@ -16,7 +16,7 @@ let
;
service = nextcloud;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
in
{
services = {

View file

@ -17,7 +17,7 @@ let
localhost1 = web.localhost.address0;
localhost2 = web.localhost.address1;
hostname = config.networking.hostName;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
localhostLogic = if hostname == mars.name then localhost2 else localhost1;
caddyLogic =

View file

@ -6,7 +6,7 @@ let
;
service = owncast;
localhost = web.localhost.address1;
host = "${service.subdomain}.${web.domains.url1}";
host = service.domains.url0;
in
{
services = {

View file

@ -16,7 +16,7 @@ let
;
service = peertube;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url3}";
host = service.domains.url0;
in
{
services = {

View file

@ -10,7 +10,7 @@ let
service = searx;
hostname = config.networking.hostName;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
in
{
services =

View file

@ -7,7 +7,7 @@ let
inherit (flake.config.services.instances) smtp vaultwarden web;
service = vaultwarden;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
host = service.domains.url0;
in
{
services = {