wiki:MovedToGitHub/WebInterface

Version 12 (modified by Waldorf, 12 years ago) (diff)

--

Web Interface

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

Once you have set it up, you can open a web browser and direct it to http://127.0.0.1:9091/transmission/web (replace 127.0.0.1 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.

Locations

Mac OS X Defaults

The Mac GUI packages the Web Interface in its 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 daemon will 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.

Lighttpd

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" => "127.0.0.1",
        "port" => 9091
      )
    )
  )
}

Apache

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 http://127.0.0.1:9091/transmission
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission

<Location /transmission>

   # !!! ONLY NEEDED FOR 1.5x AND EARLIER !!!
   # Work-around for libT's non-conformance to the HTTP/1.1 standard for Redirect
   # See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30"
   # and http://trac.transmissionbt.com/ticket/1944
   #   Work-around no longer needed (see RewriteRule above)
   #   ProxyPassReverse http://127.0.0.1:9091/transmission

   # Digest Auth enable
   # See http://httpd.apache.org/docs/2.2/howto/auth.html#gettingitworking
   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
   </IfModule>

</Location>