all repos — nixfiles @ 5bd98442fd1547f6ad6f2b79b3e546e603186e69

System and user configuration, managed by nix and home-manager

system/hosts/marvin.nix (view raw)

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
103
104
{
  config,
  pkgs,
  ...
}:
let
  tsnet = "fin-marlin.ts.net";
in
{
  imports = [
    ../settings/darwin.nix
    ../settings/dev.nix
    ../settings/programs/shell.nix
    ../settings/programs/base.nix
  ];

  local.web = {
    enable = true;
    projectRoot = "/Users/alin/projects";
  };

  system.primaryUser = "alin";
  system.primaryUserHome = "/Users/alin";
  users.users."${config.system.primaryUser}".openssh.authorizedKeys.keys = [
    "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBENXbdPPOq0mA+9bPklpUkikvIXjCEKE5IRwNPNMr5/Ta1J/ND737fexCjEb7YPoAJtaf0gD/JThQQi/RxDTvy4= alin@alin.ovh"
  ];

  services.openssh.extraConfig = ''
    PermitUserEnvironment yes
    AcceptEnv TERM_PROGRAM
  '';

  networking = {
    hostName = "marvin";
    localHostName = "Paranoid-Android";
  };

  services.caddy = {
    user = "root";
    group = "wheel";
    virtualHosts = {
      "${config.networking.hostName}.${tsnet}" = {
        logFormat = "output discard";
        extraConfig = ''
          reverse_proxy http://localhost:1234 {
            transport http {
              dial_timeout 1s
              compression off
            }
          }
        '';
      };
    };
  };

  services.redis = {
    enable = true;
    bind = "127.0.0.1 ::1";
    extraConfig = ''
      save ""
    '';
  };

  services.tailscale = {
    enable = true;
  };
  environment.etc."resolver/ts.net".text = ''
    nameserver fd7a:115c:a1e0::53
  '';
  environment.etc."resolver/home.arpa".text = ''
    nameserver fe80::3e7c:3fff:fe31:3e40
    nameserver fd7a:115c:a1e0::53
  '';

  environment.shells = with pkgs; [
    fish
    "/Users/alin/.local/state/nix/profile/bin/fish"
  ];

  environment.variables.LANG = "en_GB.UTF-8";

  # Used for backwards compatibility, please read the changelog before changing.
  # $ darwin-rebuild changelog
  system.stateVersion = 4;
  ids.gids.nixbld = 350;

  # You should generally set this to the total number of logical cores in your system.
  # $ sysctl -n hw.ncpu
  nix.settings = {
    max-jobs = 4;
    cores = 8;
  };

  nix.linux-builder = {
    enable = true;
    systems = [
      "aarch64-linux"
    ];
    speedFactor = 8;
    config = {
      virtualisation.cores = 4;
    };
  };
}