forked from aylac.top/nixcfg
this repo has no description
1{ 2 config, 3 lib, 4 ... 5}: let 6 name = "tangled-knot"; 7 cfg = config.myNixOS.services.${name}; 8 9 network = config.mySnippets.aylac-top; 10 service = network.networkMap.${name}; 11in { 12 options.myNixOS.services.${name} = { 13 enable = lib.mkEnableOption "${name} server"; 14 autoProxy = lib.mkOption { 15 default = true; 16 example = false; 17 description = "${name} auto proxy"; 18 type = lib.types.bool; 19 }; 20 }; 21 22 config = lib.mkIf cfg.enable { 23 services = { 24 caddy.virtualHosts = lib.mkIf cfg.autoProxy { 25 "${service.vHost}" = { 26 extraConfig = '' 27 encode gzip zstd 28 reverse_proxy ${service.hostName}:${toString service.port} 29 ''; 30 }; 31 32 "ssh.${service.vHost}" = { 33 extraConfig = '' 34 encode gzip zstd 35 reverse_proxy ${service.hostName}:22 36 ''; 37 }; 38 }; 39 40 tangled-knot = { 41 enable = true; 42 openFirewall = true; 43 stateDir = "/home/git"; 44 server = { 45 owner = "did:plc:3c6vkaq7xf5kz3va3muptjh5"; 46 hostname = service.vHost; 47 listenAddr = "0.0.0.0:${toString service.port}"; 48 }; 49 }; 50 }; 51 }; 52}