summaryrefslogtreecommitdiff
path: root/machines/xnet/default.nix
blob: 138bd53ec022c4f4331aa745d8e0d1f93d3b154e (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
{ pkgs, lib, ... }:
let
  inherit (lib) mkDefault;
in
{
  imports = [
    ./disk.nix
    ./nginx.nix
    ./persist.nix
    ./net
    ./desktop
    ./gitserver
    ./monitoring
  ];

  i18n.defaultLocale = mkDefault "en_US.UTF-8";
  time.timeZone = mkDefault "America/Toronto";

  nix = {
    settings = {
      auto-optimise-store = true;
      experimental-features = [ "nix-command" "flakes" ];
      warn-dirty = false;

      # timeout fast from binary cache
      connect-timeout = 5;
    };
    gc = {
      automatic = true;
      options = mkDefault "--delete-older-than 30d";
    };
  };

  documentation = {
    doc.enable = mkDefault false;
    info.enable = mkDefault false;
  };

  users.mutableUsers = false;

  security.sudo = {
    execWheelOnly = true;
    extraConfig = "Defaults lecture = never";
  };

  programs.ssh = {
    knownHosts = {
      "github.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl";
      "gitlab.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf";
      "git.sr.ht".publicKey = " ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMZvRd4EtM7R+IHVMWmDkVU3VLQTSwQDSAvW0t2Tkj60";
      "pascal.ee.ryerson.ca".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFmWInQNT6EoU1NtUYzTs5jtpfbO/m6yvCckOiEGjvDc";
    };
    extraConfig = ''
      Host github
        HostName github.com
        User git
        PreferredAuthentications publickey

      Host ee
        HostName pascal.ee.ryerson.ca
        User kbujari
    '';
  };

  programs.git = {
    enable = true;
    config = {
      init.defaultBranch = "master";
      fetch.prune = true;
      core.excludesFile = pkgs.writeText "gitignore" ''
        # dev shell caching
        .direnv/
        .envrc
      '';
      push.default = "upstream";
      push.autoSetupRemote = true;
    };
  };
}