Skip to content

openscopeproject/TrguiNG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d04efc5 · Mar 1, 2025
Feb 28, 2025
Jan 28, 2025
Nov 25, 2023
Feb 8, 2025
Mar 1, 2025
May 30, 2023
Jul 8, 2023
Jan 5, 2024
Apr 6, 2022
Jan 27, 2025
Jan 27, 2025
Jan 31, 2025
Jun 11, 2023
Jul 14, 2023
Jan 27, 2025
Nov 1, 2024
Nov 1, 2024

Repository files navigation

TrguiNG

Remote GUI for Transmission torrent daemon

GitHub release Downloads Lint status

logo

TrguiNG is a rewrite of transgui project using tauri. Frontend is written in typescript with react.js and mantine library. Backend for the app is written in rust.

You can use this program in 2 ways: as a native Windows/Linux/Mac app and as a web gui served by transmission itself by setting $TRANSMISSION_WEB_HOME environment variable to point to TrguiNG web assets.

There are screenshots of the app available on the project wiki.

Some differentiating features:

  • Multi tabbed interface for concurrent server connections (native app only)
  • Torrent creation with fast multi threaded hashing (native app only)
  • Powerful torrent filtering options
  • Latest transmission features support: labels, bandwidth groups, sequential download
  • Dark and white theme

Planned:

Transmission v2.40 or later is required.

Compiling

Prerequisites:

  • Node.js 16 or later
  • rust 1.77 or later
  • Geoip lookup database in mmdb format, put it in src-tauri
    wget -nv -O src-tauri/dbip.mmdb "https://github.com/openscopeproject/TrguiNG/releases/latest/download/dbip.mmdb"
    
    You can get latest db from db-ip.com.

To compile simply run

$ npm install
$ npm run build

This will generate optimized bundle in dist and a release binary in src-tauri/target/release folder. Also installer package will be available in src-tauri/target/release/bundle/....

The binary is statically linked and embeds all necessary assets except for the geoip database. It is completely self sufficient and can be used as a portable executable but for geoip lookup to work you need to install the app with provided installer.

For development run in parallel

$ npm run webpack-serve
$ npm run tauri-dev

Webpack will automatically watch changes in src/ and refresh the app view, tauri will watch changes in src-tauri/ and rebuild/restart the app as needed.

How to use TrguiNG as a web interface

Transmission supports custom web interfaces, all you have to do is run the daemon with $TRANSMISSION_WEB_HOME variable pointing to the web assets that transmissinon will serve over it's .../transmission/web/ endpoint.

Example steps for debian:

  1. Download latest trguing-web-xxxx.zip zip from releases page.
  2. Unpack it anywhere, make sure that the user transmission runs under (by default debian-transmission) has read permissions.
  3. Edit transmission daemon systemd unit file /etc/systemd/system/multi-user.target.wants/transmission-daemon.service and add following to [Service] section:
    Environment=TRANSMISSION_WEB_HOME=/path/to/extracted/trguing/zip
    
  4. Reload the unit file with sudo systemctl daemon-reload and restart the service sudo systemctl restart transmission-daemon

License

Project is distributed under GNU Affero General Public License v3, see LICENSE.txt for details.