parent
8964667bcd
commit
764cca613d
@ -0,0 +1,89 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.opentsdb; |
||||
|
||||
in { |
||||
|
||||
###### interface |
||||
|
||||
options = { |
||||
|
||||
services.opentsdb = { |
||||
|
||||
enable = mkOption { |
||||
type = types.bool; |
||||
default = false; |
||||
description = '' |
||||
Whether to run OpenTSDB. |
||||
''; |
||||
}; |
||||
|
||||
package = mkOption { |
||||
type = types.package; |
||||
default = pkgs.opentsdb; |
||||
example = literalExample "pkgs.opentsdb"; |
||||
description = '' |
||||
OpenTSDB package to use. |
||||
''; |
||||
}; |
||||
|
||||
user = mkOption { |
||||
type = types.string; |
||||
default = "opentsdb"; |
||||
description = '' |
||||
User account under which OpenTSDB runs. |
||||
''; |
||||
}; |
||||
|
||||
group = mkOption { |
||||
type = types.string; |
||||
default = "opentsdb"; |
||||
description = '' |
||||
Group account under which OpenTSDB runs. |
||||
''; |
||||
}; |
||||
|
||||
port = mkOption { |
||||
type = types.int; |
||||
default = 4242; |
||||
description = '' |
||||
Which port OpenTSDB listens on. |
||||
''; |
||||
}; |
||||
|
||||
}; |
||||
|
||||
}; |
||||
|
||||
###### implementation |
||||
|
||||
config = mkIf config.services.opentsdb.enable { |
||||
|
||||
systemd.services.opentsdb = { |
||||
description = "OpenTSDB Server"; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
requires = [ "hbase.service" ]; |
||||
|
||||
environment.JAVA_HOME = "${pkgs.jre}"; |
||||
|
||||
serviceConfig = { |
||||
PermissionsStartOnly = true; |
||||
User = cfg.user; |
||||
Group = cfg.group; |
||||
ExecStart = "${cfg.package}/bin/tsdb tsd --staticroot=${cfg.package}/share/opentsdb/static --cachedir=/tmp/opentsdb --port=${toString cfg.port}"; |
||||
}; |
||||
}; |
||||
|
||||
users.extraUsers.opentsdb = { |
||||
description = "OpenTSDB Server user"; |
||||
group = "opentsdb"; |
||||
uid = config.ids.uids.opentsdb; |
||||
}; |
||||
|
||||
users.extraGroups.opentsdb.gid = config.ids.gids.opentsdb; |
||||
|
||||
}; |
||||
} |
@ -0,0 +1,21 @@ |
||||
{ stdenv, fetchurl, curl, jdk, jre, makeWrapper, nettools, python }: |
||||
with stdenv.lib; |
||||
stdenv.mkDerivation rec { |
||||
name = "opentsdb-2.0.1"; |
||||
|
||||
src = fetchurl { |
||||
url = https://github.com/OpenTSDB/opentsdb/releases/download/v2.0.1/opentsdb-2.0.1.tar.gz; |
||||
sha256 = "1q2gkl72yjzd8yrggl0018m9s8mc9zwnz3d8ias54vqh3irypc2c"; |
||||
}; |
||||
|
||||
buildPhase = "find ."; |
||||
|
||||
buildInputs = [ curl jdk makeWrapper nettools python ]; |
||||
|
||||
installPhase = '' |
||||
make install |
||||
wrapProgram $out/bin/tsdb \ |
||||
--set JAVA_HOME "${jre}" \ |
||||
--set JAVA "${jre}/bin/java" |
||||
''; |
||||
} |
Loading…
Reference in new issue