aboutsummaryrefslogtreecommitdiff
path: root/roles/web/proxy/default.nix
blob: 3f06265410d1c9f7b9de077586d694ccc63abebe (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
{ config, pkgs, lib, inputs, ... }:
with lib;

let cfg = config.roles.web.proxy; in {
  options.roles.web.proxy = {
    enable = mkEnableOption "nginx reverse proxy";
    personal = mkOption {
      type = types.str;
      default = "localhost:8080";
      description = "personal site address";
    };
  };

  config = mkIf cfg.enable {
    networking.firewall.allowedTCPPorts = [ 80 ];

    services.nginx = {
      enable = true;
      virtualHosts = {
        "caroline.larimo.re" = {
          serverAliases = [ "cxl.sh" "localhost" ];

          locations = {
            "/" = {
              recommendedProxySettings = true;
              proxyPass = "http://${cfg.personal}/";
            };
            "/test" = {
              recommendedProxySettings = true;
              proxyPass = "http://web-test.containers/";
            };
          };
        };
      };
    };
  };
}