Compare commits

...

4 commits

Author SHA1 Message Date
16ebf17d51
fix (ssh): incorrect hostname for code.millironx.com 2026-04-13 11:36:21 -05:00
804132ae4f
feat (common): Add ssh support
This removes GPG agent support for SSH. The GPG agent will still be in
charge of signing git commits. Default user keys will still be used for
encryption (i.e. agenix) purposes.
2026-04-08 22:39:31 -05:00
20efe752c2
chore (odyssey): Update AnythingLLM container 2026-04-08 22:37:16 -05:00
325bc887ef
fix (zed): nixd home-manager autocomplete 2026-04-08 22:36:49 -05:00
5 changed files with 79 additions and 5 deletions

View file

@ -6,6 +6,7 @@
./../programs/git.nix ./../programs/git.nix
./../programs/lsd.nix ./../programs/lsd.nix
./../programs/neovim.nix ./../programs/neovim.nix
./../programs/ssh.nix
./../programs/starship.nix ./../programs/starship.nix
./../programs/tmux.nix ./../programs/tmux.nix
./../programs/yt-dlp.nix ./../programs/yt-dlp.nix

View file

@ -19,7 +19,7 @@
anythingllm = { anythingllm = {
autoStart = true; autoStart = true;
containerConfig = { containerConfig = {
image = "docker.io/mintplexlabs/anythingllm:1.9"; image = "docker.io/mintplexlabs/anythingllm:latest";
addHosts = [ "ollama.millironx.local:host-gateway" ]; addHosts = [ "ollama.millironx.local:host-gateway" ];
publishPorts = [ "3001:3001" ]; publishPorts = [ "3001:3001" ];
volumes = volumes =

73
programs/ssh.nix Normal file
View file

@ -0,0 +1,73 @@
{ pkgs, lib, config, hostname, ... }:
let
sshIdPath = host: "~/.ssh/id_ed25519__${host}";
tailnetConfig = host: { identityFile = sshIdPath host; };
gitConfig = host: tailnetConfig host // { user = "git"; };
tailnetHosts = [ "anderson" "mcentire" "bosephus" ];
gitHosts = [ "github.com" "gitlab.com" "codeberg.org" "code.millironx.com" ];
tailnetMatchBlocks =
lib.genAttrs (lib.lists.remove hostname tailnetHosts) tailnetConfig;
gitMatchBlocks = lib.genAttrs gitHosts gitConfig // {
"code.millironx.com" = (gitConfig "code.millironx.com") // {
proxyCommand = "ssh anderson -W localhost:2222";
hostname = "code.millironx.com";
};
};
in {
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = { identitiesOnly = true; };
"aahz" = {
hostname = "nistac-108-37.dhcp.ksu.edu";
user = "tchristensen";
identityFile = sshIdPath "aahz";
};
"skeeve" = {
hostname = "129.130.108.157";
user = "tchristensen";
identityFile = sshIdPath "skeeve";
};
"ceres" = {
hostname = "ceres.scinet.usda.gov";
user = "thomas.christensen";
identitiesOnly = false;
serverAliveInterval = 20;
serverAliveCountMax = 30;
extraOptions = { TCPKeepAlive = "yes"; };
};
"atlas" = {
hostname = "Atlas-login-1.hpc.msstate.edu";
user = "thomas.christensen";
identitiesOnly = false;
serverAliveInterval = 20;
serverAliveCountMax = 30;
extraOptions = { TCPKeepAlive = "yes"; };
};
"atlas-dtn" = {
hostname = "Atlas-dtn.hpc.msstate.edu";
user = "thomas.christensen";
identitiesOnly = false;
};
"code.millironx.com" = {
proxyCommand = "ssh anderson -W localhost:2222";
};
} // tailnetMatchBlocks // gitMatchBlocks;
};
home.packages = let
# Answer no to overwrite questions
keygen = host: ''
yes "n" | \
ssh-keygen \
-t ed25519 \
-f ~/.ssh/id_ed25519__${host} \
-C "millironx@${hostname}" \
-N ""
'';
in [
(pkgs.writeShellScriptBin "ssh-bootstrap-keys"
(builtins.concatStringsSep "\n" (map keygen (tailnetHosts ++ gitHosts))))
];
}

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { { pkgs, hostname, ... }: {
programs.zed-editor = { programs.zed-editor = {
enable = true; enable = true;
package = null; package = null;
@ -60,8 +60,8 @@
lsp = { lsp = {
nil = { settings.nix.flake.autoArchive = true; }; nil = { settings.nix.flake.autoArchive = true; };
nixd = { nixd = {
settings.options.home-manager.expr = settings.options.home-manager.expr = ''
"(builtins.getFlake (builtins.toString ./.)).homeConfigurations.<name>.options"; (builtins.getFlake (builtins.toString ~/.config/home-manager)).homeConfigurations."millironx@${hostname}".options'';
}; };
texlab = { texlab = {
settings = { settings = {

View file

@ -2,7 +2,7 @@
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;
enableSshSupport = true; enableSshSupport = false;
enableZshIntegration = true; enableZshIntegration = true;
defaultCacheTtl = 604800; defaultCacheTtl = 604800;
maxCacheTtl = 604800; maxCacheTtl = 604800;