media-server: add vpn module
This commit is contained in:
		
							parent
							
								
									54469932ca
								
							
						
					
					
						commit
						33e5d8fbea
					
				
					 3 changed files with 46 additions and 1 deletions
				
			
		|  | @ -8,7 +8,7 @@ | ||||||
| 
 | 
 | ||||||
|   inherit (config.ooknet) host; |   inherit (config.ooknet) host; | ||||||
|   inherit (host) admin; |   inherit (host) admin; | ||||||
|   inherit (config.services) tailscale; |   inherit (config.services) tailscale transmission; | ||||||
| in { | in { | ||||||
|   age.identityPaths = [ |   age.identityPaths = [ | ||||||
|     "/home/${admin.name}/.ssh/id_ed25519" |     "/home/${admin.name}/.ssh/id_ed25519" | ||||||
|  | @ -36,5 +36,8 @@ in { | ||||||
|       owner = "${admin.name}"; |       owner = "${admin.name}"; | ||||||
|       group = "users"; |       group = "users"; | ||||||
|     }; |     }; | ||||||
|  |     mullvad_wg = mkIf transmission.enable { | ||||||
|  |       file = "${self}/secrets/mullvad_wg.age"; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| { | { | ||||||
|   lib, |   lib, | ||||||
|   config, |   config, | ||||||
|  |   inputs, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib) mkIf elem; |   inherit (lib) mkIf elem; | ||||||
|  | @ -13,6 +14,8 @@ in { | ||||||
|     ./jellyfin.nix |     ./jellyfin.nix | ||||||
|     ./transmission.nix |     ./transmission.nix | ||||||
|     ./file-permissions.nix |     ./file-permissions.nix | ||||||
|  |     ./vpn.nix | ||||||
|  |     inputs.vpn-confinement.nixosModules.default | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   # short cut for enabling all media-server modules |   # short cut for enabling all media-server modules | ||||||
|  |  | ||||||
							
								
								
									
										39
									
								
								modules/nixos/server/services/media-server/vpn.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/nixos/server/services/media-server/vpn.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib) mkIf; | ||||||
|  |   inherit (config.ooknet.server.media-server) ports transmission; | ||||||
|  |   inherit (config.age) secrets; | ||||||
|  | in { | ||||||
|  |   config = mkIf transmission.enable { | ||||||
|  |     vpnNamespaces.wg = { | ||||||
|  |       enable = true; | ||||||
|  |       wireguardConfigFile = secrets.mullvad_wg.path; | ||||||
|  |       accessibleFrom = [ | ||||||
|  |         "192.168.0.1/24" | ||||||
|  |         "127.0.0.1" | ||||||
|  |         "10.0.0.0/8" | ||||||
|  |       ]; | ||||||
|  |       openVPNPorts = [ | ||||||
|  |         # Transmission | ||||||
|  |         { | ||||||
|  |           port = ports.transmission.peer; | ||||||
|  |           protocol = "both"; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |       portMappings = [ | ||||||
|  |         # Transmission | ||||||
|  |         { | ||||||
|  |           from = ports.transmission.web; | ||||||
|  |           to = ports.transmission.web; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |     systemd.services.transmission.vpnConfinement = { | ||||||
|  |       enable = true; | ||||||
|  |       vpnNamespace = "wg"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue