cleaner shared services file
This commit is contained in:
parent
b80fe6604e
commit
fdf14765fd
2 changed files with 24 additions and 19 deletions
|
|
@ -1,48 +1,43 @@
|
|||
# Shared service definitions for cross-host configuration
|
||||
# Used by:
|
||||
# - alexandria: DNS server (LAN) + service hosting (vaultwarden, nextcloud, jellyfin, kanidm)
|
||||
# - trantor: DNS server (Tailnet) + service hosting (forgejo)
|
||||
{
|
||||
# Host IP definitions
|
||||
hosts = {
|
||||
alexandria = {
|
||||
lanIP = "192.168.15.142";
|
||||
tailscaleIP = "100.76.19.50";
|
||||
};
|
||||
trantor = {
|
||||
tailscaleIP = "100.108.5.90";
|
||||
};
|
||||
};
|
||||
|
||||
# Service definitions - IPs are inherited from host
|
||||
services = [
|
||||
{
|
||||
name = "kanidm";
|
||||
domain = "auth.baduhai.dev";
|
||||
host = "alexandria";
|
||||
lanIP = "192.168.15.142";
|
||||
tailscaleIP = "100.76.19.50";
|
||||
port = 8443;
|
||||
}
|
||||
{
|
||||
name = "vaultwarden";
|
||||
domain = "pass.baduhai.dev";
|
||||
host = "alexandria";
|
||||
lanIP = "192.168.15.142";
|
||||
tailscaleIP = "100.76.19.50";
|
||||
port = 8222;
|
||||
}
|
||||
{
|
||||
name = "forgejo";
|
||||
domain = "git.baduhai.dev";
|
||||
host = "trantor";
|
||||
public = true;
|
||||
tailscaleIP = "100.108.5.90";
|
||||
port = 3000;
|
||||
}
|
||||
{
|
||||
name = "nextcloud";
|
||||
domain = "cloud.baduhai.dev";
|
||||
host = "alexandria";
|
||||
lanIP = "192.168.15.142";
|
||||
tailscaleIP = "100.76.19.50";
|
||||
port = 443;
|
||||
}
|
||||
{
|
||||
name = "jellyfin";
|
||||
domain = "jellyfin.baduhai.dev";
|
||||
host = "alexandria";
|
||||
lanIP = "192.168.15.142";
|
||||
tailscaleIP = "100.76.19.50";
|
||||
port = 8096;
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
14
utils.nix
14
utils.nix
|
|
@ -11,11 +11,21 @@ let
|
|||
|
||||
# Import shared service definitions
|
||||
sharedServices = import ./shared/services.nix;
|
||||
|
||||
# Enrich services with host IP information
|
||||
enrichedServices = builtins.map (svc:
|
||||
let
|
||||
hostInfo = sharedServices.hosts.${svc.host} or {};
|
||||
in
|
||||
svc // lib.optionalAttrs (hostInfo ? lanIP) { inherit (hostInfo) lanIP; }
|
||||
// lib.optionalAttrs (hostInfo ? tailscaleIP) { inherit (hostInfo) tailscaleIP; }
|
||||
) sharedServices.services;
|
||||
in
|
||||
|
||||
{
|
||||
# Re-export shared services for use in host configs
|
||||
inherit (sharedServices) services;
|
||||
# Re-export enriched services and hosts for use in host configs
|
||||
services = enrichedServices;
|
||||
inherit (sharedServices) hosts;
|
||||
# Tag-based host configuration system
|
||||
mkHost =
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue