aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/roots/uwu.nix
blob: e430b793f4c5528dd669d91184ec922660d5226d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/* 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, ... }:


let
  forActiveUsers = (attrs:
    lib.listToAttrs (map (u: lib.nameValuePair "${u}" ({ ... }: attrs))
      [ "spacekookie" ]));
in
{
  nixpkgs.config.allowUnfree = true;
  
  imports = [
    <home-manager/nixos>
    <modules>
    ../config/nix
    ../config/base
    ../config/docker
    ../config/workstation
    ../config/workstation/hardware/trackpoint
  ];

  # libkookie.ui.i3.enable = true;

  home-manager.users = forActiveUsers {
    imports = [];
  };
  
  boot.kernelModules = [ "kvm-intel" ];
  boot.initrd.availableKernelModules =
    [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sdhci_pci" ];
  hardware.enableRedistributableFirmware = true;
  
  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" ];

  services.zfs.autoSnapshot.enable = true;
  
  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";

  services.mullvad.enable = true;
  programs.java.enable = true;
  
  # 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.";
  
}