view · edit · print · history

CGI interface to daemon is for managing and preview of the daemon state. There is also torrent_watchdog script for automatic torrent queue processing and mail notification.


  • multithreading (eg. 10 torrents simultaneously with nice priority)
  • Multitracker, PEX support, UPNP support, Encryption support, Bandwith limiting
  • automatic seeding when torrent finishes (configurable)
  • configurable port
  • WWW interface transmission.cgi can be public (no password) as there is no delete provided. (old versions)
  • Clutch WWW Interface with username and password. (for versions > 1.31)
  • Accelerator keys (ALT-key) for CGI interface. See help for underlined keys.
  • Per torrent and cumulative status
  • start/stop/push/bypass and other commands available in WWW interface
  • lightweight - low memory footprint
  • tracker scrape info. Suggest best seed torrent from target dir.
  • watchdog for auto restart/queue processing with cron
  • syslog watchdog events
  • mail notify when torrent finishes
  • no state database required. Directory tree is database (slow, but fail-safe)
  • stable and portable. Developed on Asus WL-500g Deluxe with Oleg firmware


Transmission 2.73+

SRS November 30, 2016


Now please obtain .ipk for current releases transmission NSLU2 Unslung from

If you need dependencies you can use what are at

GUI and web-client are at

It is very well advised to update the web client
after the install of the .ipk to where overwrite the installed .ipk web-client files

If you wish to compile yourself for Optware or Unslung the sources are

If you need GUI for other than platform Windows,
like Mac or Linux, compile from the sources.


Please, freely ask for support at





For many other or newer devices like NAS, routers, etc.
you'll find pre-compiled .ipk at
The package you want is:


how to setup the feeds is there at Optware-ng
Available feeds http://ipkg.nslu2-linux.org/optware-ng/
ARMv7? EABI hardfloat
ARMv7? EABI softfloat
ARMv5? EABI legacy
PowerPC? 603e
PowerPC? e500v2

The OLD releases will remain at
http:// computerfixpro.com/transmission273p-OLD.zip
http:// computerfixpro.com/transmission242p-OLD.zip
http:// computerfixpro.com/transmission176nslu2-OLD.zip
http:// computerfixpro.com/Transmission-176-NSLU2-OLD.zip
http:// transmissionbt.net/transmission273p-OLD.zip


January 20, 2016

Download the pre-built .ipk from here: http:// transmissionbt.net/transmission273p.zip

Mac and Windows updated remote GUI http:// transmissionbt.net/trs-rmt-gui-updates.zip

January 20, 2016 changes:



Easy guide to stream the torrent's file(s):

http:// sourceforge.net/p/transmissiondaemon/discussion/general/thread/57f64ca4/

Other non-official enhancements:


all bug fixes and enhancements through current version 2.77+ (core) and 2.84+ (trunk, except rename)

and optimized for NSLU2.

also version for temporary pieces included

Working very nicely, extremely stable.

use the regular or the piece-temp, whatever you prefer

reference: http:// trac.transmissionbt.com/ticket/532#comment:148

January 20, 2016 Download the pre-built .ipk from here: http:// transmissionbt.net/transmission273p.zip

you can review and/or compile the source code for the above at: http:// github.com/cfpp2p/transmission/wiki

to install:

ipkg install transmission_2.73+-1_armeb-I6L-Public.ipk

be SURE to include the .ipk else ipkg install will try to download it

you may need to:

ipkg remove transmission if there is a version conflict


don't forget:

Package: transmission

Version: 2.77+-1

Depends: openssl, libcurl, libevent, zlib


August 8, 2014 A very good update to the remote GUI is ready:

http:// transmissionbt.net/Win_GUI-080614.zip (Windows ONLY) August 8, 2014

This newer one has enhancements and fixes over the older one. Recommend.


Here is a very very nice Graphical User Interface for transmission 2.77+

http:// computerfixpro.com/WIN_GUI.zip (Windows ONLY) 09/16/2013

that supports the download queue and status, filter torrents with errors,

graphing, etc. many nice things. Give credit to Ivanal:

http:// code.google.com/p/transmisson-remote-gui/issues/detail?id=463

who worked hard to produce a fantastic update to:

http:// code.google.com/p/transmisson-remote-gui/ (MAC, LINUX, WIN)


Native compile/build Transmission



Version 2.x and above

Version 2.22-2 is fully functional

Due to the hard work of a couple of people. They deserve a hard earned THANKS from everyone...

_______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________

Although http:// trac.transmissionbt.com/ticket/2858

said that the issue is fixed, when tried, version 2.22 from the

optware feeds STILL produces many many hash check fails.

SO... it does NOT appear solved for the NSLU2.

The problem may be related to:

http:// trac.transmissionbt.com/ticket/3826

https://(approve sites) trac.transmissionbt.com/ticket/3826

and the platform of the NSLU2:


and the glibc or uclibc version. Maybe someone will

have time to sort this out and post it here.

Reverted back to v1.76 :

    http:// computerfixpro.com/Transmission-176-NSLU2.zip 

Version 1.76 woks great!

