heather: switch to make-disk-image (qcow2 for YC), drop disko
- Rename muscari -> heather (YC VM). rosemary reserved for future EU server. - Add hosts/heather/image.nix: YC guest profile + qcow2 build target based on nixos/lib/make-disk-image.nix (the nixpkgs-standard cloud image builder). partitionTableType=legacy (MBR + single ext4 root, label nixos), GRUB in MBR on /dev/vda, virtio drivers, console=ttyS0, cloud-init (Ec2 datasource) so poppy ssh key auto-lands from YC metadata, growPartition. - Drop disko flake input + disk-config.nix (was only for nixos-anywhere runtime install; replaced by make-disk-image build-time approach, no kexec). - Add home/server.nix: minimal headless home for NixOS hosts (no ollama/ texliveFull/kitty/syncthing/pass). flake mkNixos uses it instead of full ./home. - k3s.nix: drop dead firewall block (firewall off in image.nix -> trustedInterfaces was a no-op). Cilium manages pod networking via BPF. - image.baseName=heather, configurationLimit=1, remove virtio dups (qemu-guest profile already provides most). - Fix sha256 pin on forgejo mikl.keys (was stale, would break fetchurl). - home/zsh.nix: source yandex-cloud yc completion.
This commit is contained in:
parent
c21268fb9b
commit
79260cec6f
9 changed files with 264 additions and 131 deletions
109
home/server.nix
Normal file
109
home/server.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
# Минимальный home-manager для headless NixOS-серверов (heather и будущие).
|
||||
# Не тянет десктопный мусор: ollama (~GB), texliveFull (~4GB), kitty, syncthing,
|
||||
# pass-with-extensions, duti (macOS), pnpm, gita и т.д.
|
||||
# Цель — лёгкий образ и быстрый rebuild. Только то, что нужно админу на сервере.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
# --- Пакеты: минимальный админский набор ---
|
||||
home.packages = with pkgs; [
|
||||
# Навигация/поиск
|
||||
eza
|
||||
bat
|
||||
ripgrep
|
||||
fd
|
||||
fzf
|
||||
tree
|
||||
|
||||
# Системное
|
||||
htop
|
||||
tmux
|
||||
|
||||
# Редактор
|
||||
vim
|
||||
|
||||
# Git
|
||||
git
|
||||
|
||||
# Nix
|
||||
alejandra # форматтер
|
||||
nix-output-monitor
|
||||
|
||||
# Утилиты
|
||||
delta # красивый git diff
|
||||
trash-cli # rm с корзиной
|
||||
];
|
||||
|
||||
# --- FZF ---
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
defaultCommand = "fd --type f --hidden --exclude .git";
|
||||
defaultOptions = [ "--height 40%" "--layout=reverse" "--border" ];
|
||||
};
|
||||
|
||||
# --- Zoxide ---
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
options = [ "--cmd cd" ];
|
||||
};
|
||||
|
||||
# --- Bat ---
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "Catppuccin Macchiato";
|
||||
italic-text = "always";
|
||||
style = "numbers,changes,header";
|
||||
};
|
||||
};
|
||||
|
||||
# --- Eza ---
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
git = true;
|
||||
};
|
||||
|
||||
# --- Git: сервер-минимум. Без SHA-signing/GPG (gpg агента на сервере нет),
|
||||
# с pull.rebase для чистой истории при правках прямо на хосте. ---
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "mikl";
|
||||
userEmail = "mikl@iscg.dev";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
diff.pager = "delta";
|
||||
};
|
||||
delta.enable = true;
|
||||
};
|
||||
|
||||
# --- Zsh: минимульный, без pure-prompt и fastfetch (это десктоп-флёр) ---
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
history = {
|
||||
size = 10000;
|
||||
save = 10000;
|
||||
ignoreDups = true;
|
||||
share = true;
|
||||
};
|
||||
shellAliases = {
|
||||
ll = "eza -l --icons --git";
|
||||
la = "eza -la --icons --git";
|
||||
};
|
||||
initContent = ''
|
||||
# Простой промпт для headless: user@host:path$
|
||||
autoload -U colors && colors
|
||||
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f$ '
|
||||
RPROMPT='%F{240}%D{%H:%M}%f'
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -87,6 +87,11 @@
|
|||
# Right prompt - time in gray
|
||||
RPROMPT='%F{240}%D{%H:%M:%S}%f'
|
||||
|
||||
# Yandex Cloud CLI completion
|
||||
if [ -f "$HOME/yandex-cloud/bin/completion.zsh.inc" ]; then
|
||||
source "$HOME/yandex-cloud/bin/completion.zsh.inc"
|
||||
fi
|
||||
|
||||
# Pure prompt customization
|
||||
zstyle ':prompt:pure:prompt:success' color green
|
||||
zstyle ':prompt:pure:prompt:success' symbol ">"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue