mastus: add wstunnel
This commit is contained in:
		
							parent
							
								
									6c86c80e07
								
							
						
					
					
						commit
						d403cf223a
					
				@ -13,6 +13,7 @@
 | 
				
			|||||||
      ./gogs.nix
 | 
					      ./gogs.nix
 | 
				
			||||||
      ./letsencrypt.nix
 | 
					      ./letsencrypt.nix
 | 
				
			||||||
      ./website.nix
 | 
					      ./website.nix
 | 
				
			||||||
 | 
					      ./wstunnel.nix
 | 
				
			||||||
      ./radicale.nix
 | 
					      ./radicale.nix
 | 
				
			||||||
      ./ttrss.nix
 | 
					      ./ttrss.nix
 | 
				
			||||||
      ./dns.nix
 | 
					      ./dns.nix
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,12 @@ let
 | 
				
			|||||||
      '';
 | 
					      '';
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    environment.systemPackages = with pkgs; [ elinks carddav-util fcgi ];
 | 
					    environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					      elinks
 | 
				
			||||||
 | 
					      carddav-util
 | 
				
			||||||
 | 
					      fcgi
 | 
				
			||||||
 | 
					      (haskell.lib.justStaticExecutables (haskellPackages.callPackage ../pkgs/wstunnel.nix {}))
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    networking.extraHosts = ''
 | 
					    networking.extraHosts = ''
 | 
				
			||||||
      127.0.0.1 gebner.org www.gebner.org reader.gebner.org git.gebner.org mail.gebner.org radicale.gebner.org gabrielebner.at
 | 
					      127.0.0.1 gebner.org www.gebner.org reader.gebner.org git.gebner.org mail.gebner.org radicale.gebner.org gabrielebner.at
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										26
									
								
								mastus/wstunnel.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										26
									
								
								mastus/wstunnel.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  wstunnel = with pkgs; haskell.lib.justStaticExecutables
 | 
				
			||||||
 | 
					    (haskellPackages.callPackage ../pkgs/wstunnel.nix {});
 | 
				
			||||||
 | 
					  port = 58613;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  systemd.services.wstunnel = rec {
 | 
				
			||||||
 | 
					    path = [ wstunnel ];
 | 
				
			||||||
 | 
					    wantedBy = [ "nginx.service" ];
 | 
				
			||||||
 | 
					    after = [ "network.target" ];
 | 
				
			||||||
 | 
					    script = ''
 | 
				
			||||||
 | 
					      wstunnel -v --server --restrictTo=htdf-gw.gebner.org:35869 ws://localhost:${toString port}
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.nginx.virtualHosts."gebner.org".locations = {
 | 
				
			||||||
 | 
					    "/wstunnel/udp/htdf-gw.gebner.org/35869" = {
 | 
				
			||||||
 | 
					      proxyWebsockets = true;
 | 
				
			||||||
 | 
					      proxyPass = "http://localhost:${toString port}";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										47
									
								
								pkgs/wstunnel.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										47
									
								
								pkgs/wstunnel.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					{ mkDerivation, async, base, base64-bytestring, binary, bytestring
 | 
				
			||||||
 | 
					, classy-prelude, cmdargs, connection, hslogger, mtl, network
 | 
				
			||||||
 | 
					, network-conduit-tls, stdenv, streaming-commons, text
 | 
				
			||||||
 | 
					, unordered-containers, websockets
 | 
				
			||||||
 | 
					, lib, fetchFromGitHub, fetchpatch
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkDerivation rec {
 | 
				
			||||||
 | 
					  pname = "wstunnel";
 | 
				
			||||||
 | 
					  version = "unstable-2019-01-28";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  src = fetchFromGitHub {
 | 
				
			||||||
 | 
					    owner = "erebe";
 | 
				
			||||||
 | 
					    repo = pname;
 | 
				
			||||||
 | 
					    rev = "78cc5a5f1aa4dbcb25fa9b0efc9cfef3640672e4";
 | 
				
			||||||
 | 
					    sha256 = "17y3yn7qg1h7jx9xs041sw63g51vyns236f60d2m2mghi49lm9i2";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  patches = [
 | 
				
			||||||
 | 
					    # Support GHC 8.6   https://github.com/erebe/wstunnel/pull/18
 | 
				
			||||||
 | 
					    (fetchpatch {
 | 
				
			||||||
 | 
					      url = "https://github.com/erebe/wstunnel/commit/8f348fea4dbf75874d5d930334377843763335ab.patch";
 | 
				
			||||||
 | 
					      sha256 = "0a66jx7k97j3iyr7j5npbyq1lkhzz74r81mkas4nig7z3hny1gn9";
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  isLibrary = false;
 | 
				
			||||||
 | 
					  isExecutable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  libraryHaskellDepends = [
 | 
				
			||||||
 | 
					    async base base64-bytestring binary bytestring classy-prelude
 | 
				
			||||||
 | 
					    connection hslogger mtl network network-conduit-tls
 | 
				
			||||||
 | 
					    streaming-commons text unordered-containers websockets
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  executableHaskellDepends = [
 | 
				
			||||||
 | 
					    base bytestring classy-prelude cmdargs hslogger text
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  testHaskellDepends = [ base text ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  homepage = "https://github.com/githubuser/wstunnel";
 | 
				
			||||||
 | 
					  description = "UDP and TCP tunnelling over WebSocket";
 | 
				
			||||||
 | 
					  maintainers = with lib.maintainers; [ gebner ];
 | 
				
			||||||
 | 
					  license = lib.licenses.bsd3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user