From 30955159635a6551f0dcd58ef8a687633f778c25 Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Mon, 4 May 2026 00:00:06 -0400 Subject: [PATCH] feat(conduit): add package and home module --- .../evanreichard@lin-va-terminal/default.nix | 1 + .../programs/terminal/conduit/default.nix | 38 +++++++++++++++++++ packages/conduit/default.nix | 25 ++++++++++++ secrets/common/evanreichard.yaml | 5 ++- 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 modules/home/programs/terminal/conduit/default.nix create mode 100644 packages/conduit/default.nix diff --git a/homes/x86_64-linux/evanreichard@lin-va-terminal/default.nix b/homes/x86_64-linux/evanreichard@lin-va-terminal/default.nix index 26c9d4a..1030aef 100755 --- a/homes/x86_64-linux/evanreichard@lin-va-terminal/default.nix +++ b/homes/x86_64-linux/evanreichard@lin-va-terminal/default.nix @@ -28,6 +28,7 @@ in terminal = { bash = enabled; btop = enabled; + conduit = enabled; direnv = enabled; git = enabled; k9s = enabled; diff --git a/modules/home/programs/terminal/conduit/default.nix b/modules/home/programs/terminal/conduit/default.nix new file mode 100644 index 0000000..586e7dc --- /dev/null +++ b/modules/home/programs/terminal/conduit/default.nix @@ -0,0 +1,38 @@ +{ lib +, pkgs +, config +, namespace +, ... +}: +let + inherit (lib) mkIf; + cfg = config.${namespace}.programs.terminal.conduit; +in +{ + options.${namespace}.programs.terminal.conduit = { + enable = lib.mkEnableOption "conduit"; + }; + + config = mkIf cfg.enable { + # Add Conduit + home.packages = with pkgs; [ + reichard.conduit + ]; + + # Define Conduit Configuration + sops = { + secrets.conduit_apikey = { + sopsFile = lib.snowfall.fs.get-file "secrets/common/evanreichard.yaml"; + }; + templates."conduit.json" = { + path = "${config.xdg.configHome}/conduit/config.json"; + content = builtins.toJSON { + server = "https://conduit.va.reichard.io"; + api_key = "${config.sops.placeholder.conduit_apikey}"; + log_level = "info"; + log_format = "text"; + }; + }; + }; + }; +} diff --git a/packages/conduit/default.nix b/packages/conduit/default.nix new file mode 100644 index 0000000..dcb2724 --- /dev/null +++ b/packages/conduit/default.nix @@ -0,0 +1,25 @@ +{ lib +, buildGoModule +, fetchgit +}: + +buildGoModule rec { + pname = "conduit"; + version = "unstable-2026-05-03"; + + src = fetchgit { + url = "https://gitea.va.reichard.io/evan/conduit.git"; + rev = "9edea27148670b208c935c070ff3f58a416241b1"; + hash = "sha256-s8/ghyoAyFOvAMhE7vzckEZ8OxIF116OyJ4Uj30s65A="; + }; + + vendorHash = "sha256-LOFT8eCNRm5Q2tVl7ifu4dB5cr828B/E2NJW5WiW0LI="; + + meta = { + description = "Self-hosted tunneling service"; + homepage = "https://gitea.va.reichard.io/evan/conduit"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ evanreichard ]; + mainProgram = "conduit"; + }; +} diff --git a/secrets/common/evanreichard.yaml b/secrets/common/evanreichard.yaml index 9846d5f..223c451 100644 --- a/secrets/common/evanreichard.yaml +++ b/secrets/common/evanreichard.yaml @@ -1,3 +1,4 @@ +conduit_apikey: ENC[AES256_GCM,data:4mjvEI00V7nAhPkDa97eOfLCqItxoRALFe8OdxzUiUc=,iv:2mtSu1LDUvaneTnqs3Z4GVAj+HuAY2+VXrpIITSg/64=,tag:trkgxyX0ssCjyKMB42bFGg==,type:str] context7_apikey: ENC[AES256_GCM,data:K8/OoJMWBhN3ufmTa/tAiD3iMergDZQ1OBucUtLsrg+L26DXDPAko9D41w==,iv:/IVpaaPivUTn2rbIAPIwyN5nb7TmtDh05YlMdOlBkhE=,tag:0XJfoNlDelBwMXMAAqKjtQ==,type:str] zai_apikey: ENC[AES256_GCM,data:eNgIfEqs8JGM7Qo6D5KMMqRF8fd1qLakYQ9F5oEDUvLqPJ+TAktz8GMVuSndwW5BxA==,iv:eR8IR/MDmhk2JUoT2chCwRYOJGfxEBFGARf1CI7EG8Q=,tag:3fmRWA5eof304WSWKntDFg==,type:str] kagi_token: ENC[AES256_GCM,data:6pxxMMQ3RCy6sdUFiuAy8rUzsIMMiBgPzphpgTVMfiHC98ejgVolvFszR8SHwEgTxMzzc8wMs3Eun8PzkZQt+7lqIKeNWeauiXJAHIsMZiaBJVDrxXVW,iv:zz48rUwbxAGV5+eff0Sg5Q5Pm1lGvOScUwo+g0t02z8=,tag:XgvUbgmOnXxYBZbXe3/Wkg==,type:str] @@ -67,7 +68,7 @@ sops: TC91cmtZWm03dzYwS2E3dkorNkdFY2sKj5OZHOtKx1NGPSGKsWjC/8+seUAhvmxb wQ0iuPAq6yDLhYV69n7Jx4G9fKoidLIQxq+Ia+tLcYt58UDX7aixJQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-05-03T02:31:38Z" - mac: ENC[AES256_GCM,data:SoiXTkxs4iT/pi0H3IVMP18NubVeKGx4fRHVHUtcbIUeb2ssXV77EZFchknZQRz0yq8KeQpdT0F/TW0qIRAbna3RAkKEHv9tM9/Nqe9QRwEjmCkuRLTozJT9eQnNvQFbmXIgfvb+eT+WsES6k3IG3T86gEr8CVwci9GMYSjvM70=,iv:PzhIUY/xboooroXjeALJJPGtdQdpC82XhrC2lvbl02U=,tag:/P3j5m41uOs1xrYrKnCe+g==,type:str] + lastmodified: "2026-05-04T03:17:35Z" + mac: ENC[AES256_GCM,data:hFnRRENIaWa+Yidk7JqY+XMZ4xyekQLY9MMSgo5j4w7UI+Fb82RpNjmFrOS13ck7kKS+CVLWrFSEDxWJYcjHyLE5btoi06SFiZYfDF0JlOfq6e+loTj+TqhyWyJoQ3ZYaj9weak+qCroN4q88EWrle3Rlw0b/67lnkkzYJYYOlk=,iv:i9DVooO/9Gjr+yWaEkdXEWABAyrp8qNPt48EzqoEfiA=,tag:8hYmoJ9p3fse9eckhYqkvg==,type:str] unencrypted_suffix: _unencrypted version: 3.12.1