/ config.nix
config.nix
1 { inputs, lib, list, hosts, ... }: let 2 3 allowed_repositories = [ 4 "nixos-keys" 5 "nixos-secrets" 6 "rekeyed-secrets" 7 ]; 8 domains-host = import ./maps/domains-host.nix; 9 10 in { 11 provider = { 12 "gitea" = { 13 base_url = "http://git.cowboyai.local"; 14 token = lib.tfRef "var.gitea_token"; 15 }; 16 "adguard" = { 17 host = "dns-master.home.cowboyai.local"; 18 scheme = "http"; 19 username = lib.tfRef "var.agh_user"; 20 password = lib.tfRef "var.agh_password"; 21 }; 22 }; 23 24 variable = { 25 "gitea_token" = { 26 type = "string"; 27 }; 28 "agh_user" = { 29 type = "string"; 30 }; 31 "agh_password" = { 32 type = "string"; 33 }; 34 }; 35 36 resource = { 37 "gitea_repository" = builtins.listToAttrs (map (x: { 38 name = x; 39 value = { 40 name = x; private = true; 41 username = "cowboy"; 42 default_branch= "master"; 43 }; 44 }) allowed_repositories); 45 46 gitea_repository_key = builtins.listToAttrs (lib.flatten (map (repo: (map (host: { 47 name = "${repo}-${host.hostname}"; value = { 48 repository = lib.tfRef "gitea_repository.${repo}.id"; title = host.hostname; read_only = true; key = host.hostkey; 49 }; 50 } )list)) allowed_repositories)); 51 52 "adguard_rewrite" = builtins.listToAttrs (lib.flatten (map (host: (map (domain: (map (addr: { 53 name = host.name + "_" + (builtins.replaceStrings [ "." ] [ "_" ] domain); value = { 54 domain = domain; answer = if (builtins.hasAttr "inet" addr) then (addr.inet) else (addr.inet6); 55 }; 56 }) (builtins.filter (builtins.hasAttr "inet") (hosts.${host.name}.ip)))) (host.value))) (domains-host))); 57 }; 58 }