An open source command line RatioMaster with an optional WebUI.
Find a file
2017-09-12 23:03:16 +02:00
.mvn/wrapper Introduce spring & create new package structure 2017-05-04 20:36:48 +02:00
readme-assets Add supported clients to readme 2017-07-19 21:44:12 +02:00
resources Update default config.json 2017-09-12 01:26:18 +02:00
src Fix somes tests not running properly on linux or slow environment 2017-09-11 23:39:24 +02:00
.gitignore Prepare version 1.0.1 2017-03-14 02:07:26 +01:00
.travis.yml Add release name to travis deploy 2017-09-12 00:48:44 +02:00
Dockerfile Add Dockerfile for non-arm platform 2017-05-04 20:35:07 +02:00
Dockerfile.arm Improved Dockerfile. Now automatically download last release on build. 2017-03-14 12:39:03 +01:00
Dockerfile.arm.beta2 Add dockerfile for beta test purpose 2017-06-07 22:53:00 +02:00
LICENSE Add Apache 2.0 licence 2017-04-23 15:19:01 +02:00
pom.xml Added publish.sh script to trigger a github release 2017-09-12 01:07:04 +02:00
publish.sh Added publish.sh script to trigger a github release 2017-09-12 01:07:04 +02:00
README.md Fix a potential bug with https ip fetching and enforce IPV6 support 2017-08-09 22:58:07 +02:00
THANKS.md Add Zora to thanks list for creating the application logo [skip ci] 2017-09-12 23:03:16 +02:00

JOAL

Which client can JOAL emulate?

Client Support Comment
BitComet FUCK NO ! Will never be !
BitTorrent Yes
Deluge Yes
qBittorrent Yes
Transmission Yes
µTorrent Yes
Vuze Azureus Yes Will soon be
Vuze Leap Yes

If your favorite client is not yet supported feel free to ask (except for BitComet).
Ask for it in GitHub issues or mail joal.contact@gmail.com.

How to start

With UI : java -Djava.net.preferIPv6Addresses=true -jar .\jack-of-all-trades-2.0.0.jar --joal-conf="PATH_TO_CONF" --spring.main.web-environment=true --server.port=YOUR_PORT --joal.ui.path.prefix="SECRET_OBFUSCATION_PATH" --joal.ui.secret-token="SECRET_TOKEN"

Without UI: java -Djava.net.preferIPv6Addresses=true -jar .\jack-of-all-trades-2.0.0.jar --joal-conf="PATH_TO_CONF" --spring.main.web-environment=false

Prepare configuration folder

You first need to get the configuration folder. Replace <MY_CONFIG_FOLDER_PATH> by whatever path you want.

git clone git@github.com:anthonyraymond/joal.git
cd joal
cp -R resources <MY_CONFIG_FOLDER_PATH>

Now add some of your private tracker's .torrent file to <MY_CONFIG_FOLDER_PATH>/torrents/. But be aware that only torrent with at least 1 leecher will actually be used by joal, to keep your account from being banned.

Install and run

With Docker

For ARM distribution only (raspberry)

docker build -f Dockerfile.arm -t araymond/joal .
docker run -d -v <PATH_TO_CONFIG_DIR>:/data -p 49152-65534:49152 --name="joal" araymond/joal

For any other distribution

docker build -t araymond/joal .
docker run -d -v <PATH_TO_CONFIG_DIR>:/data -p 49152-65534:49152 --name="joal" araymond/joal

Without Docker

You need to have Java 8 installed.

We first need to download the latest version of the .jar. Once again replace <MY_CONFIG_FOLDER_PATH> by your chosen path and execute this script

cd <MY_CONFIG_FOLDER_PATH> \
&& GITHUB_REPO="https://github.com/anthonyraymond/joal" \
&& LATEST=$(curl -sSI $GITHUB_REPO"/releases/latest" | perl -n -e '/^Location: .*?tag\/(.*?)\r*$/ && print "$1\n"') \
&& curl -f -L $GITHUB_REPO"/releases/download/"$LATEST"/"$LATEST".jar" > ./jack-of-all-trades.jar

Then you can run the application with the following command (replace X.X.X with your own version)

java -jar jack-of-all-trades-X.X.X.jar <MY_CONFIG_FOLDER_PATH>

Understanding configuration (optional)

Torrent files

  • All torrent file in <MY_CONFIG_FOLDER_PATH>/torrents/ will be available for sharing.
  • One random torrent file from <MY_CONFIG_FOLDER_PATH>/torrents/ is chosen randomly for each seed session.
  • All torrent file added/removed/modified in <MY_CONFIG_FOLDER_PATH>/torrents/ while the client is running will be automatically hot loaded, there is no need to restart.
  • If the torrent currently seeding reach 0 peers, the file will be moved to <MY_CONFIG_FOLDER_PATH>/torrents/archived folder.

Application configuration

The application configuration belongs in <MY_CONFIG_FOLDER_PATH>/config.json.

{
  "minUploadRate": 180,
  "maxUploadRate": 190,
  "simultaneousSeed": 2,
  "client": "azureus-5.7.4.0.client"
}
  • minUploadRate : The minimum uploadRate you want to fake (in kB/s) (required)
  • maxUploadRate : The maximum uploadRate you want to fake (in kB/s) (required)
  • simultaneousSeed : How many torrents should be seeding at the same time (required)
  • client : The name of the .client file to use in <MY_CONFIG_FOLDER_PATH>/clients/ (required)

Create your own torrent clients

To learn more about .client, head to the project's wiki.

ROADMAP to v2

Thanks:

This project use a modified version of the awesome mpetazzoni/ttorrent library. Thanks to mpetazzoni for this.

Analytics