92 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { inputs, pkgs, ... }:
 | |
| 
 | |
| {
 | |
|   imports = [
 | |
|     ./vm-base.nix
 | |
|   ];
 | |
| 
 | |
|   config = {
 | |
|     my.vm = {
 | |
|       name = "lab01";
 | |
|       ip4 = "192.168.0.5";
 | |
|     };
 | |
| 
 | |
|     # environment.systemPackages = with pkgs; [
 | |
| 
 | |
|     # ];
 | |
| 
 | |
|     networking.firewall.allowedTCPPorts = [ 80 443 ];
 | |
| 
 | |
|     services.caddy = {
 | |
|       enable = true;
 | |
|       virtualHosts = {
 | |
|         "feed.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.5:8080
 | |
|         '';
 | |
|         "barkeep.dukeceph.xyz".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.2:8000
 | |
|         '';
 | |
|         "barkeep.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.2:8000
 | |
|         '';
 | |
|         "minecraft.dukeceph.xyz".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.4:8080
 | |
|         '';
 | |
|         "immich.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.2:2283
 | |
|         '';
 | |
|         "metrics.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.2:3000
 | |
|         '';
 | |
|         "jellyfin.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.2:8096
 | |
|         '';
 | |
|         "forge.rperce.net".extraConfig = ''
 | |
|           reverse_proxy http://192.168.0.5:3333
 | |
|         '';
 | |
|         "unifi.rperce.net".extraConfig = ''
 | |
|           reverse_proxy 192.168.0.100:8443 {
 | |
|             transport http {
 | |
|               tls_insecure_skip_verify
 | |
|             }
 | |
|             header_up - Authorization
 | |
|           }
 | |
|         '';
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     services.miniflux = {
 | |
|       enable = true;
 | |
|       adminCredentialsFile = "/mnt/nfs/miniflux/admin-credentials";
 | |
|       config = {
 | |
|         LISTEN_ADDR = "0.0.0.0:8080";
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     # not working yet, so caddy is still pointing at xalicas
 | |
|     services.immich = {
 | |
|       enable = true;
 | |
|       host = "0.0.0.0";
 | |
|       port = 2293;
 | |
|     };
 | |
| 
 | |
|     services.forgejo = {
 | |
|       enable = true;
 | |
|       database.type = "postgres";
 | |
|       lfs.enable = true;
 | |
|       settings = {
 | |
|         server = {
 | |
|           DOMAIN = "forge.rperce.net";
 | |
|           ROOT_URL = "https://forge.rperce.net/";
 | |
|           HTTP_PORT = 3333;
 | |
|         };
 | |
|         service.DISABLE_REGISTRATION = true;
 | |
|         actions = {
 | |
|           ENABLED = true;
 | |
|           DEFAULT_ACTIONS_URL = "github";
 | |
|         };
 | |
|         mailer.ENABLED = false;
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |