nix-config/hosts/poppy/default.nix
mikl 355f5eb9f1
poppy: add pi -> 127.0.0.1 alias for local pi-web
Декларативное правило в /etc/hosts через extraActivation,
чтобы работала короткая ссылка http://pi:30141 на локальный
pi-web (@agegr/pi-web, порт 30141). Идемпотентно.
2026-07-13 15:40:07 +03:00

45 lines
1.5 KiB
Nix

{ pkgs, ... }: {
imports = [ ./apps.nix ./system.nix ];
networking.hostName = "poppy";
# Локальное короткое имя pi -> 127.0.0.1 для pi-web.
# Запуск: npm exec @agegr/pi-web@latest --hostname 0.0.0.0 --port 30141
# Ссылка: http://pi:30141
# (networking.hosts в nix-darwin отсутствует; /etc/hosts правится
# идемпотентно через extraActivation — один из хуков, реально
# вызываемых в activate-скрипте.)
system.activationScripts.extraActivation.text = ''
if ! grep -qE '^[0-9.]+[[:space:]]+pi($|[[:space:]])' /etc/hosts; then
printf '127.0.0.1\tpi # pi-web local alias\n' >> /etc/hosts
fi
'';
system.primaryUser = "mikl";
system.stateVersion = 7;
nixpkgs.config.allowUnfree = true;
nix.enable = false;
users.users.mikl = {
home = "/Users/mikl";
shell = pkgs.zsh;
};
environment.systemPackages = [ pkgs.vim ];
# Apply default apps via duti on activation
system.activationScripts.defaultApps.text = ''
if [ -f "/Users/mikl/.config/duti/config" ]; then
${pkgs.duti}/bin/duti -d /Users/mikl/.config/duti/config || true
fi
'';
home-manager.users.mikl = {
imports = [ ../../home/kitty.nix ../../home/duti.nix ];
programs.zsh.shellAliases = {
switch = "darwin-rebuild switch --flake .#poppy";
update = "nix flake update && darwin-rebuild switch --flake .#poppy";
cleanup = "nix-collect-garbage -d";
};
};
}