diff --git a/configurations/nixos/pureintent/default.nix b/configurations/nixos/pureintent/default.nix index ce58010..b9ff1be 100644 --- a/configurations/nixos/pureintent/default.nix +++ b/configurations/nixos/pureintent/default.nix @@ -25,6 +25,7 @@ in imports = [ self.nixosModules.default ./configuration.nix + ./devbox.nix (self + /modules/nixos/linux/beszel.nix) (self + /modules/nixos/linux/incus) ]; diff --git a/configurations/nixos/pureintent/devbox.nix b/configurations/nixos/pureintent/devbox.nix new file mode 100644 index 0000000..25d0341 --- /dev/null +++ b/configurations/nixos/pureintent/devbox.nix @@ -0,0 +1,33 @@ +# Depends on programs.jumphost.socks5Proxy (https://github.com/srid/jumphost-nix) +# for the local SOCKS5 listener. See modules/home/work/juspay.nix:29-31. +{ config, flake, pkgs, ... }: + +let + socksPort = config.home-manager.users.${flake.config.me.username}.programs.jumphost.socks5Proxy.port; + + proxychainsBin = "${config.programs.proxychains.package}/bin/proxychains4"; + + devbox-run = pkgs.writeShellScriptBin "devbox-run" '' + export ALL_PROXY=socks5://127.0.0.1:${toString socksPort} + export HTTPS_PROXY=socks5://127.0.0.1:${toString socksPort} + export HTTP_PROXY=socks5://127.0.0.1:${toString socksPort} + exec ${proxychainsBin} "$@" + ''; +in +{ + programs.proxychains = { + enable = true; + chain.type = "strict"; + proxyDNS = true; + proxies.devbox = { + enable = true; + type = "socks5"; + host = "127.0.0.1"; + port = socksPort; + }; + }; + + environment.systemPackages = [ + devbox-run + ]; +}