aboutsummaryrefslogtreecommitdiff
path: root/nixos/server/configuration.nix
blob: 6e143003aa1b9177ec5f3f9ae1466fb37fd4173c (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
{ pkgs, inputs, outputs, lib, config, ... }:

{
  nixpkgs = {
    overlays = [
      outputs.overlays.additions
      outputs.overlays.modifications
      outputs.overlays.unstable-packages
    ];
    config = {
      allowUnfree = true;
    };
  };

  nix = {
    # This will add each flake input as a registry
    # To make nix3 commands consistent with your flake
    registry = lib.mapAttrs (_: value: { flake = value; }) inputs;

    # This will additionally add your inputs to the system's legacy channels
    # Making legacy nix commands consistent as well, awesome!
    nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;

    gc = {
      automatic = true;
      dates = "weekly";
    };

    settings = {
      # Enable flakes and new 'nix' command
      experimental-features = "nix-command flakes";
      # Deduplicate and optimize nix store
      auto-optimise-store = true;

      trusted-users = [ "root" "@wheel" ];
    };
  };

  virtualisation.docker.enable = true;

  # services.nginx = {
  #   enable = true;
  #   virtualHosts."kcu.su" = {
  #     forceSSL = true;
  #     enableACME = true;
  #     locations."/xray" = {
  #       proxyPass = "http://127.0.0.1:42069";
  #       extraConfig = "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  #         proxy_set_header X-Forwarded-Proto $scheme;
  #         proxy_set_header Host $http_host;
  #         proxy_set_header X-Real-IP $remote_addr;
  #         proxy_set_header Range $http_range;
  #         proxy_set_header If-Range $http_if_range; 
  #         proxy_redirect off;";
  #     };
  #   };
  # };

  services.k3s = {
    enable = true;
    role = "server";
  };

  security.acme = {
    acceptTerms = true;
    defaults.email = "notspl3g@duck.com";
  };
  
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
  system.stateVersion = "24.04";
}