add data/services.nix for shared service definitions

Creates a standalone data file that can be imported by both
aspects/constants.nix and terranix configurations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
William 2026-02-06 22:46:49 -03:00
parent 848f79f8bb
commit bde5e2aabc
20 changed files with 189 additions and 57 deletions

View file

@ -1,7 +1,6 @@
{ lib, inputs, ... }:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{
services.jellyfin = {

View file

@ -7,8 +7,7 @@
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
kanidmCertDir = "/var/lib/kanidm/certs";
in

View file

@ -7,8 +7,7 @@
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{

View file

@ -6,8 +6,7 @@
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts services;
services = inputs.self.services;
# Get all unique domains from shared services that have LAN IPs (served by this host)
localDomains = lib.unique (map (s: s.domain) (lib.filter (s: s.host == "alexandria") services));

View file

@ -1,7 +1,7 @@
{ inputs, lib, ... }:
let
utils = import ../../../utils.nix { inherit inputs lib; };
services = inputs.self.services;
in
{
@ -35,7 +35,7 @@ in
# LAN-only DNS records
local-zone = ''"baduhai.dev." transparent'';
local-data = map (e: ''"${e.domain}. IN A ${e.lanIP}"'')
(lib.filter (e: e ? lanIP) utils.services);
(lib.filter (e: e.lanIP != null) services);
};
forward-zone = [

View file

@ -5,8 +5,7 @@
...
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{
services.vaultwarden = {

View file

@ -6,8 +6,7 @@
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{

View file

@ -6,8 +6,7 @@
}:
let
utils = import ../../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts services;
services = inputs.self.services;
# Get all unique domains from shared services on trantor (host = "trantor")
localDomains = lib.unique (

View file

@ -1,7 +1,7 @@
{ inputs, lib, ... }:
let
utils = import ../../../utils.nix { inherit inputs lib; };
services = inputs.self.services;
in
{
@ -35,7 +35,7 @@ in
# Tailnet DNS records from shared services
local-zone = ''"baduhai.dev." transparent'';
local-data = map (e: ''"${e.domain}. IN A ${e.tailscaleIP}"'') utils.services;
local-data = map (e: ''"${e.domain}. IN A ${e.tailscaleIP}"'') services;
};
forward-zone = [