mastus: add wstunnel
This commit is contained in:
parent
6c86c80e07
commit
d403cf223a
@ -13,6 +13,7 @@
|
||||
./gogs.nix
|
||||
./letsencrypt.nix
|
||||
./website.nix
|
||||
./wstunnel.nix
|
||||
./radicale.nix
|
||||
./ttrss.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 = ''
|
||||
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