summaryrefslogtreecommitdiffstats
path: root/makefu/3modules/deluge.nix
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/3modules/deluge.nix')
-rw-r--r--makefu/3modules/deluge.nix185
1 files changed, 0 insertions, 185 deletions
diff --git a/makefu/3modules/deluge.nix b/makefu/3modules/deluge.nix
deleted file mode 100644
index bbdd1845..00000000
--- a/makefu/3modules/deluge.nix
+++ /dev/null
@@ -1,185 +0,0 @@
-{ config, lib, pkgs, ... }:
-# based on <nixpkgs>/nixos/modules/services/torrent/deluge.nix
-with import <stockholm/lib>;
-
-let
- cfg_daemon = config.makefu.deluge;
- homedir = cfg_daemon.homedir;
- delugedir = "${homedir}/.config/deluge";
- cfg_web = config.makefu.deluge.web;
- core_conf = pkgs.writeText "deluge-core-cfg" ''
- {
- "file": 1,
- "format": 1
- }${builtins.toJSON (default_core_cfg // cfg_daemon.cfg)}
- '';
-
- default_core_cfg = {
- # ports and networking
- daemon_port = 58846; allow_remote = false;
- listen_ports = [ 0 0 ]; # from -> to, 0 -> random
- outgoing_ports = [ 0 0 ];
- random_port = true;
- random_outgoing_ports = true;
- listen_interface = "";
- # folders
- move_completed_path = homedir +"/complete"; move_completed = false;
- autoadd_location = homedir + "/watch"; autoadd_enable = true;
- download_location = homedir + "/data";
- torrentfiles_location = homedir + "/torrents"; copy_torrent_file = false; del_copy_torrent_file = false;
- plugins_location = homedir + "/.config/deluge/plugins"; enabled_plugins = [];
- geoip_db_location = pkgs.geolite-legacy + "/share/GeoIP/GeoIP.dat";
- queue_new_to_top = false;
- info_sent = 0;
- send_info = false;
- compact_allocation = false;
- # peer discovery, extras
- lsd = true;
- natpmp = true;
- utpex = false;
- dht = false;
- upnp = true;
- peer_tos = "0x08";
- # active torrents
- dont_count_slow_torrents = false;
- max_active_limit = -1;
- max_active_downloading = -1;
- max_active_seeding = -1;
- max_upload_slots_global = -1;
- # seeding
- share_ratio_limit = -1;
- seed_time_ratio_limit = -1;
- seed_time_limit = 180;
- stop_seed_at_ratio = false;
- remove_seed_at_ratio = false;
- stop_seed_ratio = 2;
- # speed and connections
- rate_limit_ip_overhead = true;
- ignore_limits_on_local_network = true;
- max_download_speed = -1;
- max_upload_speed = -1;
- max_upload_speed_per_torrent = -1;
- max_download_speed_per_torrent = -1;
- max_half_open_connections = -1;
- max_connections_global = -1;
- max_connections_per_second = -1;
- max_connections_per_torrent = -1;
- max_upload_slots_per_torrent = -1;
- enc_in_policy = 1;
- enc_prefer_rc4 = true;
- enc_level = 2;
- enc_out_policy = 1;
- cache_size = 8192;
- cache_expiry = 60;
- prioritize_first_last_pieces = false;
- auto_managed = true;
- proxies = {
- peer = {
- username = "";
- password = "";
- hostname = "";
- type = 0;
- port = 8080;
- };
- web_seed = {
- username = "";
- password = "";
- hostname = "";
- type = 0;
- port = 8080;
- };
- tracker = {
- username = "";
- password = "";
- hostname = "";
- type = 0;
- port = 8080;
- };
- dht = {
- username = "";
- password = "";
- hostname = "";
- type = 0;
- port = 8080;
- };
- };
- add_paused = false;
- new_release_check = false;
- };
-
- api = {
- enable = mkEnableOption "deluge daemon";
-
- cfg = mkOption {
- default = default_core_cfg;
- type = types.attrsOf types.unspecified;
- description = ''
- for full configuration see defaults
- '';
- example = {
- "daemon_port"= 58846;
- "download_location"= "/var/download";
- };
- };
-
- auth = mkOption {
- default = [];
- example = ["alice:MyC0mpL3xPass:10"];
- type = types.lines;
- };
-
- homedir = mkOption {
- default = "/var/lib/deluge";
- description = "Home directory of deluge user";
- type = types.str;
- };
-
- web = {
- enable = mkEnableOption "deluge web";
- };
- };
- imp = {
-
- systemd.services.deluged = {
- after = [ "network.target" ];
- description = "Deluge BitTorrent Daemon";
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluged -d";
- ExecStartPre = let
- in pkgs.writeDash "deluged-init" ''
- mkdir -p ${delugedir}
- echo ${shell.escape cfg_daemon.auth} > ${delugedir}/auth
- cp -f ${core_conf} ${delugedir}/core.conf
- '';
- Restart = "on-success";
- User = "deluge";
- Group = "deluge";
- };
- };
-
- systemd.services.delugeweb = mkIf cfg_web.enable {
- after = [ "network.target" ];
- description = "Deluge BitTorrent WebUI";
- wantedBy = [ "multi-user.target" ];
- serviceConfig.ExecStart = "${pkgs.pythonPackages.deluge}/bin/deluge --ui web";
- serviceConfig.User = "deluge";
- serviceConfig.Group = "deluge";
- };
-
- environment.systemPackages = [ pkgs.pythonPackages.deluge ];
-
- users.extraUsers.deluge = {
- group = "deluge";
- uid = config.ids.uids.deluge;
- home = cfg_daemon.homedir;
- createHome = true;
- description = "Deluge Daemon user";
- };
-
- users.extraGroups.deluge.gid = config.ids.gids.deluge;
- };
-in {
- options.makefu.deluge = api;
- config = lib.mkIf cfg_daemon.enable imp;
-}