Commit 3c8d4bd3c0d9
Changed files (3)
dots
config
dots/config/boox/generate-ssh-config.nix
@@ -0,0 +1,78 @@
+# Generate SSH config for Boox (osaka) Termux
+# Usage: nix eval --raw -f dots/config/boox/generate-ssh-config.nix
+# Or: make boox/ssh-config
+let
+ pkgs = import <nixpkgs> { };
+ lib = pkgs.lib;
+ globals = import ../../../globals.nix { };
+
+ # Generate host entries from globals.machines
+ # Only VPN hosts (Boox connects via WireGuard, not LAN)
+ hostEntries = lib.concatStrings (
+ lib.attrsets.mapAttrsToList (
+ _name: machine:
+ let
+ vpnIps = lib.attrsets.attrByPath [ "net" "vpn" "ips" ] [ ] machine;
+ names = lib.attrsets.attrByPath [ "net" "names" ] [ ] machine;
+ vpnNames = builtins.filter (n: lib.strings.hasSuffix ".vpn" n) names;
+ sbrNames = builtins.filter (n: lib.strings.hasSuffix ".sbr.pm" n) names;
+ homeNames = builtins.filter (n: lib.strings.hasSuffix ".home" n) names;
+ in
+ lib.optionalString (vpnIps != [ ]) (
+ lib.concatStrings (
+ # VPN entries
+ map (n: ''
+
+ Host ${n}
+ HostName ${builtins.head vpnIps}
+ User vincent
+ '') vpnNames
+ # .sbr.pm entries (use DNS)
+ ++ map (n: ''
+
+ Host ${n}
+ HostName ${n}
+ User vincent
+ '') sbrNames
+ # .home entries (LAN IP)
+ ++ lib.optionals (lib.attrsets.attrByPath [ "net" "ips" ] [ ] machine != [ ]) (
+ map (n: ''
+
+ Host ${n}
+ HostName ${builtins.head machine.net.ips}
+ User vincent
+ '') homeNames
+ )
+ )
+ )
+ ) globals.machines
+ );
+in
+''
+ # Boox (osaka) SSH config — auto-generated from globals.nix
+ # Do not edit manually! Regenerate with: make boox/ssh-config
+ #
+ # Generated entries: VPN, LAN, and .sbr.pm hosts
+
+ Host *
+ ServerAliveInterval 60
+ AddKeysToAgent yes
+ IdentityFile ~/.ssh/id_ed25519
+ StrictHostKeyChecking accept-new
+
+ # === Homelab ===
+ ${hostEntries}
+ # === Git forges ===
+
+ Host github.com
+ User git
+ IdentityFile ~/.ssh/id_ed25519
+
+ Host gitlab.com
+ User git
+ IdentityFile ~/.ssh/id_ed25519
+
+ Host codeberg.org
+ User git
+ IdentityFile ~/.ssh/id_ed25519
+''
dots/config/boox/ssh_config
@@ -1,5 +1,7 @@
-# Boox (osaka) SSH config — generated from homelab globals
-# Simplified: no FIDO2, no shpool, plain ed25519 key
+# Boox (osaka) SSH config — auto-generated from globals.nix
+# Do not edit manually! Regenerate with: make boox/ssh-config
+#
+# Generated entries: VPN, LAN, and .sbr.pm hosts
Host *
ServerAliveInterval 60
@@ -7,68 +9,200 @@ Host *
IdentityFile ~/.ssh/id_ed25519
StrictHostKeyChecking accept-new
-# === Homelab (VPN) ===
-
-Host athena.vpn
- HostName 10.100.0.83
- User vincent
-
-Host demeter.vpn
- HostName 10.100.0.82
- User vincent
-
-Host rhea.vpn
- HostName 10.100.0.50
- User vincent
+# === Homelab ===
Host aion.vpn
HostName 10.100.0.49
User vincent
-Host kerkouane.vpn
- HostName 10.100.0.1
+Host aion.sbr.pm
+ HostName aion.sbr.pm
User vincent
-Host shikoku.vpn
- HostName 10.100.0.2
- User vincent
-
-Host nagoya.vpn
- HostName 10.100.0.80
- User vincent
-
-Host kyushu.vpn
- HostName 10.100.0.17
- User vincent
-
-Host aomi.vpn
- HostName 10.100.0.17
- User vincent
-
-Host sakhalin.vpn
- HostName 10.100.0.16
- User vincent
-
-Host okinawa.vpn
- HostName 10.100.0.14
- User vincent
-
-Host wakasu.vpn
- HostName 10.100.0.8
- User vincent
-
-Host hass.vpn
- HostName 10.100.0.81
+Host aion.home
+ HostName 192.168.1.49
User vincent
Host aix.vpn
HostName 10.100.0.89
User vincent
+Host aix.sbr.pm
+ HostName aix.sbr.pm
+ User vincent
+
+Host aomi.vpn
+ HostName 10.100.0.17
+ User vincent
+
+Host aomi.sbr.pm
+ HostName aomi.sbr.pm
+ User vincent
+
+Host aomi.home
+ HostName 192.168.1.23
+ User vincent
+
+Host athena.vpn
+ HostName 10.100.0.83
+ User vincent
+
+Host athena.sbr.pm
+ HostName athena.sbr.pm
+ User vincent
+
+Host athena.home
+ HostName 192.168.1.183
+ User vincent
+
Host carthage.vpn
HostName 10.100.0.1
User vincent
+Host carthage.sbr.pm
+ HostName carthage.sbr.pm
+ User vincent
+
+Host demeter.vpn
+ HostName 10.100.0.82
+ User vincent
+
+Host demeter.sbr.pm
+ HostName demeter.sbr.pm
+ User vincent
+
+Host demeter.home
+ HostName 192.168.1.182
+ User vincent
+
+Host hass.vpn
+ HostName 10.100.0.81
+ User vincent
+
+Host hass.sbr.pm
+ HostName hass.sbr.pm
+ User vincent
+
+Host hass.home
+ HostName 192.168.1.181
+ User vincent
+
+Host hokkaido.vpn
+ HostName 10.100.0.5
+ User vincent
+
+Host hokkaido.sbr.pm
+ HostName hokkaido.sbr.pm
+ User vincent
+
+Host hokkaido.home
+ HostName 192.168.1.115
+ User vincent
+
+Host kerkouane.vpn
+ HostName 10.100.0.1
+ User vincent
+
+Host kerkouane.sbr.pm
+ HostName kerkouane.sbr.pm
+ User vincent
+
+Host kyushu.vpn
+ HostName 10.100.0.19
+ User vincent
+
+Host kyushu.sbr.pm
+ HostName kyushu.sbr.pm
+ User vincent
+
+Host kyushu.home
+ HostName 192.168.1.36
+ User vincent
+
+Host nagoya.vpn
+ HostName 10.100.0.80
+ User vincent
+
+Host nagoya.sbr.pm
+ HostName nagoya.sbr.pm
+ User vincent
+
+Host nagoya.home
+ HostName 192.168.1.80
+ User vincent
+
+Host okinawa.vpn
+ HostName 10.100.0.14
+ User vincent
+
+Host okinawa.sbr.pm
+ HostName okinawa.sbr.pm
+ User vincent
+
+Host okinawa.home
+ HostName 192.168.1.42
+ User vincent
+
+Host osaka.vpn
+ HostName 10.100.0.64
+ User vincent
+
+Host osaka.sbr.pm
+ HostName osaka.sbr.pm
+ User vincent
+
+Host rhea.vpn
+ HostName 10.100.0.50
+ User vincent
+
+Host rhea.sbr.pm
+ HostName rhea.sbr.pm
+ User vincent
+
+Host rhea.home
+ HostName 192.168.1.50
+ User vincent
+
+Host sakhalin.vpn
+ HostName 10.100.0.16
+ User vincent
+
+Host sakhalin.sbr.pm
+ HostName sakhalin.sbr.pm
+ User vincent
+
+Host sakhalin.home
+ HostName 192.168.1.70
+ User vincent
+
+Host shikoku.vpn
+ HostName 10.100.0.2
+ User vincent
+
+Host shikoku.sbr.pm
+ HostName shikoku.sbr.pm
+ User vincent
+
+Host shikoku.home
+ HostName 192.168.1.24
+ User vincent
+
+Host suzu.vpn
+ HostName 10.100.0.65
+ User vincent
+
+Host suzu.sbr.pm
+ HostName suzu.sbr.pm
+ User vincent
+
+Host wakasu.vpn
+ HostName 10.100.0.8
+ User vincent
+
+Host wakasu.sbr.pm
+ HostName wakasu.sbr.pm
+ User vincent
+
# === Git forges ===
Host github.com
Makefile
@@ -91,6 +91,11 @@ fmt: ## Format Nix files
dots: ## Build dotfiles
@$(MAKE) -C dots
+.PHONY: boox/ssh-config
+boox/ssh-config: ## Generate Boox SSH config from globals.nix
+ nix eval --raw -f dots/config/boox/generate-ssh-config.nix > dots/config/boox/ssh_config
+ @echo "✅ dots/config/boox/ssh_config regenerated"
+
##@ Keyboards
.PHONY: keyboards keyboards/moonlander/build keyboards/moonlander/flash keyboards/moonlander/update keyboards/moonlander/clean