If anyone has got a version above 1.76 functioning maybe

they'll post how to do it here!

Version 1.73-1 NOTES

August 2, 2009 SRS

umask support was added in v1.73. You may change its value in the

/root/.config/transmission-daemon/settings.json file:

it is set as "umask": 18, this is decimal 18 or octal 022, which is

the most commonly used value. From the documentation:

' umask: Number (default = 022) Set transmission's file mode creation mask.

See { the umask(2) manpage} for more information. Users who want their

saved torrents to be world-writable may want to set this value to 0. '

Note: The client must be closed before making changes to settings.json,

otherwise settings will be reverted to it's previous state.


A lot of people are asking why Transmisson "freezes" when it starts

downloading a torrent.

This is usually because "preallocation": 2, is the value in settings.json.

From the documentation:

' * preallocation: Number (0 = Off, 1 = Fast, 2 = Full (slower but reduces disk fragmentation), default = 1) '

I keep the default setting of 2 which is very slow, but sometimes

use a value of 1 which is fast and seems to work fine.

Version 1.70-2 NOTES

June, 7, 2009 SRS

For private trackers you should disable the new Distributed hash table (DHT) support.

When Using transmission-daemon Web GUI this is ENABLED by default!

This can only be disabled by editing the settings.json file.

Use 'vi' to edit:

vi /root/.config/transmission-daemon/settings.json

change line to: "dht-enabled": false,

You may want to disable this for public trackers in many cases also.

Version 1.70 seems to work very nicely and fixes several irritations/bugs of version 1.61.

Version 1.42-1 NOTES

  • With version 1.42 functionality for an IP address
  • whitelist became active for the WebGUI?.
  • ( See http:// trac.transmissionbt.com/ticket/1583 )
  • So you MUST specify the "rpc-whitelist" setting in the
  • settings.json file. You can do so by editing settings.json
  • directly or using the -a option when starting
  • transmission-daemon:
  • -a --allowed x.x.x.x,...
  • Allow RPC accecss to a comma-delimited whitelist
  • of IP addresses. Wildcards can be specified
  • in an address by using '*'.
  • Default: "" Example: "127.0.0.*,192.168.1.*"
  • The option sticks in future starts of transmission-daemon.
  • A value of *.*.*.* allows all IP addresses.
  • Also note the rpc-whitelist-enabled key is NON functional
  • for the clutch WebGUI?

Version 1.3x

New version of Transmission based on the 1.3 branch is now available via ipkg install. Most of the instructions below the dividing line are now invalid. Transmission 1.3x comes with Clutch Web UI.

1) setup optware ipkg
2) # ipkg update
3) # ipkg install transmission

4) forward port 51413 to NAS

5) (recommend to create and login as a non-root user, root user might work too)
6) $ mkdir -p $HOME/Downloads
7) $ /opt/bin/transmission-daemon -w $HOME/Downloads
   $ pidof transmission-daemon  # should return 3 process ID's
8) connect to web UI http:// YOUR-NAS-IP-ADDRESS:9091/

The above should get you started, usage of the web UI should be straight-forward. If you have any problem starting transmission-daemon on step 7

7.1) # killall transmission-daemon
7.2) # /opt/bin/transmission-daemon -h
7.3) # /opt/bin/transmission-daemon -f

NOTE: With UnSlung 6.x and Transmission 1.4 it was 'killall transmission-da' (NOT 'killall transmission-daemon'). Using 'ps -A' or 'ps' command you will see this.


avgjoe - Upon successfully installing 1.3x under ipkg you must start the transmission daemon. I have created a basic start script which will fetch the new version of the blocklist from bluetack and start the transmission-daemon:


# update blocklist
cd /root/.config/transmission-daemon/blocklists
wget -q http:// www.bluetack.co.uk/config/level1.gz
if test -f level1.gz; then
   rm level1
   gunzip level1.gz
   chmod go+r level1

if [ -n "`pidof transmission-daemon`" ]; then
   kill -9 `pidof transmission-daemon`

/opt/bin/transmission-daemon -b

Clutch interface can be found at: http:// <YOUR_NAS_IP>:9091/transmission/web/index.html

You can modify config either using web UI, or by editing /root/.config/transmission-daemon/settings.json

See also http:// trac.transmissionbt.com/wiki/Headless%20Transmisison


For queue torrent file processing there should exist tree directories:

  • source - User should copy .torrent files here
  • work - Used for torrent processing
  • target - Place where finished torrents are put

Typical file flow is source -> work -> target For every torrent file from source, directory with the same name is created. Then torrent file is moved into this directory and transmissiond is run in background and constantly supervised with transmission_watchdog. The only way for moving finished active torrent into target dir is with Watchdog and not with Push.

CGI interface to daemon after each command lists all torrents in database. This time consuming can be interrupted at any time by giving next command or pressing stop button in WWW browser. This can be done for all commands except URL, Note and Rename as the action on torrent is taken during listing. This means that listing should not be interrupted until torrent is listed. In general there is no problem of interrupting listing at any point. This will not invalidate database which is file system alone.

