Remote GUI for Transmission torrent daemon
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:
- Better bandwidth groups support when API is ready (transmission/transmission#5455)
Transmission v2.40 or later is required.
You can get the latest release from the releases page.
Weekly builds of current development version are available from github build workflows. Pick the latest successful run and scroll down to the artifacts section.
Prerequisites:
- Node.js 16 or later
- rust 1.77 or later
- Geoip lookup database in mmdb format, put it in
src-tauri
You can get latest db from db-ip.com.wget -nv -O src-tauri/dbip.mmdb "https://github.com/openscopeproject/TrguiNG/releases/latest/download/dbip.mmdb"
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.
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:
- Download latest
trguing-web-xxxx.zip
zip from releases page. - Unpack it anywhere, make sure that the user transmission runs under (by default
debian-transmission
) has read permissions. - 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
- Reload the unit file with
sudo systemctl daemon-reload
and restart the servicesudo systemctl restart transmission-daemon
Project is distributed under GNU Affero General Public License v3, see LICENSE.txt
for details.