aboutsummaryrefslogtreecommitdiff
path: root/roots
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-05 22:42:42 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-05 22:44:50 +0000
commit73d865b1dae7585d0eff167271dabe77c9d0b8e6 (patch)
tree337324fab29014f3d60a8bff4979e397fb556d88 /roots
parent670a2de0037acadb83433165344710dd3ac03adf (diff)
parente14d8e29606feddb29d7c27ea62dd514ef80f1e4 (diff)
Replacing nixcfg with libkookierebuild
Generally, nixcfg grew out of a dotfiles repository, that happened to also have some scripts in it. As more and more of the configuration was replaced with nix specifics (home-manager, etc...), so did nixcfg change over time (previously "stuff"). As part of this, kookiepkgs was introduced along-side nixcfg, to make it easier to add custom things to nixpkgs-based systems (NixOS). Additionally, the core system configuration was handled via private infrastructure repositories, each specific to the machine in question. The problem with this approach is a lot of redundancy when building non-userspace (read home-manager) systems and a lot of chaos with having to cherry-pick commits from different branches to work with nixpkgs trees in development. Ultimately, keeping both new package definitions, patches and configuration for the root system and userspace (home-manager) in the same repository is a _much_ better approach to solving these issues. And as such, libkookie was started: the general idea is that it includes all nix expressions that are relevant to _any_ of my computers. Under `roots`, a machine can have it's primary configuration file which is built andcopied into the nix store, so that nixpkgs can always point at the version a generation was built with, not what is on disk). Overlays contains everything that kookiepkgs used to, modules contains both system-level modules (only required on NixOS), as well as anything that is being built with home-manager. Modules are all kept in the same tree, however some require system-level access while others don't. There could be some kind of list to distinguish the two, so that userspace-only systems can still take advantage of libkookie.
Diffstat (limited to 'roots')
-rw-r--r--roots/uwu.nix79
1 files changed, 79 insertions, 0 deletions
diff --git a/roots/uwu.nix b/roots/uwu.nix
new file mode 100644
index 00000000000..d46abd9df88
--- /dev/null
+++ b/roots/uwu.nix
@@ -0,0 +1,79 @@
+/* TOP LEVEL DEVICE CONFIGURATION FOR
+ *
+ * uwu (Thinkpad X230)
+ *
+ * This file only contains settings that are specific to this one
+ * device (hardware and things outside of nix, like partitions).
+ *
+ * This file is part of LIBKOOKIE, a collection of nix expressions.
+ * LIBKOOKIE is licensed under the GPL-3.0 (or later) -- see LICENSE
+ */
+
+{ lib, config, pkgs, ... }:
+
+{
+ imports = [
+ <home-manager/nixos>
+ ../modules/nix
+ ../modules/base
+ ../modules/workstation
+ ];
+
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.initrd.availableKernelModules =
+ [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sdhci_pci" ];
+
+ boot.loader.grub = {
+ copyKernels = true;
+ device = "/dev/sda";
+ zfsSupport = true;
+ enableCryptodisk = true;
+ };
+
+ boot.extraModprobeConfig = "options kvm_item nested=1";
+ boot.zfs.devNodes = "/dev"; # FIXME: Why do I set this?
+ boot.cleanTmpDir = true;
+ boot.tmpOnTmpfs = true;
+ boot.supportedFilesystems = [ "zfs" "exfat" ];
+
+ fileSystems."/" = {
+ device = "zroot";
+ fsType = "zfs";
+
+ encrypted = {
+ enable = true;
+ label = "lvm";
+ blkDev = "/dev/disk/by-uuid/f1440abd-99e3-46a8-aa36-7824972fee54";
+ };
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/672c497c-18aa-4b00-ac95-78e810363d81";
+ fsType = "ext3";
+ };
+
+ swapDevices = [
+ { device = "/dev/disk/by-uuid/bd3d5c22-eed0-4371-ae25-456b8dfe9356"; }
+ ];
+
+ nix.maxJobs = lib.mkDefault 4;
+ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+
+ # owo
+ networking.hostName = "uwu";
+ networking.hostId = "a82ecf29";
+ networking.wireguard.interfaces."intranet" = {
+ ips = [ "10.13.12.3" ];
+ privateKeyFile = "/var/lib/wg/private";
+ peers = [
+ { publicKey = "ugHG/NOqM/9hde9EmWpu7XsCpjT3WQbjLK99IGHtdjQ=";
+ allowedIPs = [ "10.13.12.0/24" "10.172.171.0/24" ];
+ endpoint = "hyperion.kookie.space:51820";
+ persistentKeepalive = 25; }
+ ];
+ };
+
+ system.stateVersion = "19.03";
+ users.users.spacekookie.hashedPassword = "$6$rounds=1000000$22ypycQ2AlCCv8iC$RrzyAbCX3D518nCgfR3MTqZhfK.GAclme7EQlKTlqH4oV1YvGd/aHdTfe59iMpf/J18tqEO2aSXsevTVQz2yW.";
+
+}