Jump to content

Transmission: Difference between revisions

From Official NixOS Wiki
imported>Jmarmstrong1207
Change to outdated tag
Service configuration: GTK or QT packages are not required for the transmission systemd service. The default package is the CLI daemon.
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{expansion}}
{{expansion}}
[https://transmissionbt.com/ Transmission] is a lightweight, open-source BitTorrent client for Linux that provides both GUI and command-line interfaces for efficient torrent downloading and seeding.
== Installation ==
== Installation ==
Install by adding transmission_4-qt or transmission_4-gtk to your packages list
Install by adding transmission_4-qt or transmission_4-gtk to your packages list
Line 5: Line 7:
environment.systemPackages = with pkgs; [ transmission_4-qt ];
environment.systemPackages = with pkgs; [ transmission_4-qt ];
</syntaxHighlight>
</syntaxHighlight>
<syntaxHighlight lang=nix>
<syntaxhighlight lang="nix">environment.systemPackages = with pkgs; [ transmission_4-gtk ];</syntaxhighlight>
environment.systemPackages = with pkgs; [ transmission_4-gtk ];
 
</syntaxHighlight>
Transmission 3 has been deprecated in the 25.05 channel and removed in favor of version 4 in the 25.11 channel onwards.
If you still rely on it, consider making a backup before upgrading to transmission 4.


== Service configuration ==
== Service configuration ==
{{outdated | This section was created in 2017 and this workaround may not be needed anymore for changing settings. This will stay until final confirmation occurs.}}
The transmission daemon can be enabled declaratively as a <code>systemd</code> service with the settings under <code>services.transmission.settings</code>. [https://search.nixos.org/options?type=packages&query=transmission.settings View the documentation for more info].


Changes to the configuration in the interface will not persist when the application is re-launched. <code>services.transmission.settings</code> is reset each time the service restarts.
Note that <code>services.transmission.package</code> defaults to:


<blockquote>
* <code>transmission_3</code> in the deprecated 25.05 channel
Attribute set whos[e] fields overwrites fields in settings.json (each
* <code>transmission_4</code> from 25.11 onwards
time the service starts). String values must be quoted, integer and
boolean values must not.
</blockquote>
<cite>[https://github.com/NixOS/nixpkgs/blob/dd705fb45fd17c078522dedb76ee710ed4d3af4b/nixos/modules/services/torrent/transmission.nix#L64:L71 <nixpkgs>/nixos/modules/services/torrent/transmission.nix]</cite>


To persist changes, edit them, look at the <code>[services.transmission.home]/.config/transmission-daemon/settings.json</code> file generated for the setting keys and their values, and save them to <code>services.transmission.settings</code>
Example:
<syntaxHighlight lang=nix>
services.transmission.settings = {
  download-dir = "${config.services.transmission.home}/Downloads";
};
 
</syntaxHighlight>


=== Password-protected RPC ===
=== Password-protected RPC ===

Latest revision as of 02:57, 15 December 2025

☶︎
This article or section needs to be expanded. Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.

Transmission is a lightweight, open-source BitTorrent client for Linux that provides both GUI and command-line interfaces for efficient torrent downloading and seeding.

Installation

Install by adding transmission_4-qt or transmission_4-gtk to your packages list

environment.systemPackages = with pkgs; [ transmission_4-qt ];
environment.systemPackages = with pkgs; [ transmission_4-gtk ];

Transmission 3 has been deprecated in the 25.05 channel and removed in favor of version 4 in the 25.11 channel onwards. If you still rely on it, consider making a backup before upgrading to transmission 4.

Service configuration

The transmission daemon can be enabled declaratively as a systemd service with the settings under services.transmission.settings. View the documentation for more info.

Note that services.transmission.package defaults to:

  • transmission_3 in the deprecated 25.05 channel
  • transmission_4 from 25.11 onwards

Example:

services.transmission.settings = {
  download-dir = "${config.services.transmission.home}/Downloads";
};

Password-protected RPC

The default method of editing the configuration and restarting the daemon will not work because of the way the configuration is handled. It is however possible to once set it in clear in the settings, and then copy the generated hash to the setting, removing the in-clear copy from the configuration.

Example: allow remote access

To control the daemon remotely, put the following lines in your /etc/nixos/configuration.nix:

services.transmission = { 
    enable = true; #Enable transmission daemon
    openRPCPort = true; #Open firewall for RPC
    settings = { #Override default settings
      rpc-bind-address = "0.0.0.0"; #Bind to own IP
      rpc-whitelist = "127.0.0.1,10.0.0.1"; #Whitelist your remote machine (10.0.0.1 in this example)
    };
  };