Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

An open source command line RatioMaster with an optional WebUI.

License

NotificationsYou must be signed in to change notification settings

anthonyraymond/joal

Repository files navigation

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.

Official Docker Hub page:

https://hub.docker.com/r/anthonyraymond/joal

JOAL

This is the server application (with anoptional webui), if you are interested in the desktop app look athere.

Which client can JOAL emulate?

ClientSupportCommentClientSupportComment
BitCometNumwant messWill never be !TransmissionYes
BitTorrentYesµTorrentYes
DelugeYesVuze AzureusYes
qBittorrentYesVuze LeapYes
rTorrentYes

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

Preview

preview

HOW TO USE

1. Setting up configuration

In the folder of your choice (ie: /home/anthony/joal-conf), download thelatest tar.gz release and extractconfig.jsonclients andtorrents, this folder will be ourjoal-conf.

It must look similar to this:
joal-conf

2. Run with Java

java -jar ./jack-of-all-trades-X.X.X.jar --joal-conf="PATH_TO_CONF"
  • --joal-conf=PATH_TO_CONF is arequired 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, replaceSECRET_OBFUSCATION_PATH) by the value you had chosenThejoal.ui.path.prefix might seems useless but it's actuallycrucial 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 thejoal.iframe.enabled=true argument. If you don't known what that is just ignore it.

2. Run with Docker

In next command you have to replacePATH_TO_CONF,PORT,SECRET_OBFUSCATION_PATH andSECRET_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 theX.X.X inanthonyraymond/joal:X.X.X with the desired version of joal (all versions are availablehere).

3. Start seeding

Just add some.torrent files to thejoal-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.

Configuration file

Application configuration

The application configuration belongs injoal-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 torrentin a single session, the torrent is removed. If -1.0 torrents are never removed.

Proxy Configuration

You can route JOAL traffic (tracker announcements and IP checks) through an HTTP/HTTPS proxy. This is particularly useful if you run JOAL behind a VPN container (like Gluetun) or want to hide your real IP address.

To enable the proxy, set theJAVA_TOOL_OPTIONS environment variable with standard Java proxy properties.

Docker Run Example

docker run -d \    -p PORT:PORT \    -v PATH_TO_CONF:/data \    -e"JAVA_TOOL_OPTIONS=-Dhttp.proxyHost=10.10.10.10 -Dhttp.proxyPort=8888 -Dhttp.nonProxyHosts=localhost|127.*" \    --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" \

Docker Compose Example

version:"2"services:joal:image:anthonyraymond/joal:X.X.Xcontainer_name:joalrestart:unless-stoppedenvironment:# Configure the Proxy Host and Port here# Important: You MUST configure 'http.nonProxyHosts' to exclude localhost,# otherwise the internal Web UI might become unreachable.      -JAVA_TOOL_OPTIONS=-Dhttp.proxyHost=10.10.10.10 -Dhttp.proxyPort=8888 -Dhttp.nonProxyHosts="localhost|127.*|10.*|192.168.*"volumes:      -PATH_TO_CONF:/dataports:      -PORT:PORTcommand:["--joal-conf=/data", "--spring.main.web-environment=true", "--server.port=PORT", "--joal.ui.path.prefix=SECRET_OBFUSCATION_PATH", "--joal.ui.secret-token=SECRET_TOKEN"]

Supported Properties

  • -Dhttp.proxyHost: The hostname or IP address of your proxy server.
  • -Dhttp.proxyPort: The port of your proxy server.
  • -Dhttp.nonProxyHosts: A pipe-separated list (|) of hosts that should be reached directly (bypassing the proxy).It is highly recommended to includelocalhost and127.* to ensure the Web UI works correctly.

Supported browser (for web-ui)

ClientSupportComment
Google Chromeyes
Mozilla Firefoxyes
Operayes
Opera mininoLack ofreferrer-policy & No support for WebSocket
SafarinoLack ofreferrer-policy
EdgenoLack ofreferrer-policy
Internet explorernoNot enough space to explain...

Some non-supported browser might work, but they may be unsafe due to the lack of support forreferrer-policy.

Community projects

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 specialthanks to them for speinding some time on this project.

Thanks:

This project use a modified version of the awesomempetazzoni/ttorrent library. Thanks tompetazzoni for this.Also this project has benefited from the help of several people, seeThanks.md

Supporters

Thanks for providing Jetbrain license

About

An open source command line RatioMaster with an optional WebUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2026 Movatter.jp