main
 1{
 2  pkgs,
 3  ...
 4}:
 5{
 6
 7  imports = [
 8    ../common/hardware/laptop.nix
 9    ../common/programs/direnv.nix
10    ../common/programs/git.nix
11    ../common/programs/nix-ld.nix
12    ../common/programs/tmux.nix
13    # ../common/services/networkmanager.nix
14    # ../common/services/fprint.nix # With yubikey I don't really need this to be honest
15    ../common/services/ansible.nix
16    ../common/services/containers.nix
17    ../common/services/docker.nix
18    ../common/services/libvirt.nix
19    ../common/services/binfmt.nix
20
21    ../common/services/oomd.nix
22
23    ../redhat
24  ];
25
26  # Suppress malformed DHCP option 24 (MTU plateau) warnings from router
27  networking.dhcpcd.extraConfig = ''
28    nooption mtu_plateau
29    denyinterfaces wg0
30  '';
31
32  services = {
33    logind.settings.Login = {
34      HandleLidSwitch = "ignore";
35      HandleLidSwitchExternalPower = "ignore";
36      HandleLidSwitchDocked = "ignore";
37    };
38
39    smartd = {
40      enable = true;
41      devices = [ { device = "/dev/nvme0n1"; } ];
42    };
43    hardware.bolt.enable = true;
44    # gitea-actions-runner = {
45    #   instances = {
46    #     "aomi-codeberg" = {
47    #       name = "aomi";
48    #       enable = true;
49    #       url = "https://codeberg.org";
50    #       # tokenFile = "/home/vincent/sync/codeberg.token";
51    #       tokenFile = "/etc/codeberg.token";
52    #       labels = [
53    #         # "local:host"
54    #         "nixos-${pkgs.system}:host"
55    #         "native:host"
56    #         "docker:docker://gitea/runner-images:ubuntu-latest"
57    #         "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"
58    #         "ubuntu-24.04:docker://gitea/runner-images:ubuntu-24.04"
59    #         "ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04"
60    #         "ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04"
61    #         # "nix:docker://localhost:5921/nix-runner"
62    #       ];
63    #       hostPackages = with pkgs; [
64    #         bash
65    #         direnv
66    #         coreutils
67    #         curl
68    #         gawk
69    #         nixVersions.stable
70    #         gitFull
71    #         gnused
72    #         docker
73    #         openssh
74    #         wget
75    #       ];
76    #     };
77    #   };
78    # };
79  };
80
81  environment.systemPackages = with pkgs; [
82    jayrah
83  ];
84
85  # Firewall
86  networking.firewall.allowedTCPPorts = [
87    9000 # Prometheus node exporter
88  ];
89}