diff --git a/Features.md b/Features.md index ac61820..e10253b 100644 --- a/Features.md +++ b/Features.md @@ -4,13 +4,13 @@ Feature implemented in YGGtracker v.2.2.0 and allows to download any torrent fil ### Overview -When torrent uploaded to catalog has leechers, but no seeders in local network, that torrent marked with "Wanted" label. Any user able to download raw torrent file which auto-includes all announcers by click on the label. When file have downloaded by seeder, it becomes accessible for wanted leechers trough Yggdrasil announcers. +When torrent, just uploaded to catalog, have leechers, but have no seeders (in Yggdrasil network), this torrent marked by YGGtracker as "Wanted". Another users able to download raw torrent file (that includes all trackers) by click on the "Wanted" label. When file have downloaded by someone of users or server-side bots, it sending announcement to Yggdrasil trackers and other peers now able to download it trough Yggdrasil network. -_* Note: regular torrent downloads have `appname#torrentID` prefixes that includes account settings. Wanted files have `wanted#torrentID` prefixes and includes all possible announcers for seeding nodes._ +_* Note: regular torrent downloads have `appname#torrentID` prefixes that includes account settings. Wanted files have `wanted#torrentID` prefixes and includes all possible announcers for seeding nodes. That's needed to semantically understand torrent-file meta data without opening (eg data leak to global network)_ -To automate seeding process for active members, YGGtracker provides additional features (#27) like anonymous FTP mirror with wanted files. These files could be useful for Bittorrent clients (with autoscan directory feature). +To automate seeding process for active members, YGGtracker provides additional features (#27) like anonymous FTP with wanted files that filtered by context. These files could be processed by any Bittorrent servers using autos-can directory option. -Ftp storage provides following filters: +At this moment, FTP storage provides following sub-directories that implement torrent content filters: * `/yggtracker/torrents/wanted/all` - any torrent wanted * `/yggtracker/torrents/wanted/locale/en` - torrents wanted by content locale @@ -20,11 +20,9 @@ _* `yggtracker` is default namespace and depends of `APP_TORRENT_WANTED_FTP_FOLD When the wanted torrent get at least one seeder, YGGtracker scraper (which running in [Crontab](https://github.com/YGGverse/YGGtracker/wiki/Crontab)) auto-removes deprecated files from storage. -On Linux systems, remote FTP folder could be mounted using [curlftpfs](https://curlftpfs.sourceforge.net/), [rclone](https://rclone.org/) and other tools. +### FTP server -### FTP setup - -Example of FTP server setup on Debian-based systems, where YGGtracker installation placed in `/var/www/YGGverse/YGGtracker` directory +If you're maintainer of YGGtracker instence, bellow provided example how to setup FTP server on Debian-based systems, where YGGtracker installation placed in `/var/www/YGGverse/YGGtracker` directory 1. Install vsftpd server @@ -63,13 +61,15 @@ ufw allow proto tcp from 0200::/7 to any port 40000:50000 service vsftpd restart ``` -### BitTorrent client setup +### BitTorrent client Popular clients like qBittorrent, Transmission, etc allows to listen local directory for new torrents and auto download them. This feature pretty useful for YGGtracker instance administrators or independent seedbox operators who interested in Yggdrasil popularity grow. +On Linux systems, remote FTP folder could be mounted using [curlftpfs](https://curlftpfs.sourceforge.net/), [rclone](https://rclone.org/) and many other tools - with GUI or CLI. + On this example used `qbittorrent-nox` server-side client to auto-sync and download wanted files. -1. As our files hosted on remote FTP server, and bittorrent clients usually works with local directory only, let's mount `/yggtracker/torrents/wanted/all` directory using `rclone` +1. Bittorrent clients usually works with local directory only, let's mount `/yggtracker/torrents/wanted/all` using `rclone` so ``` apt install rclone @@ -83,16 +83,15 @@ n) New remote name> yggtracker Storage> ftp -host> [201:23b4:991a:634d:8359:4521:5576:15b7] // official node -port>21 -user>anonymous +host> [201:23b4:991a:634d:8359:4521:5576:15b7] // just official node, for example +port>21 // or keep default +user>anonymous // usually, FTP server allows anonymous access, this username / password required by protocol just password>anonymous ... +// provide other answers by default. ``` -Other by default. - -3. Let's create mount dir and set permissions for `qbittorrent-nox` user/group +3. Let's create mount point and set permissions for `qbittorrent-nox` ``` mkdir /home/qbittorrent-nox/yggtracker @@ -103,17 +102,33 @@ chown qbittorrent-nox:qbittorrent-nox /home/qbittorrent-nox/yggtracker ``` rclone mount yggtracker:/yggtracker/torrents/wanted/all /home/qbittorrent-nox/yggtracker & ``` -_* make sure that remote directory exists, as YGGtracker creates dirs only when wanted file available_ +_* make sure that remote directory exists, as YGGtracker creates target directory with first wanted file initiation only_ -_** to unmount directory, use `umount /home/qbittorrent-nox/yggtracker`_ +_** to unmount directory, just use `umount /home/qbittorrent-nox/yggtracker`_ -Make sure we have mounted remote folder successfully +Check mount success: ``` df -h > yggtracker:/yggtracker/torrents/wanted/all 1.0P 0 1.0P 0% /home/qbittorrent-nox/yggtracker ``` -5. In last step, lets provide `/home/qbittorrent-nox/yggtracker` folder in `qbittorrent-nox` web-UI: +To mount remote folder every time on client startup and unmount on exit, add following lines to `/etc/systemd/system/qbittorrent-nox.service` -Preferences - Download - Automatically add torrents from \ No newline at end of file +``` +ExecStartPre=/usr/bin/rclone mount --config /home/qbittorrent-nox/.config/rclone/rclone.conf --daemon --read-only yggtracker:/yggtracker/torrents/wanted/all /home/qbittorrent-nox/yggtracker +ExecStop=/usr/bin/umount /home/qbittorrent-nox/yggtracker +``` + +then reload: +``` +systemctl daemon-reload +service qbittorrent-nox restart +``` + +* `--config` option required +* * If the mount operation running from another user, just add `+` at beginning of command, but rclone does not require root at all. + +5. At last step, lets setup qBittorrent to listen `/home/qbittorrent-nox/yggtracker` folder for new "Wants": + +**Web UI → Preferences → Download → Automatically add torrents from** \ No newline at end of file