JOAL is not designed to help or encourage you downloading illegal materials ! You must respect the law applicable in your country. I couldn't be held responsible for illegal activities performed by your usage of JOAL.
https://hub.docker.com/r/anthonyraymond/joal
This is the server application (with an optional webui), if you are interested in the desktop app look at here.
Client | Support | Comment | Client | Support | Comment | |
---|---|---|---|---|---|---|
BitComet | Will never be ! | Transmission | ||||
BitTorrent | µTorrent | |||||
Deluge | Vuze Azureus | |||||
qBittorrent | Vuze Leap | |||||
rTorrent |
If your favorite client is not yet supported feel free to ask (except for BitComet).
Ask for it in GitHub issues or mail [email protected].
In the folder of your choice (ie: /home/anthony/joal-conf), download the latest tar.gz release and extract config.json
clients
and torrents
, this folder will be our joal-conf
.
java -jar ./jack-of-all-trades-X.X.X.jar --joal-conf="PATH_TO_CONF"
--joal-conf=PATH_TO_CONF
is a required argument: path to the joal-conf folder (ie: /home/anthony/joal-conf).
By default the web-ui is disabled, you can enable it with some more arguments:
--spring.main.web-environment=true
: to enable the web context.--server.port=YOUR_PORT
: the port to be used for both HTTP and WebSocket connection.--joal.ui.path.prefix="SECRET_OBFUSCATION_PATH"
: use your own complicated path here (this will be your first layer of security to keep joal secret). This is security though obscurity, but it is required in our case. This must contains only alphanumeric characters (no slash, backslash, or any other non-alphanum char)--joal.ui.secret-token="SECRET_TOKEN"
: use your own secret token here (this is some kind of a password, choose a complicated one).
Once joal is started head to: http://localhost:port/SECRET_OBFUSCATION_PATH/ui/
(obviously, replace SECRET_OBFUSCATION_PATH
) by the value you had chosen
The joal.ui.path.prefix
might seems useless but it's actually crucial to set it as complex as possible to prevent people to know that joal is running on your server.
If you want to use iframe you may also pass the joal.iframe.enabled=true
argument. If you don't known what that is just ignore it.
In next command you have to replace PATH_TO_CONF
, PORT
, SECRET_OBFUSCATION_PATH
and SECRET_TOKEN
with your desired values.
docker run -d \
-p PORT:PORT \
-v PATH_TO_CONF:/data \
--name="joal" \
anthonyraymond/joal:X.X.X \
--joal-conf="/data" \
--spring.main.web-environment=true \
--server.port="PORT" \
--joal.ui.path.prefix="SECRET_OBFUSCATION_PATH" \
--joal.ui.secret-token="SECRET_TOKEN"
Or the equivalent docker-compose service.
version: "2"
services:
joal:
image: anthonyraymond/joal:X.X.X
container_name: joal
restart: unless-stopped
volumes:
- PATH_TO_CONF:/data
ports:
- PORT:PORT
command: ["--joal-conf=/data", "--spring.main.web-environment=true", "--server.port=PORT", "--joal.ui.path.prefix=SECRET_OBFUSCATION_PATH", "--joal.ui.secret-token=SECRET_TOKEN"]
Replace the X.X.X
in anthonyraymond/joal:X.X.X
with the desired version of joal (all versions are available here).
Just add some .torrent
files to the joal-conf/torrents
folder. There is no need to restart JOAL to add more torrents, add it to the folder and JOAL will be aware of after few seconds.
If WebUi is enabled you can also drag and drop torrents in the joal ui.
The application configuration belongs in joal-conf/config.json
.
{
"minUploadRate" : 30,
"maxUploadRate" : 160,
"simultaneousSeed" : 20,
"client" : "qbittorrent-3.3.16.client",
"keepTorrentWithZeroLeechers" : true,
"uploadRatioTarget": -1.0
}
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 injoal-conf/clients/
(required)keepTorrentWithZeroLeechers
: should JOAL keep torrent with no leechers or seeders. If yes, torrent with no peers will be seed at 0kB/s. If false torrents will be deleted on 0 peers reached. (required)uploadRatioTarget
: when JOAL has uploaded X times the size of the torrent in a single session, the torrent is removed. If -1.0 torrents are never removed.
Client | Support | Comment |
---|---|---|
Lack of referrer-policy & No support for WebSocket |
||
Lack of referrer-policy |
||
Lack of referrer-policy |
||
Not enough space to explain... |
Some non-supported browser might work, but they may be unsafe due to the lack of support for referrer-policy
.
Those projects are maintained by their individual authors, if you have any question on how to use it use the corresponding repository to ask questions. I do not offer any support nor responsability for these projets. But i want a say a special thanks to them for speinding some time on this project.
This project use a modified version of the awesome mpetazzoni/ttorrent library. Thanks to mpetazzoni for this. Also this project has benefited from the help of several people, see Thanks.md