summaryrefslogtreecommitdiff
path: root/machines/radon/default.nix
blob: e4dc09a4570afee0dea496e4e5d6e75b450abea0 (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
{ inputs, pkgs, config, ... }:
let

  inherit (inputs.nixos-hardware.nixosModules)
    common-cpu-intel
    common-gpu-intel
    ;

  interfaces = {
    bottom = "enp1s0";
    top = "enp2s0";
  };
in
{
  imports = [
    common-cpu-intel
    common-gpu-intel
    # ./jellyfin.nix
    ./pxeboot.nix
  ];

  nixpkgs.hostPlatform.system = "x86_64-linux";
  system.stateVersion = "24.11";
  networking.hostName = "radon";

  boot.kernel.sysctl = {
    "net.ipv4.conf.all.forwarding" = true;
    "net.ipv6.conf.all.forwarding" = true;
  };

  users.groups.media.gid = 2000;

  boot.zfs.pools.radon.devNodes = "/dev/disk/by-id/";
  boot.zfs.extraPools = [ "radon" ];

  services.nfs.server.enable = true;
  networking.firewall.allowedTCPPorts = [ 2049 ];

  services.miniflux = {
    enable = true;
    config = {
      BASE_URL = "http://feeds.4kb.net";
      LISTEN_ADDR = "localhost:8080";
    };
    adminCredentialsFile = pkgs.writeText "miniflux-credentials" ''
      ADMIN_USERNAME=admin
      ADMIN_PASSWORD=helloworld
    '';
  };

  services.nginx.virtualHosts."feeds.4kb.net" = {
    locations."/".proxyPass = "http://${config.services.miniflux.config.LISTEN_ADDR}";
  };

  xnet = {
    disk = {
      enable = true;
      device = "/dev/nvme0n1";
    };
    net = {
      join = [ "plaza" ];
      interface = interfaces.bottom;
      sshd.enable = true;
    };
    nginx.enable = true;
    gitServer = {
      enable = true;
      gitweb.enable = true;
    };
  };
}