summary refs log tree commit diff
path: root/host/Rory-ovh/configuration.nix
blob: 3ded494a8e59668c84e36605cdb227756bf79bfd (plain) (blame)
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{
  pkgs,
  lib,
  nixpkgs-Draupnir,
  nixpkgs-DraupnirPkg,
  ...
}:

{
  imports = [
    ../../modules/base-server.nix
    ../../modules/users/levi.nix
    ../../modules/users/db2k.nix
    ../../modules/users/ks.nix
    ../../modules/users/Alice.nix

    ./services/prometheus.nix

    ./services/nginx/nginx.nix
    ./services/cgit.nix
    ./services/postgres.nix
    ./services/matrix/synapse/synapse-main.nix
    ./services/matrix/draupnir.nix
    ./services/email/root.nix
    #./services/wireguard/wireguard.nix
    ./services/safensound.nix
  ];

  users.groups.ocp = { };
  boot.loader.grub.devices = lib.mkForce [ "nodev" ];
  networking = {
    hostName = "Rory-ovh";
    nat = {
      enable = true;
      internalInterfaces = [
        "ve-+"
        "vb-+"
      ];
      externalInterface = "enp98s0f0";
      enableIPv6 = false;
    };
    enableIPv6 = lib.mkForce false;
    nameservers = lib.mkForce [ "1.1.1.1" ];
    firewall.enable = lib.mkForce true;
    resolvconf.enable = false;
    defaultGateway = lib.mkForce null;
    defaultGateway6 = lib.mkForce null;
  };

  systemd.network = {
    enable = true;
    networks.enp98s0f0 = {
      name = "enp98s0f0";
      DHCP = "no";
      #gateway = [ "51.210.113.254" ];
      routes = [
        {
          Gateway = "51.210.113.254";
          GatewayOnLink = true;
        }
      ];
      address = [ "51.210.113.110/32" ];
    };
  };

  monitoring = {
    monitorAll = true;
    localPrometheus = true;
    exposePrometheus = true;
    localGrafana = true;
    exposeGrafana = true;
    nginxHost = "monitoring.rory.gay";
    nginxSsl = true;
  };

  nixpkgs.config.permittedInsecurePackages = [
    "olm-3.2.16"
    "dotnet-runtime-wrapped-7.0.20"
    "dotnet-runtime-7.0.20"
    "dotnet-sdk-7.0.20"
  ];
  services.irqbalance.enable = true;

  environment.memoryAllocator.provider = "jemalloc";

  containers."draupnir-cme" = import ./services/containers/draupnir-cme/container.nix {
    inherit
      pkgs
      lib
      nixpkgs-Draupnir
      nixpkgs-DraupnirPkg
      ;
  };

  containers."draupnir-fedora" = import ./services/containers/draupnir-fedora/container.nix {
    inherit
      pkgs
      lib
      nixpkgs-Draupnir
      nixpkgs-DraupnirPkg
      ;
  };

  containers."draupnir-ansible" = import ./services/containers/draupnir-ansible/container.nix {
    inherit
      pkgs
      lib
      nixpkgs-Draupnir
      nixpkgs-DraupnirPkg
      ;
  };

  system.stateVersion = "22.11"; # DO NOT EDIT!

  environment.systemPackages = with pkgs; [ waypipe ];

  nix.nrBuildUsers = 128;
  services.owncast = {
    enable = true;
    port = 1934;
  };
}