aboutsummaryrefslogtreecommitdiff
path: root/hosts/ganymede/config.nix
blob: 0d3f15e806e203ff4c806b17085de43d3e067695 (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
{config, ...}: let
  tailscaleIP = "100.100.218.182";
in {
  collinux = {
    user.name = "collin";

    secrets = {
      "williams-psk" = {
        file = ./williams-psk.age;
        owner = "wpa_supplicant";
      };
      "caddy-env".file = ./caddy-env.age;
      "tsnsrv-authkey".file = ./tsnsrv-authkey.age;
    };

    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;
          tailnet = "collinux.tailnet";
        };
        sshd = {
          enable = true;
          bind_host = "0.0.0.0";
        };
      };

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

        forgejo = {
          enable = true;
          bind_host = tailscaleIP;
          root_url = "ganymede.collinux.tailnet:8010";
        };

        headscale = {
          enable = true;
          root_url = "headscale.williamsfam.us.com";
          caddy.enable = true;
        };
      };
    };
  };
}