forked from Drift/pvv-nixos-config
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			setup-kerb
			...
			replace-kn
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						1ef033c754
	
				 | 
					
					
						|||
| 
						
						
							
						
						d900dc1b1b
	
				 | 
					
					
						|||
| 
						
						
							
						
						d5985e02f3
	
				 | 
					
					
						
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
    # TODO: set up authentication for the following:
 | 
			
		||||
    # ./services/website.nix
 | 
			
		||||
    ./services/nginx.nix
 | 
			
		||||
    ./services/nginx
 | 
			
		||||
    ./services/gitea/default.nix
 | 
			
		||||
    ./services/webmail
 | 
			
		||||
    # ./services/mediawiki.nix
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,9 @@
 | 
			
		||||
{ pkgs, config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./ingress.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  security.acme = {
 | 
			
		||||
    acceptTerms = true;
 | 
			
		||||
    defaults.email = "drift@pvv.ntnu.no";
 | 
			
		||||
							
								
								
									
										55
									
								
								hosts/bekkalokk/services/nginx/ingress.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								hosts/bekkalokk/services/nginx/ingress.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
{ config, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.nginx.virtualHosts = {
 | 
			
		||||
    "www2.pvv.ntnu.no" = {
 | 
			
		||||
      serverAliases = [ "www2.pvv.org" "pvv.ntnu.no" "pvv.org" ];
 | 
			
		||||
      addSSL = true;
 | 
			
		||||
      enableACME = true;
 | 
			
		||||
 | 
			
		||||
      locations = {
 | 
			
		||||
        # Proxy home directories
 | 
			
		||||
        "/~" = {
 | 
			
		||||
          extraConfig = ''
 | 
			
		||||
            proxy_redirect off;
 | 
			
		||||
            proxy_pass https://tom.pvv.ntnu.no;
 | 
			
		||||
            proxy_set_header Host $host;
 | 
			
		||||
            proxy_set_header X-Real-IP $remote_addr;
 | 
			
		||||
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
			
		||||
            proxy_set_header X-Forwarded-Proto $scheme;
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # Redirect old wiki entries
 | 
			
		||||
        "/disk".return = "301 https://www.pvv.ntnu.no/pvv/Diskkjøp";
 | 
			
		||||
        "/dok/boker.php".return = "301 https://www.pvv.ntnu.no/pvv/Bokhyllen";
 | 
			
		||||
        "/styret/lover/".return = "301 https://www.pvv.ntnu.no/pvv/Lover";
 | 
			
		||||
        "/styret/".return = "301 https://www.pvv.ntnu.no/pvv/Styret";
 | 
			
		||||
        "/info/".return = "301 https://www.pvv.ntnu.no/pvv/";
 | 
			
		||||
        "/info/maskinpark/".return = "301 https://www.pvv.ntnu.no/pvv/Maskiner";
 | 
			
		||||
        "/medlemssider/meldinn.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemskontingent";
 | 
			
		||||
        "/diverse/medlems-sider.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemssider";
 | 
			
		||||
        "/cert/".return = "301 https://www.pvv.ntnu.no/pvv/CERT";
 | 
			
		||||
        "/drift".return = "301 https://www.pvv.ntnu.no/pvv/Drift";
 | 
			
		||||
        "/diverse/abuse.php".return = "301 https://www.pvv.ntnu.no/pvv/CERT/Abuse";
 | 
			
		||||
        "/nerds/".return = "301 https://www.pvv.ntnu.no/pvv/Nerdepizza";
 | 
			
		||||
 | 
			
		||||
        # TODO: Redirect webmail
 | 
			
		||||
        "/webmail".return = "301 https://webmail.pvv.ntnu.no/squirrelmail";
 | 
			
		||||
 | 
			
		||||
        # Redirect everything else to the main website
 | 
			
		||||
        "/".return = "301 https://www.pvv.ntnu.no$request_uri";
 | 
			
		||||
 | 
			
		||||
        # Proxy the matrix well-known files
 | 
			
		||||
        # Host has be set before proxy_pass
 | 
			
		||||
        # The header must be set so nginx on the other side routes it to the right place
 | 
			
		||||
        "/.well-known/matrix/" = {
 | 
			
		||||
          extraConfig = ''
 | 
			
		||||
            proxy_set_header Host matrix.pvv.ntnu.no;
 | 
			
		||||
            proxy_pass https://matrix.pvv.ntnu.no/.well-known/matrix/;
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -216,7 +216,19 @@ in {
 | 
			
		||||
 | 
			
		||||
  services.redis.servers."".enable = true;
 | 
			
		||||
  
 | 
			
		||||
  services.nginx.virtualHosts."matrix.pvv.ntnu.no" = lib.mkMerge [({
 | 
			
		||||
  services.nginx.virtualHosts."matrix.pvv.ntnu.no" = lib.mkMerge [
 | 
			
		||||
  ({
 | 
			
		||||
    locations."/.well-known/matrix/server" = {
 | 
			
		||||
      return = ''
 | 
			
		||||
        200 '{"m.server": "matrix.pvv.ntnu.no:443"}'
 | 
			
		||||
      '';
 | 
			
		||||
      extraConfig = ''
 | 
			
		||||
        default_type application/json;
 | 
			
		||||
        add_header Access-Control-Allow-Origin *;
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  })
 | 
			
		||||
  ({
 | 
			
		||||
    locations = let
 | 
			
		||||
      connectionInfo = w: matrix-lib.workerConnectionResource "metrics" w;
 | 
			
		||||
      socketAddress = w: let c = connectionInfo w; in "${c.host}:${toString (c.port)}";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user