Transmission

From SME Server
Revision as of 14:31, 16 November 2013 by Stephdl (talk | contribs)
Jump to navigation Jump to search


Transmission for SME Server

  Skill level: Medium
The instructions on this page require a basic knowledge of linux.


Maintainer

Stéphane de Labrusse AKA Stephdl

Description

This contribution for SME Server adds the ability to seed or to download SME Server CDROM ISO trough the Bit-torrent protocol. Transmission allows users to download files from the Internet and upload their own files or torrents. By grabbing items and adding them to the interface, users can create queues of files to be downloaded and uploaded. Within the file selection menus, users can customise their downloads down to components of individual files. Transmission also seeds—that is, it can re-upload downloaded content.

see the website of transmission

Requirements

You need to activate two repositories, geekery which hosts Transmission binaries and stephdl.

Installation

This contrib is currently held in several repository, so the following commands will install on your smeserver.

yum --enablerepo=geekery,stephdl install smeserver-transmission

You will then need to activate the database changes etc. The 'official' way is to perform

signal-event post-upgrade;  signal-event reboot

or if you do NOT want to reboot your server

signal-event conf-transmission

Manage settings

There are no panels in the server-manager, the contribs can be managed by the command Line :

config show transmission

and

config show transmission-daemon

Login to transmission

The url to reach the transmission is https://sme-ip-or-host/transmission

Just after the installation, only the admin user is allowed to perform a login with its SME Server credentials, and for matters of security, only on your local network.

  Note:
All users or groups need to be real users or groups in the server-manager with a password set


Add users

If you want to allow more users to transmission

config setprop transmission Transuser "admin user1 user2"
signal-event conf-transmission

All users need to be real users in the server-manager with a password set

Add groups

If you want to allow more groups to transmission

config setprop transmission Transgroup "group1 group2 group3"
signal-event conf-transmission

All groups need to be real groups in the server-manager with a password set

change the default url

By default transmission is reachable at https://sme-ip-or-host/transmission but if you want to change this

config setprop transmission Name XXXXX
signal-event conf-transmission

then you need to go to https://sme-ip-or-host/XXXXX

Disable the access (web/samba) to Transmission

If you want to close all your users access to the transmission contrib by web or by samba you can perform this. But this do not stop the transmission daemon

config setprop transmission status enabled
signal-event conf-transmission

Access global-local-none

By default only IPs which are on your local network are allowed to reach transmission with a web browser, but this behaviour can be changed.

Only IPs of your local network

config setprop transmission PublicAccess local

or All IPs

config setprop transmission PublicAccess global

or No access

config setprop transmission PublicAccess none

After that

signal-event conf-transmission

Browse your downloads

  Tip:
Just after the installation, You can browse all your downloads either by samba, or with your browser. Only the admin user is allowed to perform a login with its SME Server credentials, and for matters of security, only on your local network.


You can change these settings with commands below

By samba

Add users and groups

only the admin is allowed to browse your downloads with samba, if you want to add more users or groups

config setprop transmission Smbusers "admin user1 user2 @group1 @group2"
signal-event conf-transmission

In the smb.conf a group is called by "@", do not forget to add it if you want to allow group1 : @group1

Then you can browse all samba shares of your server, find the transmission share and perform a login with your credentials.

By your web browser

It is a nice feature if you can exchange downloads with your friends outside of your network, of course this could be forbidden in certain countries.

  Note:
By default the web access to transmission downloads is only allowed on your local network and only for the admin user.


go to https://sme-ip-host/dl-transmission

Access global-local-none

By default only IPs which are on your local network are allowed to reach the transmission download folder with a web browser, but this behaviour can be changed.

Only IPs of your local network

config setprop transmission Webdlaccess local

or All IPs

config setprop transmission Webdlaccess global

or No access

config setprop transmission Webdlaccess none

After that

signal-event conf-transmission
Add users

If you want to allow more users to the download transmission folder

config setprop transmission Webuser "admin user1 user2"
signal-event conf-transmission

All users need to be real users in the server-manager with a password set

Add groups

If you want to allow more groups to the download transmission folder

config setprop transmission Webgroup "group1 group2 group3"
signal-event conf-transmission

All groups need to be real groups in the server-manager with a password set

change the default url

By default the download transmission folder is reachable at https://sme-ip-or-host/dl-transmission but if you want to change this

config setprop transmission Webdlurl XXXXX
signal-event conf-transmission

then you need to go to https://sme-ip-or-host/XXXXX

Listening Port

Transmission is listening in standard on the port 51413 which need to be enabled in the firewall of your network and in your SME Server. Transmission uses the UPNP protocol to allow its port through your network firewall.

Randomize port on launch

In certain case you may want to allow a random port (set between 49152 and 65535). After each Port modifications, you should go to the transmission setting to verify that the port is "open"

config setprop transmission-daemon TCPPorts 49152:65535

then in the transmission setting, check the box "randomize port on launch and restart the service

signal-event remoteaccess-update

Set a different port

In certain case you may want to allow a different port (default is 51413). After each Port modifications, you should go to the transmission setting to verify that the port is "open"

config setprop transmission-daemon TCPPort 51485

then in the transmission setting, change the port number to be relevant of your db command and restart the service

signal-event remoteaccess-update

If you want that your change be persistent you have to modify the template /etc/e-smith/templates/var/lib/transmission/settings.json

please see this chapter

Custom Templates

Transmission is a daemon which needs its configuration file named settings.json.

To give easier our life, this configuration file is templated in /etc/e-smith/templates/var/lib/transmission/settings.json.
If you want to make modifications that you cannot change with the web interface of transmission or if you want to give them persistent in case of reconfiguration, you can modify the template.

before you have to stop the transmission-daemon

#  /etc/init.d/transmission-daemon stop
Arrêt de transmission-daemon :                             [  OK  ]

then

nano /etc/e-smith/templates/var/lib/transmission/settings.json 

ctrl+x to save and

signal-event conf-transmission

Known Issues

409: Conflict

If you try to reach transmission with a "/" at the end of your url you may have this error in the web browser

for example try this https://sme-ip-host/transmission/

and you can see this page in your web browser

409: Conflict

Your request had an invalid session-id header.

To fix this, follow these steps:

   When reading a response, get its X-Transmission-Session-Id header and remember it
   Add the updated header to your outgoing requests
   When you get this 409 error message, resend your request with the updated header

This requirement has been added to help prevent CSRF attacks.

X-Transmission-Session-Id: gEtlm4qQBEDbEcmmD93Z44F7pWKbhu5YboQLxsoNfFKv096H

Uninstall

yum remove smeserver-transmission transmission* libevent2
 signal-event post-upgrade;  signal-event reboot

Bugs

There is no component yet for smeserver-transmission, you should send your bugs report by email to Stéphane de Labrusse <noinclude>Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla] and select the smeserver-foo component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-foo|title=this link}}. </noinclude>