DEV Community

tetractius
tetractius

Posted on

TetraQuicky01: Transmission on Linux Server via Docker

How many time you wanted to have a quick torrent client running on an headless server instance, but you were put off by ... installing transmission... setting users, storage space... initd or systemd to start at boot... and then ending up with the usual terrible transmission web UI?
Well if you know how to install docker, look no further...

TL;DR

docker run -d --name=transmission \
-v <important directory for the config>:/config \
-v <important directory for the downloads>:/downloads \
-v <I don't really remember that>:/watch \
-e PGID=1000 -e PUID=1000 \
-e TZ=London \
-e TRANSMISSION_WEB_HOME=/combustion-release/ \
-p 9091:9091 \
-p 10411:10411 \
-p 10411:10411/udp \
--restart=unless-stopped \
linuxserver/transmission:latest

Looking more specifically at all the arguments...

  • --name=transmission or whatever name you prefer for your
  • all the -v are important pieces for mounting some directory into the container. Especially for the downloads location, make sure to have enough space.
  • -e PGID=1000 -e PUID=1000: this is probably the most important and overlooked; it makes sure that newly downloaded files are having the user and group permission so that you can read and write them freely. 1000 is the default uid in most of the Linux installation but adjust accordingly if this is different (maybe you can check yours with echo $UID $GROUPS)
  • -e TZ=London so your files are saved with the correct timestamps... if you care about that stuff.
  • -e TRANMISSION_WEB_HOME=/compustion-release/ this trick will give a reasonably more modern UI (that works really well with mobiles)
  • -p 9091:9091 you need this to access the web UI at http://localhost:9091 (you can redirect that port... I do usually)
  • -p 10411:10411 -p 10411:10411/udp these are the port you need to open to have better download performance: 10411 is actually optional; you can choose which port you want. You remember to make sure this port is open also in your model, otherwise is pointless
  • --restart=unless-stopped if you set the docker daemon to run at boot (like it does usually by default) this is making sure that your transmission headless client starts at boot as well... and in general... unless you don't specifically stop it.
  • linuxserver/transmission:latest the most important part; the docker image to start a new container from.

NOTE:
Although I usually don't endeavour the use of latest version of the container, in this case, I think is not a bad idea... as this is probably running on your personal server, and if you keep the same directory volume mounted you can upgrade to the latest version of transmission simply by stopping the container and re-running a new container (with a different name) using the same command line.


Top comments (0)