openscopeproject / TrguiNG

Remote GUI for Transmission torrent daemon
GNU Affero General Public License v3.0
265 stars 32 forks source link
mantine-ui rust-application tauri-app torrents transmission-daemon typescript-react

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:

Planned:

Transmission v2.40 or later is required.

Compiling

Prerequisites:

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.