Archived
SOPS_AGE_KEY_FILE was set in hosts/nixos/home.nix sessionVariables with a literal ~ that Home Manager injects as-is into the environment. In bash, tilde expansion does not happen inside double-quoted variable references, so DEFAULT_SOPS_AGE_KEY_FILE resolved to ~/... literally and the -s file-existence check in ensure_admin_decrypt_key silently failed. The script then generated a brand-new age key (to ~/... relative to the repo root) while the real admin key at ~/.config/sops/age/keys.txt went untouched -- making it appear the key was lost when it was actually still intact. Fix the home.nix root cause by using config.home.homeDirectory so the path is fully resolved. Add tilde expansion in ensure_admin_decrypt_key as a belt-and-suspenders guard for any caller whose environment has the same issue. Also replace the auto-generate-a-new-key fallback with a hard failure: auto- generating a new admin key is never useful (it cannot decrypt existing secrets) and created serious confusion about whether the original key was lost. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
2.7 KiB
Nix
87 lines
2.7 KiB
Nix
{ config, pkgs, lib, vars, ... }:
|
|
|
|
{
|
|
|
|
imports = [
|
|
../../modules/common/aliases.nix
|
|
];
|
|
|
|
home = {
|
|
username = vars.primaryUser;
|
|
homeDirectory = "/home/${vars.primaryUser}";
|
|
stateVersion = "25.05"; # match your NixOS stateVersion
|
|
|
|
# Optional: packages
|
|
packages = with pkgs; [
|
|
git
|
|
vim
|
|
tmux
|
|
nextcloud-client
|
|
# vscode
|
|
chromium
|
|
claude-code
|
|
fish
|
|
sops
|
|
];
|
|
|
|
# Optional: set environment vars
|
|
sessionVariables = {
|
|
EDITOR = "vim";
|
|
SOPS_AGE_KEY_FILE = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
|
};
|
|
|
|
file = {
|
|
".local/share/applications/proxmox-chromium-app.desktop".text = ''
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Proxmox (Chromium)
|
|
Exec=chromium --app=https://pve.${vars.homeDomain}:${toString vars.ports.pveWeb} --window-size=1920,1080 --window-position=0,0
|
|
Icon=${config.home.homeDirectory}/.local/share/icons/proxmox.png
|
|
Terminal=false
|
|
Categories=Hypervisor;
|
|
StartupWMClass=PVE
|
|
'';
|
|
".local/share/applications/pbs-chromium-app.desktop".text = ''
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Proxmox Backup Server (Chromium)
|
|
Exec=chromium --app=https://${vars.pbsIp}:${toString vars.ports.pbsWeb} --window-size=1920,1080 --window-position=0,0
|
|
Icon=${config.home.homeDirectory}/.local/share/icons/proxmox.png
|
|
Terminal=false
|
|
Categories=backup;
|
|
|
|
'';
|
|
".local/share/applications/proxmox-firefox-app.desktop".text = ''
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Proxmox (Firefox)
|
|
Exec=firefox --new-instance https://pve.${vars.homeDomain}:${toString vars.ports.pveWeb} --profile ProxmoxWebApp --window-size=1920,1080 --class ProxmoxWebApp
|
|
Icon=${config.home.homeDirectory}/.local/share/icons/proxmox.png
|
|
Terminal=false
|
|
Categories=Hypervisor;
|
|
StartupWMClass=PVE
|
|
'';
|
|
".local/share/applications/pbs-firefox-app.desktop".text = ''
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Proxmox Backup Server (Firefox)
|
|
Exec=firefox --new-window https://${vars.pbsIp}:${toString vars.ports.pbsWeb} --profile PbsWebApp --window-size=1920,1080 --class PbsWebApp
|
|
Icon=${config.home.homeDirectory}/.local/share/icons/proxmox.png
|
|
Terminal=false
|
|
Categories=backup;
|
|
StartupWMClass=PBS
|
|
'';
|
|
};
|
|
};
|
|
|
|
programs.home-manager.enable = true; # mandatory to activate HM
|
|
|
|
# Optional: enable bash (or zsh, fish...)
|
|
programs.bash.enable = true;
|
|
services.nextcloud-client = {
|
|
enable = true;
|
|
# Optionally start in background directly
|
|
startInBackground = true;
|
|
};
|
|
}
|