mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-24 17:43:19 +01:00
86 lines
2.2 KiB
Nix
86 lines
2.2 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.services.prometheus.exporters.deluge;
|
|
inherit (lib) mkOption types concatStringsSep;
|
|
in
|
|
{
|
|
port = 9354;
|
|
|
|
extraOpts = {
|
|
delugeHost = mkOption {
|
|
type = types.str;
|
|
default = "localhost";
|
|
description = ''
|
|
Hostname where deluge server is running.
|
|
'';
|
|
};
|
|
|
|
delugePort = mkOption {
|
|
type = types.port;
|
|
default = 58846;
|
|
description = ''
|
|
Port where deluge server is listening.
|
|
'';
|
|
};
|
|
|
|
delugeUser = mkOption {
|
|
type = types.str;
|
|
default = "localclient";
|
|
description = ''
|
|
User to connect to deluge server.
|
|
'';
|
|
};
|
|
|
|
delugePassword = mkOption {
|
|
type = types.nullOr types.str;
|
|
default = null;
|
|
description = ''
|
|
Password to connect to deluge server.
|
|
|
|
This stores the password unencrypted in the nix store and is thus considered unsafe. Prefer
|
|
using the delugePasswordFile option.
|
|
'';
|
|
};
|
|
|
|
delugePasswordFile = mkOption {
|
|
type = types.nullOr types.path;
|
|
default = null;
|
|
description = ''
|
|
File containing the password to connect to deluge server.
|
|
'';
|
|
};
|
|
|
|
exportPerTorrentMetrics = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = ''
|
|
Enable per-torrent metrics.
|
|
|
|
This may significantly increase the number of time series depending on the number of
|
|
torrents in your Deluge instance.
|
|
'';
|
|
};
|
|
};
|
|
serviceOpts = {
|
|
serviceConfig = {
|
|
ExecStart = ''
|
|
${pkgs.prometheus-deluge-exporter}/bin/deluge-exporter
|
|
'';
|
|
Environment = [
|
|
"LISTEN_PORT=${toString cfg.port}"
|
|
"LISTEN_ADDRESS=${toString cfg.listenAddress}"
|
|
|
|
"DELUGE_HOST=${cfg.delugeHost}"
|
|
"DELUGE_USER=${cfg.delugeUser}"
|
|
"DELUGE_PORT=${toString cfg.delugePort}"
|
|
] ++ lib.optionals (cfg.delugePassword != null) [
|
|
"DELUGE_PASSWORD=${cfg.delugePassword}"
|
|
] ++ lib.optionals cfg.exportPerTorrentMetrics [
|
|
"PER_TORRENT_METRICS=1"
|
|
];
|
|
EnvironmentFile = lib.optionalString (cfg.delugePasswordFile != null) "/etc/deluge-exporter/password";
|
|
};
|
|
};
|
|
}
|