Fetch command is useful only for fetching torrent files without passkey as there is no possibility to pass cookies to server. Use with care. Proper fetch would be "download in browser and then upload to server". This can only be done by browser plugin.

Troubles with tracker communication can be seen in syslog file. There is no association of active thread and reported problem from tracker. User should resolve this alone.

Install notes

Before running transmission user should carefully inspect variables in transmission.conf and create SOURCE, WORK, and TARGET directories.

transmission_watchdog cares for queue processing and should be run every 30 minutes with cron. /opt/etc/crontab entry should look like:

 # m  h dom mon dow user command
 */30 *    * * *   admin nice transmission_watchdog 

For graphing to work properly, gnuplot and syslog is required. As log can accumulate it is recommended that logrotate is used for flushing old logs.

Accessing/Uploading .torrent files

You can do this either via fetch method that's available while viewing transmission.cgi (no cookie support!) and also with ftp and samba.

I prefer the ftp way since its locked with pass and very easy to start you only need to install vsftpd:
ipkg install vsftpd

Login details are set to your root login and pass by default.

For samba you need to try it yourself. Wiki: http:// wiki.openwrt.org/SambaHowto??highlight=%28samba%29

Using Transmission

by wirespot

A lot of people, myself included, are probably having some trouble when they first run into Oleo web interface for torrent download (transmission.cgi). That's because it's a little different from the torrent programs they're used to. So I'm going to describe what's going on under the hood.

There are 3 pieces of software working on the torrents:

  1. transmissiond. This is the actual workhorse that's downloading and uploading

a torrent. If you run "ps" in a console you will see several of them working (if you have torrents running). Every time a torrent starts, one of these comes along and takes charge of it.

  1. transmission_watchdog. This one runs periodically, usually every 30 minutes,

and is in charge of moving torrents around the queues (from "queued" to "active" to "done").

  1. transmission.cgi this is the actual web interface and is the thing you use to

see your torrents and control them.

How to use the torrents

You start by putting a torrent file under the source/ directory. You can do this in many ways: you can download it on a desktop computer and FTP or SCP it to the router; you can SSH to the router, go into that directory and wget it from a website; you can use the "Fetch" button in the web interface to give the URL and the cgi will wget it and put it under source/.

All torrents found under source/ are automatically seen as part of the "Queued" set of torrents. If there are no torrents in the "Active" set, the watchdog will fetch the first one in the Queued set the next time it runs and make it Active. Or, you can manually make as many torrents as you want Active by selecting them and using the Push button in the interface.

Everytime the watchdog runs it will also check for completed Active torrents (the ones seeding) and will move them to the Completed set, where they stop moving and wait for you to come get the files.

You can manually pause an Active torrent by selecting it and using the Push button. This will stop the torrent and put it in the Suspended set. It will not leave this set anymore unless you select it and use the Push button again. (That's right, Push does two different things; when the torrent is first Queued it moves it to Active, and then it moves it between Active and Suspended; there's no way to move it back to Queued anymore).

Active torrents (and their files) are found under the work/ dir. Queued torrents are under source/. Completed torrents are under target/. Suspended torrents are under work/, but are temporarily renamed to ".torrent.suspended".

What other buttons do:

  • List: this one gives the complete list of all the torrents in all the queues.
  • Update: this one updates the Active information with actual data. Since this

update is an expensive operation for the router, it is usually cached and you need to press Update to refresh it. Otherwise, using List will only show the same old info.

  • Bypass: this will mark active torrent to be bypasswd by watchdow when it

tries to enqueue new torrents from source. Use this for big and slow torrents that will be bypasswd by others.

  • Watchdog: this will force the watchdog to run now instead of waiting for the next normal time. This is useful if you see that a torrent has finished downloading and is seeding, but you don't want to wait for it to be moved to Completed the next time the watchdog would normally run. (Please note that you should let torrents seed so other people can benefit too. Instead of stopping that torrent, consider Push-ing a Queued one instead.)
  • Pause: this will stop all torrents temporarily. It does this by telling all transmissiond programs to die. It doesn't move torrents around the queues at all, there simply aren't downloads or uploads going. This will be marked clearly in big bold letters saying "torrent processing paused". Use Pause again to resume the Active torrents.
  • Info will show some information about the torrent (tracker, what files are in it and so on).
  • Log will try to create a graph showing the state of the downloads. Depends on whether you have gnuplot installed. (I personally prefer rrdtool, look around the forum for the rrdtool tutorial.)
  • Remove will mark a torrent for removal, and Purge will actually DELETE BOTH THE TORRENT AND THE FILES FOR IT. So be careful with it. Note that removal can be used for unfinished (suspended) torrents only. For removing torrents from target use other commands like rm -rf torrent-dir
  • Scrape will attempt to ask the tracker for the scrape info, and Best will attempt to suggest the best seed torrent from the completed ones.
  • Note will add your personal note to the torrent, in case you want to jot down something about it.
view · edit · print · history · Last edited by SRS.
Based on work by SRS, rfinch, and Arthur92710.
Originally by Arthur92710.
Page last modified on November 30, 2016, at 04:36 PM