aboutsummaryrefslogtreecommitdiff
path: root/hosts/ganymede/config.nix
blob: 297d7c6293f1ed405568ddbb7352a22ad535ef4c (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
{config, ...}: {
  collinux = {
    user.name = "collin";

    secrets = {
      "williams-psk".file = ./williams-psk.age;
      "caddy-env".file = ./caddy-env.age;

      "wg-key".file = ./ganymede-wg-key.age;
    };

    wireguard = {
      enable = true;
      ip = "100.100.0.1";
      gateway = "100.100.0.1";
      privateKeyFile = config.collinux.secrets."wg-key".path;
      peers = [
        {
          # mercury
          publicKey = "EDDppGqbLfEwEcHLP3J+bxKVGW16fAcU83K/ZKR2h3A=";
          ip = "100.100.0.5/32";
        }
        {
          # jupiter
          publicKey = "Pi1PydaaEz9IcAZ+elH5HkzEa2D35P/tUy+9KKH6PHI=";
          ip = "100.100.0.10/32";
        }
      ];
    };

    terminal = {
      programs = {
        git = {
          enable = true;
          userName = "Collin Williams";
          userEmail = "96917990+bluedragon1221@users.noreply.github.com";
        };
      };
    };

    boot.systemd-boot.enable = true;

    services = {
      networking = {
        enable = true;
        networkd = {
          enable = true;
          ssid = "williams";
          pskFile = config.collinux.secrets."williams-psk".path;
          static = {
            ip = "192.168.50.2/24";
            gateway = "192.168.50.1";
          };
        };
        tailscale.enable = true;
        sshd.enable = true;
      };

      selfhost = {
        adguard.enable = true;
        forgejo.enable = true;
        caddy = {
          enable = true;
          envFile = config.collinux.secrets."caddy-env".path;
        };
      };
    };
  };
}