parent
76bf59a231
commit
d18ba0f50d
@ -0,0 +1,56 @@ |
||||
{ config, stdenv, pkgs, lib, ... }: |
||||
|
||||
with lib; |
||||
|
||||
{ |
||||
options = { |
||||
services.toxvpn = { |
||||
enable = mkOption { |
||||
type = types.bool; |
||||
default = false; |
||||
description = "enable toxvpn running on startup"; |
||||
}; |
||||
|
||||
localip = mkOption { |
||||
type = types.string; |
||||
default = "10.123.123.1"; |
||||
description = "your ip on the vpn"; |
||||
}; |
||||
|
||||
port = mkOption { |
||||
type = types.int; |
||||
default = 33445; |
||||
description = "udp port for toxcore, port-forward to help with connectivity if you run many nodes behind one NAT"; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf config.services.toxvpn.enable { |
||||
systemd.services.toxvpn = { |
||||
description = "toxvpn daemon"; |
||||
|
||||
requires = [ "network-online.target" ]; # consider replacing by NetworkManager-wait-online.service |
||||
wantedBy = [ "multi-user.target" ]; |
||||
|
||||
preStart = '' |
||||
mkdir -p /run/toxvpn || true |
||||
chown toxvpn /run/toxvpn |
||||
''; |
||||
|
||||
serviceConfig = { |
||||
ExecStart = "${pkgs.toxvpn}/bin/toxvpn -i ${config.services.toxvpn.localip} -l /run/toxvpn/control -u toxvpn -p ${toString config.services.toxvpn.port}"; |
||||
KillMode = "process"; |
||||
Restart = "on-success"; |
||||
Type = "notify"; |
||||
}; |
||||
}; |
||||
|
||||
users.extraUsers = { |
||||
toxvpn = { |
||||
uid = config.ids.uids.toxvpn; |
||||
home = "/var/lib/toxvpn"; |
||||
createHome = true; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,36 @@ |
||||
{ stdenv, fetchFromGitHub, libtoxcore, cmake, jsoncpp, lib, stdenvAdapters, libsodium, systemd, enableDebugging, libcap }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
libtoxcoreLocked = stdenv.lib.overrideDerivation libtoxcore (oldAttrs: { |
||||
name = "libtoxcore-20151110"; |
||||
src = fetchFromGitHub { |
||||
owner = "irungentoo"; |
||||
repo = "toxcore"; |
||||
rev = "22634a4b93dda5b17cb357cd84ac46fcfdc22519"; |
||||
sha256 = "01i92wm5lg2p7k71qn23sfh01xi8acdrwn23rk52n54h424l1fgy"; |
||||
}; |
||||
}); |
||||
|
||||
in stdenv.mkDerivation { |
||||
name = "toxvpn-20151111"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "cleverca22"; |
||||
repo = "toxvpn"; |
||||
rev = "1d06bb7da277d46abb8595cf152210c4ccf0ba7d"; |
||||
sha256 = "1himrbdgsbkfha1d87ysj2hwyz4a6z9yxqbai286imkya84q7r15"; |
||||
}; |
||||
|
||||
buildInputs = [ cmake libtoxcoreLocked jsoncpp libsodium systemd libcap ]; |
||||
|
||||
cmakeFlags = [ "-DSYSTEMD=1" ]; |
||||
|
||||
meta = { |
||||
description = "A powerful tool that allows one to make tunneled point to point connections over Tox"; |
||||
homepage = https://github.com/cleverca22/toxvpn; |
||||
license = licenses.gpl3; |
||||
platforms = platforms.linux; |
||||
}; |
||||
} |
Loading…
Reference in new issue