ookflix: add gluetun
This commit is contained in:
		
							parent
							
								
									7da5a6a4a6
								
							
						
					
					
						commit
						4ee2e2a877
					
				
					 1 changed files with 39 additions and 0 deletions
				
			
		
							
								
								
									
										39
									
								
								modules/nixos/server/services/ookflix/gluetun.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/nixos/server/services/ookflix/gluetun.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ook, | ||||
|   self, | ||||
|   ... | ||||
| }: let | ||||
|   ookflixLib = import ./lib.nix {inherit self lib config;}; | ||||
|   inherit (ookflixLib) mkServiceUser; | ||||
|   inherit (lib) mkIf; | ||||
|   inherit (ook.lib.container) mkContainerEnvironment mkContainerPort mkServiceSecret; | ||||
|   inherit (config.ooknet.server.ookflix.services) transmission gluetun; | ||||
| in { | ||||
|   config = mkIf gluetun.enable { | ||||
|     users = mkServiceUser gluetun.user.name; | ||||
|     age.secrets.vpn_env = mkServiceSecret "vpn_env" "gluetun"; | ||||
|     virtualisation.oci-containers.containers = { | ||||
|       # vpn container | ||||
|       gluetun = mkIf { | ||||
|         image = "qmcgaw/gluetun:latest"; | ||||
|         # should make this an option. | ||||
|         environmentFiles = [config.age.secrets.vpn_env.path]; | ||||
|         ports = [ | ||||
|           (mkContainerPort transmission.port) | ||||
|         ]; | ||||
|         environment = mkContainerEnvironment gluetun.user.id gluetun.group.id { | ||||
|           VPN_SERVICE_PROVIDER = gluetun.provider; | ||||
|           VPN_TYPE = "wireguard"; | ||||
|         }; | ||||
|         extraOptions = [ | ||||
|           # give network admin permissions | ||||
|           "--cap-add=NET_ADMIN" | ||||
|           # pass the network tunnel device | ||||
|           "--device=/dev/net/tun" | ||||
|         ]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue