Set up astyanax host

main
Hektor Misplon 2025-11-11 23:35:48 +01:00
parent d876d02313
commit a68a903b9e
7 changed files with 205 additions and 104 deletions

View File

@ -44,7 +44,21 @@
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./hosts/vm/configuration.nix ./hosts/vm/configuration.nix
nix-topology.nixosModules.default nix-topology.nixosModules.default
{ environment.systemPackages = [ nvim.packages.x86_64-linux.nvim ]; } {
environment.systemPackages = [ nvim.packages.x86_64-linux.nvim ];
}
];
};
astyanax = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
disko.nixosModules.disko
home-manager.nixosModules.home-manager
./hosts/astyanax/configuration.nix
nix-topology.nixosModules.default
{
environment.systemPackages = [ nvim.packages.x86_64-linux.nvim ];
}
]; ];
}; };
}; };

View File

@ -0,0 +1,101 @@
{ config, pkgs, ... }:
{
home.stateVersion = "25.05";
home.username = "h";
home.homeDirectory = "/home/h";
programs = {
bash = {
enable = true;
enableCompletion = true;
initExtra = ''
for f in ${config.home.homeDirectory}/.bashrc.d/*; do
[ -f "$f" ] && source "$f"
done
source ${config.home.homeDirectory}/.bash_aliases/all
source ${config.home.homeDirectory}/.bash_aliases/lang-js
# host-specific config goes here
# ...
export PATH=${../../../dots/.bin}:$PATH
'';
};
firefox.enable = true;
fzf = {
enable = true;
enableBashIntegration = true;
};
git.enable = true;
home-manager.enable = true;
};
home.packages = with pkgs; [
bash-completion
bash-language-server
bat
brightnessctl
entr
eslint_d
feh
firefox-devedition
fzf
git
haskell-language-server
haskellPackages.pandoc-crossref
haskellPackages.hadolint
htop
jq
keepassxc
kitty
lua-language-server
# neovim
nixfmt-rfc-style
nmap
nodejs_24
nodePackages.ts-node
nvimpager
ormolu
pandoc
parallel
pass
pnpm
ripgrep
silver-searcher
sshfs
stylelint
svelte-language-server
tailwindcss-language-server
taskwarrior3
tldr
tmux
tmuxp
tree
tree-sitter
typescript-language-server
unzip
vim-language-server
vimPlugins.vim-plug
vtsls
wget
xbanish
xclip
yaml-language-server
];
home.file = {
".inputrc".source = ../../../dots/.inputrc;
".bashrc.d/prompt".source = ../../../dots/.bashrc.d/prompt;
".bashrc.d/editor".source = ../../../dots/.bashrc.d/editor;
".bash_aliases/all".source = ../../../dots/.bash_aliases/all;
".bash_aliases/lang-js".source = ../../../dots/.bash_aliases/lang-js;
".config/kitty/kitty.conf".source = ../../../dots/.config/kitty/kitty.conf;
".config/kitty/themes/zenwritten_light.conf".source =
../../../dots/.config/kitty/themes/zenwritten_light.conf;
".config/kitty/themes/zenwritten_dark.conf".source =
../../../dots/.config/kitty/themes/zenwritten_dark.conf;
};
}

View File

@ -1,100 +1 @@
{ config, pkgs, ... }: import ../astyanax
{
home.stateVersion = "25.05";
home.username = "h";
home.homeDirectory = "/home/h";
programs = {
bash = {
enable = true;
enableCompletion = true;
initExtra = ''
for f in ${config.home.homeDirectory}/.bashrc.d/*; do
[ -f "$f" ] && source "$f"
done
source ${config.home.homeDirectory}/.bash_aliases/all
source ${config.home.homeDirectory}/.bash_aliases/lang-js
# host-specific config goes here
# ...
export PATH=${../../../dots/.bin}:$PATH
'';
};
firefox.enable = true;
fzf = {
enable = true;
enableBashIntegration = true;
};
git.enable = true;
home-manager.enable = true;
};
home.packages = with pkgs; [
bash-completion
bash-language-server
bat
brightnessctl
entr
eslint_d
feh
firefox-devedition
fzf
git
haskell-language-server
haskellPackages.pandoc-crossref
haskellPackages.hadolint
htop
jq
keepassxc
kitty
lua-language-server
# neovim
nmap
nodejs_24
nodePackages.ts-node
nvimpager
ormolu
pandoc
parallel
pass
pnpm
ripgrep
silver-searcher
sshfs
stylelint
svelte-language-server
tailwindcss-language-server
taskwarrior3
tldr
tmux
tmuxp
tree
tree-sitter
typescript-language-server
unzip
vim-language-server
vimPlugins.vim-plug
vtsls
wget
xbanish
xclip
yaml-language-server
];
home.file = {
".inputrc".source = ../../../dots/.inputrc;
".bashrc.d/prompt".source = ../../../dots/.bashrc.d/prompt;
".bashrc.d/editor".source = ../../../dots/.bashrc.d/editor;
".bash_aliases/all".source = ../../../dots/.bash_aliases/all;
".bash_aliases/lang-js".source = ../../../dots/.bash_aliases/lang-js;
".config/kitty/kitty.conf".source = ../../../dots/.config/kitty/kitty.conf;
".config/kitty/themes/zenwritten_light.conf".source =
../../../dots/.config/kitty/themes/zenwritten_light.conf;
".config/kitty/themes/zenwritten_dark.conf".source =
../../../dots/.config/kitty/themes/zenwritten_dark.conf;
};
}

View File

@ -1,3 +1,4 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
with pkgs; [ ] with pkgs;
[ ]

View File

@ -0,0 +1,46 @@
{ ... }:
{
system.stateVersion = "25.05";
imports = [
./hard.nix
../../modules/bootloader.nix
../../modules/disko.zfs-encrypted-root.nix
../../modules/keyboard
../../modules/networking.nix
../../modules/users.nix
../../modules/audio.nix
../../modules/printing.nix
../../modules/localization.nix
../../modules/fonts
../../modules/ssh/hardened-openssh.nix
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nixpkgs.config.allowUnfree = true;
services.xserver = {
displayManager.gdm.enable = true;
displayManager.gdm.wayland = true;
desktopManager.gnome.enable = true;
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.h = ../../home/hosts/astyanax;
};
networking.hostId = "80eef97e";
networking.firewall.allowedTCPPorts = [ 22 ];
services.openssh = {
enable = true;
harden = true;
};
}

38
hosts/astyanax/hard.nix Normal file
View File

@ -0,0 +1,38 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
"uas"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@ -23,6 +23,8 @@
"flakes" "flakes"
]; ];
nixpkgs.config.allowUnfree = true;
disko = { disko = {
devices.disk.main.device = "/dev/vda"; devices.disk.main.device = "/dev/vda";
devices.disk.main.imageName = "nixos-vm"; devices.disk.main.imageName = "nixos-vm";
@ -41,8 +43,6 @@
}; };
}; };
nixpkgs.config.allowUnfree = true;
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;