/Transmissionic

Remote for Transmission Daemon

Primary LanguageVueMIT LicenseMIT

Transmissionic

Transmissionic is a free multi-platform remote for Transmission Daemon built with Ionic and Vue.js.
It can be used as Web Interface, Android app and Windows/Linux program. (More platform could be added such as Mac OS and iOS)


Version GitHub all releases Build Sonar Quality Gate Maintainability Rating POEditor POEditor POEditor POEditor

Get it on Google Play

About

Main features

  • Manage multiple servers
  • Add torrent from local file or magnet link
  • Drag & drop torrent file
  • Start/stop/reannonce/verify/delete one or more torrents
  • Modify torrent options
  • Set the location of a torrent
  • Select and rename torrent files
  • Edit tracker list
  • View peer list with flags
  • Sort torrents by trackers
  • Open files in explorer

Screenshots

Motivations

  • Provide a unified interface for all platforms
  • Improve myself on Vue.js 3 and Ionic 5
  • Get familiar with GitHub

Inspirations

Interface and features inspired by Transmission Remote and Transmission Remote GUI.

Installation

You must first enable remote access in Transmission settings.

Web UI

Download Transmissionic-webui-[version].zip from the latest release page.

Unzip it inside the web folder of Transmission, whose location varies depending on your operating system :

Windows

C:\Program Files\Transmission\web

Linux

/usr/share/transmission/web

Mac OS

/Applications/Transmission.app/Contents/Resources/web

Then access the Web UI as described here.

Other

Simply download the installer for the desired platform from the latest release page and install it.

Configuration

Web UI

The settings are stored on the client side, but you can overwrite the default settings by creating a file named default.json in the root folder of the Web UI.

The file can contain the following key/value pairs :

Key Type Description
colorScheme string Possible values: light or dark
language string An ISO 639-1 language code, example: en
orderBy string Examples: name, addedDate, uploadRatio, activityDate
reverse boolean Reversed ordering
useBits boolean Display speed in bit/s
expandMenu boolean Expand side menu on large screen
ipFlags boolean Display peer flag
refreshInterval number Refresh interval in seconds
timeout number Connection timeout in seconds

Configuration file example:

{
  "colorScheme":"dark",
  "language":"en",
  "orderBy":"name",
  "reverse":false,
  "ipFlags":true,
  "refreshInterval":10,
  "timeout":20
}

Electron

You can configure path mapping on computer, this allow you to match remote paths with local paths to open the file explorer. This setting works exacly the same as Transmission Remote GUI.

Example:

/mnt/ssd = \\192.168.1.1\ssd

/mnt/ssd = Remote path on the server where Transmission daemon is running.

\\192.168.1.1\ssd = Local path to access the shared folder.

In this case, the remote server IP is 192.168.1.1, and the folder /mnt/ssd must be shared on the network as ssd.

Build

Requirements

You must have Node.js installed, then you can clone this repo and install dependencies by running this in the root folder of the project :

npm install
npm install -g @ionic/cli
npm install -g @capacitor/cli

If you want to build the APK, you need to install Android Studio.

Web UI

Simply run the following commands :

npm run-script prebuild:webui
ionic build
npm run-script postbuild:webui

This will build the Web UI inside the dist folder.

Electron

Only Windows and Linux are currently supported, but feel free to make some changes to support other platforms.

First, synchronize Electron content by running this in the root folder of the project :

ionic cap sync @capacitor-community/electron
npm run-script postbuild:electron

Then place your terminal in the electron folder and run this :

# Install dependencies
npm install
# Build Windows installer
npm run-script electron:build-windows
# Build Linux installer
npm run-script electron:build-linux

The installer will be located in the electron/dist folder.

Android

Start by running this in the root folder of the project :

ionic cap sync android

Then open Android Studio by running :

ionic cap open android

Once Android Studio has loaded the project, build the app from Build > Make Project

Development

You can start a local dev server using Ionic, but you need to disable same origin policy in your browser to connect to Transmission RPC from a different host. For example, run a new instance of chrome with these flags : --disable-web-security --disable-gpu --user-data-dir=~/chromeTemp

Then start the dev server by running :

ionic serve

This will open http://localhost:8100/ in a new tab.

Translation

You can help with the translation by joining the project on POEditor. If your language is not availaible, feel free to suggest it.

Available languages :

  • English
  • French
  • Russian (Alek Depler)
  • Spanish (Zenón Monge)

Thanks to all contributors.

TODO

  • Add iOS/Mac OS support
  • Add server configurations modal
  • Add magnet url handling on Windows
  • Use ion-virtual-scroll when availaible for Vue.js