Marid: new machine init
This commit is contained in:
parent
2eb5762de3
commit
fe9ec52785
7 changed files with 329 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
keys:
|
keys:
|
||||||
- &admins 1F2EA6D9A57A9BE5A7F3AA035BEBEE4EE57DC7E2
|
- &admins 1F2EA6D9A57A9BE5A7F3AA035BEBEE4EE57DC7E2
|
||||||
- &lilim age1w3uhx6han0frfvg2t3t3wnwnzpkplzeyhun0dmqpkqwscmzlz4ms3elug4
|
- &lilim age1w3uhx6han0frfvg2t3t3wnwnzpkplzeyhun0dmqpkqwscmzlz4ms3elug4
|
||||||
|
- &marid age1uq4x5yqf92z343ycpf4jycv7fqwk2kk8t5gapzp0ayk8hay98fns5mwmt7
|
||||||
- &ophanim age1u386j7v4yrxm6psykfk4wyy5ay2ugcfcemve2msfwv0klnf3x34stz34du
|
- &ophanim age1u386j7v4yrxm6psykfk4wyy5ay2ugcfcemve2msfwv0klnf3x34stz34du
|
||||||
- &sheol age12uvysactuucun05nk8l3azpaclz9k04ygcurtlqqjg6dsvarvcqs0s9d2y
|
- &sheol age12uvysactuucun05nk8l3azpaclz9k04ygcurtlqqjg6dsvarvcqs0s9d2y
|
||||||
creation_rules:
|
creation_rules:
|
||||||
|
@ -10,6 +11,12 @@ creation_rules:
|
||||||
- *admins
|
- *admins
|
||||||
age:
|
age:
|
||||||
- *lilim
|
- *lilim
|
||||||
|
- path_regex: machines/Marid/[^/]+.yaml$
|
||||||
|
key_groups:
|
||||||
|
- pgp:
|
||||||
|
- *admins
|
||||||
|
age:
|
||||||
|
- *marid
|
||||||
- path_regex: machines/Ophanim/[^/]+.yaml$
|
- path_regex: machines/Ophanim/[^/]+.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
- pgp:
|
- pgp:
|
||||||
|
|
19
machines/Marid/configuration.nix
Normal file
19
machines/Marid/configuration.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
networking.dhcpcd.extraConfig = "noarp";
|
||||||
|
system.stateVersion = "25.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
services.gnome = {
|
||||||
|
evolution-data-server.enable = true;
|
||||||
|
gnome-keyring.enable = lib.mkForce false;
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
dconf.enable = true;
|
||||||
|
evolution = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ pkgs.evolution-ews ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [ pv ];
|
||||||
|
}
|
128
machines/Marid/hardware-configuration.nix
Normal file
128
machines/Marid/hardware-configuration.nix
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
# 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,
|
||||||
|
modulesPath,
|
||||||
|
nixos-hardware,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
nixos-hardware.nixosModules.lenovo-thinkpad-t14
|
||||||
|
];
|
||||||
|
|
||||||
|
console.keyMap = "de";
|
||||||
|
services.xserver.xkb.layout = "de";
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd = {
|
||||||
|
availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"thunderbolt"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
|
luks.devices."btrfs-crypt".device = "/dev/disk/by-uuid/d4f76a5f-bf47-4a03-b7dc-3a1a7f83c030";
|
||||||
|
kernelModules = [ ];
|
||||||
|
};
|
||||||
|
supportedFilesystems = [ "btrfs" ];
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "none";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = [
|
||||||
|
"defaults"
|
||||||
|
"size=8G"
|
||||||
|
"mode=755"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/tmp" = {
|
||||||
|
device = "/dev/mapper/btrfs-crypt";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=tmp"
|
||||||
|
"noatime"
|
||||||
|
"compress=zstd"
|
||||||
|
];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
"/persist" = {
|
||||||
|
device = "/dev/mapper/btrfs-crypt";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=persist"
|
||||||
|
"noatime"
|
||||||
|
"compress=zstd"
|
||||||
|
];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/mapper/btrfs-crypt";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=nix"
|
||||||
|
"noatime"
|
||||||
|
"compress=zstd"
|
||||||
|
];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
"/snapshots" = {
|
||||||
|
device = "/dev/mapper/btrfs-crypt";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=snapshots"
|
||||||
|
"noatime"
|
||||||
|
"compress=zstd"
|
||||||
|
];
|
||||||
|
neededForBoot = false;
|
||||||
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/4FE7-0CC9";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"fmask=0022"
|
||||||
|
"dmask=0022"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
powerManagement = {
|
||||||
|
enable = true;
|
||||||
|
cpuFreqGovernor = "powersave";
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
upower.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
time = {
|
||||||
|
timeZone = "Europe/Berlin";
|
||||||
|
hardwareClockInLocalTime = true;
|
||||||
|
};
|
||||||
|
networking.timeServers = [
|
||||||
|
"ntp1.zih.tu-dresden.de"
|
||||||
|
"ntp2.zih.tu-dresden.de"
|
||||||
|
];
|
||||||
|
}
|
48
machines/Marid/impermanence.nix
Normal file
48
machines/Marid/impermanence.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
impermanence,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
impermanence.nixosModules.impermanence
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.persistence."/persist" = {
|
||||||
|
hideMounts = true;
|
||||||
|
# TODO: Add default permissions
|
||||||
|
directories =
|
||||||
|
[
|
||||||
|
"/etc/nixos"
|
||||||
|
# Stores auto assigned user/group ids
|
||||||
|
"/var/lib/nixos"
|
||||||
|
"/var/log"
|
||||||
|
# User directories
|
||||||
|
"/home/derped/"
|
||||||
|
]
|
||||||
|
++ lib.optional config.services.ollama.enable "/var/lib/private/ollama"
|
||||||
|
++ lib.optional config.programs.virt-manager.enable "/var/lib/libvirt"
|
||||||
|
++ lib.optional config.networking.networkmanager.enable "/etc/NetworkManager/system-connections"
|
||||||
|
++ lib.optionals config.virtualisation.podman.enable [
|
||||||
|
"/var/lib/containers/storage"
|
||||||
|
"/run/containers/storage"
|
||||||
|
];
|
||||||
|
|
||||||
|
files =
|
||||||
|
[
|
||||||
|
"/etc/machine-id"
|
||||||
|
"/var/lib/sops-nix/key.txt"
|
||||||
|
]
|
||||||
|
# remember last user and user sessions
|
||||||
|
++ lib.optional config.programs.regreet.enable "/var/cache/regreet/cache.toml"
|
||||||
|
++ lib.optional config.services.printing.enable "/etc/staticcups/printers.conf"
|
||||||
|
++ lib.optionals config.services.openssh.enable [
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
81
machines/Marid/options.nix
Normal file
81
machines/Marid/options.nix
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config.machine = {
|
||||||
|
allowUnfree = true;
|
||||||
|
hostName = "Marid";
|
||||||
|
administrators = [
|
||||||
|
{
|
||||||
|
name = "derped";
|
||||||
|
id = 1337;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
conffiles = [
|
||||||
|
"etcfiles"
|
||||||
|
"etcvars"
|
||||||
|
"fonts"
|
||||||
|
"networkmanager"
|
||||||
|
"zsh"
|
||||||
|
];
|
||||||
|
pkgs = [
|
||||||
|
"base"
|
||||||
|
"extra"
|
||||||
|
"mail_utils"
|
||||||
|
"nvim"
|
||||||
|
"nvim::cmp"
|
||||||
|
"nvim::fugitive"
|
||||||
|
"nvim::go"
|
||||||
|
"nvim::harpoon"
|
||||||
|
"nvim::hurl"
|
||||||
|
"nvim::kanagawa-nvim"
|
||||||
|
"nvim::lsp"
|
||||||
|
"nvim::lsp::bash"
|
||||||
|
"nvim::lsp::c"
|
||||||
|
"nvim::lsp::go"
|
||||||
|
"nvim::lsp::ltex"
|
||||||
|
"nvim::lsp::lua"
|
||||||
|
"nvim::lsp::markdown"
|
||||||
|
"nvim::lsp::nix-nil"
|
||||||
|
"nvim::lsp::python"
|
||||||
|
"nvim::lsp::typescript"
|
||||||
|
"nvim::lsp::yaml"
|
||||||
|
"nvim::lualine"
|
||||||
|
"nvim::nvim-highlight"
|
||||||
|
"nvim::oil-nvim"
|
||||||
|
"nvim::orgmode"
|
||||||
|
# "nvim::sniprun"
|
||||||
|
"nvim::telescope"
|
||||||
|
"nvim::tmux-navigate"
|
||||||
|
"nvim::treesitter"
|
||||||
|
"nvim::trim"
|
||||||
|
"nvim::undotree"
|
||||||
|
"nvim::which-key"
|
||||||
|
"cpp"
|
||||||
|
];
|
||||||
|
services = [
|
||||||
|
"btrbk"
|
||||||
|
"btrfs"
|
||||||
|
"tmux"
|
||||||
|
"pipewire"
|
||||||
|
"docker"
|
||||||
|
"podman"
|
||||||
|
"ollama"
|
||||||
|
"virt-manager"
|
||||||
|
"virtualbox"
|
||||||
|
"cups"
|
||||||
|
"desktop"
|
||||||
|
"desktop::sway"
|
||||||
|
# "mariaDB"
|
||||||
|
];
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowPing = true;
|
||||||
|
allowedUDPPorts = [ ];
|
||||||
|
allowedTCPPorts = [ ];
|
||||||
|
allowedUDPPortRanges = [ ];
|
||||||
|
allowedTCPPortRanges = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
35
machines/Marid/secrets.yaml
Normal file
35
machines/Marid/secrets.yaml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
users:
|
||||||
|
derped:
|
||||||
|
password: ENC[AES256_GCM,data:l3xTD5m/MNO99qIpTu2arNtzs0oOwPq+NL0hGOZ5+Xekbr+MnJL2veNxs1avKuG1x3fK45rciznpM4bVIRyGidwmQG27NDSlVQ==,iv:B2YZFB7sR3E5wYEMKZtXWD2Ye4VxZDZNCc5EUyzXZlk=,tag:dcoSycJi5ErenRYX8IcleA==,type:str]
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1uq4x5yqf92z343ycpf4jycv7fqwk2kk8t5gapzp0ayk8hay98fns5mwmt7
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEbDdrMlJybVptVFVpemkz
|
||||||
|
U3FCRStNRG90ckFzMjE3ZzFMSjRZckxTS25BCmlLOXpROGVqRmZqSVp0VU1WZDZT
|
||||||
|
dDBwdGhITzBPcU5NajI1SnpnZDZaV3MKLS0tIGFHb1R2WitiVE9MYkhhZEI1WUFh
|
||||||
|
NDdUVEV2RWh4VVRDMkc2dm10VmdXRU0K5IqPF/wr1pWkmCBEjJzmWy9LQ0H6TywF
|
||||||
|
rAByGxWWm0EzhhQvF7NRtpU0yLjNOqf1FNi9Dn1S3CxCQoSl+sVHOw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-12-02T19:25:19Z"
|
||||||
|
mac: ENC[AES256_GCM,data:BGM/Ce65eji/IF5zPt8znozMIXbxljwzmXZf82EWvvSrFR8+gIGLvAcUcxbaJgPB2arFgb6PIsoM9UVNgMh0bQ9TguAi81BPMneBWJrUd8/PBsziBHRqYe9R0M9PSd8pJ+BWS6wNeZ+huTB1TT09FhQ8wYTEYx2U8XC/FaPTRz4=,iv:RrQGTMZB5ylM1zN9m9ekCBa0JtuwVm0GBFHqYdgh6vY=,tag:GmntLl63YOXXm+GCkWageg==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2024-12-31T15:20:27Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hF4DVbZwA9DOvl8SAQdA6cc/1fo/WOTAQuTVrTdDkqO4SV7sPvRCyLoBqb202D0w
|
||||||
|
oKh8ioqXQH+hZKfcRm9tz0i17h80NcJ95Pycwbm3AyLxg2aawQ0t8iWI318CjBB5
|
||||||
|
1GgBCQIQWJw87bsZcNErqPiiTVzKEVHoj4cnk68P2+Wl2smRSjp/+oWJUc9QGtT9
|
||||||
|
FBjbqJ+fMnJTZCZCALU7IXxteBJWoxII/GU0b4ux0obQjHBgW3bshRBFh50eva7S
|
||||||
|
miDJ6QE42KMxrQ==
|
||||||
|
=IvRX
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: 1F2EA6D9A57A9BE5A7F3AA035BEBEE4EE57DC7E2
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.9.1
|
11
machines/Marid/sops.nix
Normal file
11
machines/Marid/sops.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
_:
|
||||||
|
|
||||||
|
{
|
||||||
|
sops = {
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
age = {
|
||||||
|
keyFile = "/persist/var/lib/sops-nix/key.txt";
|
||||||
|
generateKey = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue