add fortuna (vm)

This commit is contained in:
zack 2025-05-23 12:12:41 -04:00
parent 7aed32eea7
commit e38d949646
No known key found for this signature in database
GPG key ID: EE8A2B709E2401D1
4 changed files with 224 additions and 123 deletions

189
flake.lock generated
View file

@ -121,14 +121,17 @@
"systems": "systems_5"
},
"locked": {
"lastModified": 1745808560,
"narHash": "sha256-tCEg7taEdCsZ+p1A3/nHbIsGR8ucuRW4HQ+d80VS508=",
"path": "/home/zoey/dev/web",
"type": "path"
"lastModified": 1738787341,
"narHash": "sha256-7vUNfr5hmqwisNSLAWBnrXaJROFvGqDKGmhfQnwuYS4=",
"ref": "refs/heads/main",
"rev": "2b2a2ff39f372a2c31e0af343a5bca8759e79492",
"revCount": 28,
"type": "git",
"url": "https://code.zoeys.cloud/zoey/web.git"
},
"original": {
"path": "/home/zoey/dev/web",
"type": "path"
"type": "git",
"url": "https://code.zoeys.cloud/zoey/web.git"
}
},
"catppuccin": {
@ -554,24 +557,6 @@
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_7": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_4"
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
@ -586,9 +571,9 @@
"type": "github"
}
},
"flake-parts_8": {
"flake-parts_7": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_5"
"nixpkgs-lib": "nixpkgs-lib_4"
},
"locked": {
"lastModified": 1719994518,
@ -1548,8 +1533,8 @@
},
"lexical": {
"inputs": {
"flake-parts": "flake-parts_8",
"nixpkgs": "nixpkgs_22",
"flake-parts": "flake-parts_7",
"nixpkgs": "nixpkgs_21",
"systems": "systems_21"
},
"locked": {
@ -1756,22 +1741,6 @@
"type": "github"
}
},
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_5",
"nixpkgs": "nixpkgs_12"
},
"locked": {
"lastModified": 1746818569,
"narHash": "sha256-kFuLmXX/3zVCz0wlyN8ZfXdt3Ri/cOOqXYgDKwVi0lk=",
"path": "/home/zoey/dev/nix-gaming",
"type": "path"
},
"original": {
"path": "/home/zoey/dev/nix-gaming",
"type": "path"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
@ -1905,21 +1874,6 @@
}
},
"nixpkgs-lib_3": {
"locked": {
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_4": {
"locked": {
"lastModified": 1727825735,
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
@ -1931,7 +1885,7 @@
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}
},
"nixpkgs-lib_5": {
"nixpkgs-lib_4": {
"locked": {
"lastModified": 1719876945,
"narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=",
@ -2056,22 +2010,6 @@
}
},
"nixpkgs_12": {
"locked": {
"lastModified": 1746269363,
"narHash": "sha256-Q0lKWway9OmZnkDTpAoAE9VLXHOHqCqdJ3N0tkSM99g=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b6aef6c3553f849e1e6c08f1bcd3061df2b69fc4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_13": {
"locked": {
"lastModified": 1747744144,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
@ -2087,7 +2025,7 @@
"type": "github"
}
},
"nixpkgs_14": {
"nixpkgs_13": {
"locked": {
"lastModified": 1702151865,
"narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
@ -2103,7 +2041,7 @@
"type": "github"
}
},
"nixpkgs_15": {
"nixpkgs_14": {
"locked": {
"lastModified": 1736189585,
"narHash": "sha256-GBC2LIBk9BuJR4HXfjuNlIWeY15U6jFvaqc7PeToGLw=",
@ -2119,7 +2057,7 @@
"type": "github"
}
},
"nixpkgs_16": {
"nixpkgs_15": {
"locked": {
"lastModified": 1712883908,
"narHash": "sha256-icE1IJE9fHcbDfJ0+qWoDdcBXUoZCcIJxME4lMHwvSM=",
@ -2135,7 +2073,7 @@
"type": "github"
}
},
"nixpkgs_17": {
"nixpkgs_16": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
@ -2151,7 +2089,7 @@
"type": "github"
}
},
"nixpkgs_18": {
"nixpkgs_17": {
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@ -2167,7 +2105,7 @@
"type": "github"
}
},
"nixpkgs_19": {
"nixpkgs_18": {
"locked": {
"lastModified": 1740547748,
"narHash": "sha256-Ly2fBL1LscV+KyCqPRufUBuiw+zmWrlJzpWOWbahplg=",
@ -2183,6 +2121,22 @@
"type": "github"
}
},
"nixpkgs_19": {
"locked": {
"lastModified": 1747542820,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1712883908,
@ -2200,22 +2154,6 @@
}
},
"nixpkgs_20": {
"locked": {
"lastModified": 1747542820,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_21": {
"locked": {
"lastModified": 1743448293,
"narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=",
@ -2231,7 +2169,7 @@
"type": "github"
}
},
"nixpkgs_22": {
"nixpkgs_21": {
"locked": {
"lastModified": 1719931832,
"narHash": "sha256-0LD+KePCKKEb4CcPsTBOwf019wDtZJanjoKm1S8q3Do=",
@ -2379,7 +2317,7 @@
"pnpm2nix_2": {
"inputs": {
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_14"
"nixpkgs": "nixpkgs_13"
},
"locked": {
"lastModified": 1706694632,
@ -2397,7 +2335,7 @@
},
"posting": {
"inputs": {
"nixpkgs": "nixpkgs_15",
"nixpkgs": "nixpkgs_14",
"utils": "utils"
},
"locked": {
@ -2481,23 +2419,26 @@
},
"resume": {
"inputs": {
"nixpkgs": "nixpkgs_16",
"nixpkgs": "nixpkgs_15",
"systems": "systems_14"
},
"locked": {
"lastModified": 1744680618,
"narHash": "sha256-sGJjcRalbMdWB5LjH21oQ5BIYG9t+8PkkrlSIFnSErc=",
"path": "/home/zoey/dev/resume",
"type": "path"
"lastModified": 1738822577,
"narHash": "sha256-zO+n90U2BZI92QW0Uav4ymk8tLbsUIQ0Xo2IGBfYKfw=",
"ref": "refs/heads/main",
"rev": "17f427298c21e8f0e08d2b06f3972cb0ac444f80",
"revCount": 30,
"type": "git",
"url": "https://code.zoeys.cloud/zoey/resume.git"
},
"original": {
"path": "/home/zoey/dev/resume",
"type": "path"
"type": "git",
"url": "https://code.zoeys.cloud/zoey/resume.git"
}
},
"rio-term": {
"inputs": {
"flake-parts": "flake-parts_6",
"flake-parts": "flake-parts_5",
"nixpkgs": [
"nixpkgs"
],
@ -2539,10 +2480,9 @@
"neovim-nightly-overlay": "neovim-nightly-overlay",
"niri": "niri",
"niri-src": "niri-src",
"nix-gaming": "nix-gaming",
"nixos-generators": "nixos-generators",
"nixos-stable": "nixos-stable",
"nixpkgs": "nixpkgs_13",
"nixpkgs": "nixpkgs_12",
"pnpm2nix": "pnpm2nix_2",
"posting": "posting",
"resume": "resume",
@ -2643,7 +2583,7 @@
},
"rust-overlay_4": {
"inputs": {
"nixpkgs": "nixpkgs_17"
"nixpkgs": "nixpkgs_16"
},
"locked": {
"lastModified": 1747449297,
@ -2750,7 +2690,7 @@
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_18"
"nixpkgs": "nixpkgs_17"
},
"locked": {
"lastModified": 1747603214,
@ -3159,7 +3099,7 @@
},
"umu": {
"inputs": {
"nixpkgs": "nixpkgs_19"
"nixpkgs": "nixpkgs_18"
},
"locked": {
"dir": "packaging/nix",
@ -3197,7 +3137,7 @@
},
"walker": {
"inputs": {
"nixpkgs": "nixpkgs_20",
"nixpkgs": "nixpkgs_19",
"systems": "systems_20"
},
"locked": {
@ -3312,7 +3252,7 @@
"zen-browser": {
"inputs": {
"home-manager": "home-manager_4",
"nixpkgs": "nixpkgs_21"
"nixpkgs": "nixpkgs_20"
},
"locked": {
"lastModified": 1747998984,
@ -3358,7 +3298,7 @@
},
"zoeycomputer": {
"inputs": {
"flake-parts": "flake-parts_7",
"flake-parts": "flake-parts_6",
"lexical": "lexical",
"nixpkgs": [
"nixpkgs"
@ -3367,14 +3307,17 @@
"systems": "systems_22"
},
"locked": {
"lastModified": 1744598309,
"narHash": "sha256-yjJnKlZSTmvmZddjgxntqmufCZwgZyuUSUZphh3jpRQ=",
"path": "/home/zoey/dev/zoeys.computer",
"type": "path"
"lastModified": 1731607548,
"narHash": "sha256-a0xLkdgQ4TIJVtY8fXnidtmsqlg63V9YYM7Hf32m7pk=",
"ref": "refs/heads/main",
"rev": "49677f2d9b2cb94c36fe7a9df2bd5e9a8c00b94f",
"revCount": 75,
"type": "git",
"url": "https://code.zoeys.cloud/zoey/zoeys.computer.git"
},
"original": {
"path": "/home/zoey/dev/zoeys.computer",
"type": "path"
"type": "git",
"url": "https://code.zoeys.cloud/zoey/zoeys.computer.git"
}
},
"zon2nix": {

View file

@ -0,0 +1,52 @@
{
modulesPath,
lib,
pkgs,
...
}: {
imports = [
./disk-config.nix
];
disko.devices.disk.main.device = "/dev/vda";
boot.loader.grub = {
# no need to set devices, disko will add all devices that have a EF02 partition to the list already
# devices = [ ];
efiSupport = true;
efiInstallAsRemovable = true;
};
services.openssh.enable = true;
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm.enable = true;
displayManager.sddm.wayland.enable = true;
};
networking.hostName = "fortuna";
networking.hostId = "fortuna";
programs.zsh.enable = true;
environment.systemPackages = map lib.lowPrio [
pkgs.curl
pkgs.gitMinimal
];
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFuw7D+qDzzxBKsfKEmMd7odc98m3ZEnqWYFtuKwvC9k zoey@earth"
];
users.users.zoey = {
isNormalUser = true;
description = "zoey";
extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "plugdev"];
shell = pkgs.zsh;
initialHashedPassword = "$6$rounds=2000000$rFBJH7LwdEHvv.0i$HdHorWqp8REPdWPk5fEgZXX1TujRJkMxumGK0f0elFN0KRPlBjJMW2.35A.ID/o3eC/hGTwbSJAcJcwVN2zyV/";
};
system.stateVersion = "24.11";
}

View file

@ -0,0 +1,80 @@
# USAGE in your configuration.nix.
# Update devices to match your hardware.
# {
# imports = [ ./disko-config.nix ];
# disko.devices.disk.main.device = "/dev/sda";
# }
{
disko.devices = {
disk = {
main = {
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "zroot";
};
};
};
};
};
};
zpool = {
zroot = {
type = "zpool";
rootFsOptions = {
# https://wiki.archlinux.org/title/Install_Arch_Linux_on_ZFS
acltype = "posixacl";
atime = "off";
compression = "zstd";
mountpoint = "none";
xattr = "sa";
};
options.ashift = "12";
datasets = {
"local" = {
type = "zfs_fs";
options.mountpoint = "none";
};
"local/home" = {
type = "zfs_fs";
mountpoint = "/home";
# Used by services.zfs.autoSnapshot options.
options."com.sun:auto-snapshot" = "true";
};
"local/nix" = {
type = "zfs_fs";
mountpoint = "/nix";
options."com.sun:auto-snapshot" = "false";
};
"local/persist" = {
type = "zfs_fs";
mountpoint = "/persist";
options."com.sun:auto-snapshot" = "false";
};
"local/root" = {
type = "zfs_fs";
mountpoint = "/";
options."com.sun:auto-snapshot" = "false";
postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^zroot/local/root@blank$' || zfs snapshot zroot/local/root@blank";
};
};
};
};
};
}

View file

@ -0,0 +1,26 @@
# 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 + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
swapDevices = [ ];
# 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.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}