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.
Prerequisites:
- Node.js 16 or later
- rust 1.70 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.