76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   flake.modules.nixos."hosts/loptland" =
 | |
|     {
 | |
|       config,
 | |
|       lib,
 | |
|       pkgs,
 | |
|       ...
 | |
|     }:
 | |
|     let
 | |
|       domainName = "christophhollizeck.dev";
 | |
|       forgejoPort = 3000;
 | |
|       hydraPort = 2000;
 | |
|     in
 | |
|     {
 | |
|       services.nginx = {
 | |
|         enable = true;
 | |
|         recommendedProxySettings = true;
 | |
| 
 | |
|         virtualHosts = {
 | |
|           "git.${domainName}" = {
 | |
|             forceSSL = true;
 | |
|             useACMEHost = domainName;
 | |
| 
 | |
|             locations."/" = {
 | |
|               extraConfig = ''
 | |
|                 client_max_body_size 200M;
 | |
|               '';
 | |
|               proxyPass = "http://localhost:${toString forgejoPort}/";
 | |
|             };
 | |
|           };
 | |
| 
 | |
|           "hydra.${domainName}" = lib.mkIf config.services.hydra.enable {
 | |
|             forceSSL = true;
 | |
|             useACMEHost = domainName;
 | |
| 
 | |
|             locations."/" = {
 | |
|               proxyPass = "http://localhost:${toString hydraPort}/";
 | |
|             };
 | |
|           };
 | |
| 
 | |
|           "ha.${domainName}" = {
 | |
|             forceSSL = true;
 | |
|             useACMEHost = domainName;
 | |
| 
 | |
|             locations."/" = {
 | |
|               # tailscale ip
 | |
|               extraConfig = ''
 | |
|                 proxy_set_header Upgrade $http_upgrade;
 | |
|                 proxy_set_header Connection "upgrade";
 | |
|               '';
 | |
|               proxyPass = "http://100.86.23.74:8123";
 | |
|             };
 | |
|           };
 | |
| 
 | |
|           "nixcache.${domainName}" = lib.mkIf config.services.nix-serve.enable {
 | |
|             forceSSL = true;
 | |
|             useACMEHost = domainName;
 | |
| 
 | |
|             locations."/" = {
 | |
|               proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
 | |
|             };
 | |
|           };
 | |
| 
 | |
|           "_" = {
 | |
|             forceSSL = true;
 | |
|             useACMEHost = domainName;
 | |
| 
 | |
|             locations."/" = {
 | |
|               proxyPass = "https://${domainName}";
 | |
|             };
 | |
|           };
 | |
|         };
 | |
|       };
 | |
| 
 | |
|     };
 | |
| }
 |