Version 9 (modified by wereHamster, 14 years ago) (diff)

Fix a typo from the previous change

Web Interface

The Web Interface is a web-based frontend to most Transmission clients (eg. the daemon, GTK client and the Mac client, but not the cli).

Once you have set it up, you can open a web browser and direct it to (replace with the IP where Transmission is running, 9091 is the default port).

To Enable

  • Make sure you have the files installed in the correct location
  • To turn on the Web Interface:

Note: the daemon always has the rpc / Web Interface turned on.


Mac OS X Defaults

The Mac GUI packages the Web Interface in it's application bundle. So there is no need to manually install or update the bundle.

If you do want to use a custom Web Interface use the environment variable. eg.:

$ export TRANSMISSION_WEB_HOME=/path/to/web/files
$ open -a Transmission

Linux Defaults

The Linux wil look for the Web Interface files in:

  1. $TRANSMISSION_WEB_HOME, if the environment variable is set
  2. $XDG_DATA_HOME/transmission/web, if XDG environment variables are set by the system
  3. $HOME/.local/share/transmission/web
  4. /usr/local/share/transmission/web
  5. /usr/share/transmission/web

Proxy Configuration

This is mainly useful for servers where you already have a web server running. You can configure the existing web server to act as a proxy for Transmission. This way you can take advantage of all the features that your web server provides (authentication for example).

First configure Transmission to allow web/rpc access from the web server IP. Then set up the web server to act as a proxy for Transmission. Below are example configurations for some of the well known web servers.


Sample configuration for lighttpd:

server.modules += ( "mod_rewrite", "mod_auth", "mod_proxy" )
url.rewrite-once += ( "^/transmission[/]?$" => "/transmission/web" )

$HTTP["url"] =~ "^/transmission/" {
  auth.backend = "plain"
  auth.backend.plain.userfile = "/var/www/transmission/users"
  auth.require = (
    "" => (
      "method"  => "digest",
      "realm"   => "Transmission Web Interface",
      "require" => "valid-user"

  proxy.server = (
    "" => (
        "host" => "",
        "port" => 9091


For details please consult the apache mod_proxy documentation (apache version: 2.2 2.0 1.3)

# Redirect requests to /transmission to /transmission/web
RewriteRule /transmission[/]?$ /transmission/web [R=permanent]

# Forward all requests for /transmission to transmission-daemon
ProxyPass /transmission
ProxyPassReverse /transmission

<Location /transmission>

   # Work-around for libT's non-conformance to the HTTP/1.1 standard for Redirect
   # See"
   # and
   #   Work-around no longer needed (see RewriteRule above)
   #   ProxyPassReverse

   # Digest Auth enable
   # See
   Order Allow,Deny
   Allow from All
   AuthType Digest
   AuthName "Transmission Web Interface"
   AuthDigestProvider file
   AuthUserFile "/usr/local/etc/apache22/htdigest.user"
   Require valid-user

   # Make pictures, scripts and styling client-cacheable
   <IfModule expires_module>
      ExpiresActive On
      ExpiresByType image/gif A43200
      ExpiresByType image/png A43200
      ExpiresByType application/javascript A43200
      ExpiresByType text/css A43200