Difference between revisions of "Torrenting Server"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by the same user not shown)
Line 4: Line 4:
{{!}} style="text-align: center; width: 60px;" {{!}} [[File:Logo Debian.png{{!}}60px{{!}}link=https://www.debian.org/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} style="text-align: center; width: 60px;" {{!}} [[File:Logo Debian.png{{!}}60px{{!}}link=https://www.debian.org/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} style="text-align: center; width: 40px;" {{!}} 13 (trixie)
{{!}} style="text-align: center; width: 40px;" {{!}} 13 (trixie)
{{!}}
{{!}} This includes a lightweight LXC


<br>
<br>
Line 25: Line 25:
Storage space for downloading (Torrents & such) should be done on a dedicated drive.
Storage space for downloading (Torrents & such) should be done on a dedicated drive.


I tend to do most of my storage via [[Setting up NFS for file sharing|NFS]] served up by my dedicated storage server.
I tend to do most of my storage via [[Setting up NFS for file sharing|'''NFS''']] served up by my dedicated storage server.


Create a '''DONE''' & a '''WIP''' folder on the storage drive. This will make it easier to keep things organised.
Create a '''DONE''' & a '''WIP''' folder on the storage drive. This will make it easier to keep things organised.
Line 33: Line 33:


  '''StorageServer''':/Download_Space /mnt/Download_Space nfs rw,user,exec 0 0
  '''StorageServer''':/Download_Space /mnt/Download_Space nfs rw,user,exec 0 0
* <code>sudo mkdir /mnt/Download_Space/DONE</code>
* <code>sudo mkdir /mnt/Download_Space/WIP</code>
<span style="color: rgb(186, 55, 42);" >NOTE</span>: When using a VPN, you may need to use IP addresses to refer to other machines on your LAN.
If you don't want to use an NFS share for this, you could either add a dedicated drive or just set up the folders on the boot drive.  I'd seriously recommend, at minimum, 500GB of available space.


== Useful things ==
== Useful things ==


Configure your download server to [[Setting Up OpenVPN & PIA as a client|use a good VPN]].
Configure your download server to [[Setting Up OpenVPN & PIA as a client|'''use a good VPN''']].
 
* <code>sudo apt install mosquitto-clients</code>
** Handy for integrating the download server into your IoT infrastructure...


= Install Transmission-daemon =
= Install Transmission-daemon =
Line 42: Line 51:


= Configure Transmission-daemon =
= Configure Transmission-daemon =
<span style="color: rgb(186, 55, 42);" >'''Note:'''</span> Any time you edit settings.json, You need to stop transmission-daemon first or it'll overwrite your changes.
<span style="color: rgb(186, 55, 42);">'''Note:'''</span> Any time you edit settings.json, You need to stop transmission-daemon first or it'll overwrite your changes.


* <code>sudo service transmission-daemon stop</code>
* <code>sudo service transmission-daemon stop</code>
* <code>sudo vi /etc/transmission-daemon/settings.json</code>
* <code>sudo vi /var/lib/transmission-daemon/info/settings.json</code>
Here is an incomplete list of items to edit. (based on my own setup...):


<pre>
"download-dir": "/mnt/Download_Space/DONE",
  Stuff goes here...
"incomplete-dir": "/mnt/Download_Space/WIP",
</pre>
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"ratio-limit-enabled": true,
"rpc-authentication-required": true,
"rpc-bind-address": "'''HOSTNAMEorIP'''",
"rpc-password": "<span style="color: rgb(22, 145, 121);">Pick a good password (will become encrypted automagically)</span>",
"rpc-username": "'''greybeard'''",
  "rpc-whitelist": "127.0.0.1,'''192.168.*.*'''",
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "<span style="color: rgb(132, 63, 161);">'''/usr/local/bin/TorrentDone.sh'''</span>",
"umask": 18,


* <code>sudo service transmission-daemon start</code>
* <code>sudo service transmission-daemon start</code>
'''HOSTNAMEorIP''' is the proper name or address of the machine on your network.
'''greybeard''' seems like a good username for torrenting to me... :P
'''192.168.*.*''' should match the possible addresses on your LAN.
<span style="color: rgb(132, 63, 161);">'''/usr/local/bin/TorrentDone.sh'''</span> is a script to be run whenever a torrent finishes downloading.  Fun stuff like sending notifications to your voice assistant or celphone are possibilities.
On my download server, it looks like this:
#!/bin/bash
# Have my GH mini tell me about it
mosquitto_pub -h skynet -t "Scotts Speaker Quiet" -m "One Done!"
(This MQTT topic is monitored by a Node-Red flow that sends the message on to a GH mini in my lab.)


Take a look at [https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md what passes for documentation] for further pointers.
Take a look at [https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md what passes for documentation] for further pointers.

Latest revision as of 22:01, 21 September 2025

Proven on:
Logo Debian.png
13 (trixie) This includes a lightweight LXC


As always...

Start with:

  • sudo apt update
  • sudo apt upgrade

Preparation

Storage

Storage space for downloading (Torrents & such) should be done on a dedicated drive.

I tend to do most of my storage via NFS served up by my dedicated storage server.

Create a DONE & a WIP folder on the storage drive. This will make it easier to keep things organised.

  • sudo mkdir /mnt/Download_Space
  • sudo vi /etc/fstab
StorageServer:/Download_Space /mnt/Download_Space nfs rw,user,exec 0 0
  • sudo mkdir /mnt/Download_Space/DONE
  • sudo mkdir /mnt/Download_Space/WIP

NOTE: When using a VPN, you may need to use IP addresses to refer to other machines on your LAN.

If you don't want to use an NFS share for this, you could either add a dedicated drive or just set up the folders on the boot drive. I'd seriously recommend, at minimum, 500GB of available space.

Useful things

Configure your download server to use a good VPN.

  • sudo apt install mosquitto-clients
    • Handy for integrating the download server into your IoT infrastructure...

Install Transmission-daemon

  • sudo apt install transmission-daemon

Configure Transmission-daemon

Note: Any time you edit settings.json, You need to stop transmission-daemon first or it'll overwrite your changes.

  • sudo service transmission-daemon stop
  • sudo vi /var/lib/transmission-daemon/info/settings.json

Here is an incomplete list of items to edit. (based on my own setup...):

"download-dir": "/mnt/Download_Space/DONE",
"incomplete-dir": "/mnt/Download_Space/WIP",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"ratio-limit-enabled": true,
"rpc-authentication-required": true,
"rpc-bind-address": "HOSTNAMEorIP",
"rpc-password": "Pick a good password (will become encrypted automagically)",
"rpc-username": "greybeard",
"rpc-whitelist": "127.0.0.1,192.168.*.*",
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/usr/local/bin/TorrentDone.sh",
"umask": 18,
  • sudo service transmission-daemon start

HOSTNAMEorIP is the proper name or address of the machine on your network.

greybeard seems like a good username for torrenting to me... :P

192.168.*.* should match the possible addresses on your LAN.

/usr/local/bin/TorrentDone.sh is a script to be run whenever a torrent finishes downloading. Fun stuff like sending notifications to your voice assistant or celphone are possibilities.

On my download server, it looks like this:

#!/bin/bash
# Have my GH mini tell me about it
mosquitto_pub -h skynet -t "Scotts Speaker Quiet" -m "One Done!"

(This MQTT topic is monitored by a Node-Red flow that sends the message on to a GH mini in my lab.)

Take a look at what passes for documentation for further pointers.

Notes

Folder permissions are VERY important...

  • sudo chmod -R 777 /mnt

Seems to work... But it's FUGLY

Some Links