Home

Awesome

<p align="center"> <img src="public/assets/icon/favicon.png" width="96"> </p> <h3 align="center">Transmissionic</h3> <p align="center"> Transmissionic is a free multi-platform remote for Transmission Daemon built with <a href="https://ionicframework.com/">Ionic</a> and <a href="https://vuejs.org/">Vue.js</a>.<br> It can be used as <a href="https://github.com/transmission/transmission/wiki/Web-Interface">Web Interface</a>, Android/iOS app and Windows/Linux/macOS program. </p> <p align="center"> </p>

Version Dev GitHub all releases Build Sonar Quality Gate Maintainability Rating

<a href='https://play.google.com/store/apps/details?id=com.sleroy.transmissionic&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' width="240" src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/></a>

About

Main features

Screenshots

<img src="https://i.imgur.com/STtzxrY.png" width="300"> <img src="https://i.imgur.com/5Y9ML4s.png" width="300">

Translation

Available languages:

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

Thanks to all contributors.

Compatibility

Web UI

BrowserChromeFirefoxSafariEdgeIEChrome for AndroidSafari on iOS
Version≥23 ✔≥21 ✔≥6 ✔≥79 ✔≥90 ✔≥6 ✔

Application

OSWindowsLinuxmacOSAndroidiOS
Version≥10 ✔≥10.11 ✔≥5.0 ✔≥12 ✔

Motivations

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 and unzip it.

Method 1

Set an environment variable named TRANSMISSION_WEB_HOME with the path of the extracted folder as value.

Example:

export TRANSMISSION_WEB_HOME=/path/to/transmissionic/folder

Method 2

Note: On older versions of Transmission, the public_html folder is named web

Copy the content of the extracted folder to the public_html folder of Transmission, whose location varies depending on your operating system:

Windows

C:\Program Files\Transmission\public_html

Linux

/usr/share/transmission/public_html

macOS

/Applications/Transmission.app/Contents/Resources/public_html

Don't forget to save your current public_html folder if you want to switch back.

Linux

Download the AppImage from the latest release page.

It's recommended to use AppImageLauncher to take advantage of the torrent file assosiation and magnet link handling.

macOS

Download the DMG from the latest release page.

When you try to install it, you will get an error. After getting the error, go to System Preferences > Security & Privacy and click on Open Anyway.

iOS

Download the IPA from the latest release page.

Use a tool like AltStore to sideload the app on your device.

Other

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

Configuration

Web UI

You don't need to specify the server details as they will be automatically detected from the URL of the Web UI.

Default settings

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:

KeyTypeDescriptionDefault
colorSchemestringPossible values: light or darkSystem default
languagestringAn ISO 639-1 language code, example: en-USSystem default
orderBystringPossible values: name, addedDate, sizeWhenDone, uploadRatio, uploadedEver, rateUpload, activityDate, queuePositionaddedDate
reversebooleanReversed orderingtrue
useBitsbooleanDisplay speed in bit/strue
expandMenubooleanExpand side menu on large screentrue
searchByNamebooleanSearch torrents by nametrue
searchByDirectorybooleanSearch torrents by download directorytrue
ipFlagsbooleanDisplay peer flagfalse
openMagnetLinksbooleanOpen magnet links with Transmissionicfalse
rememberSelectedPresetbooleanRemember selected preset when adding torrentsfalse
compactModebooleanCompact torrent listfalse
showTrackerListbooleanAlways show the list of trackers in the side menufalse
refreshIntervalnumberRefresh interval in seconds5
timeoutnumberConnection timeout in seconds10
serversarrayDefault servers[]

Server object:

KeyTypeDescription
namestringName to display
hoststringHostname or IP address of Transmission RPC
pathstringPath of Transmission RPC
portnumberPort of Transmission RPC
httpsbooleanUse HTTPS

Configuration file example:

{
  "colorScheme":"dark",
  "language":"en",
  "orderBy":"name",
  "reverse":false,
  "ipFlags":true,
  "refreshInterval":10,
  "timeout":20,
  "servers":[
    {
      "name":"My server",
      "host":"transmission.myserver.com",
      "path":"/my/transmission/rpc",
      "https":true
    }
  ]
}

Magnet protocol

You can handle magnet links directly with the Web UI, but this feature is only available in secure contexts (HTTPS) or from localhost.

To use the Web UI in HTTPS, you must set up a reverse proxy: [GUIDE] Transmission web in SSL (https) - using nginx as a reverse proxy

List of supported browsers: Browser compatibility

Bookmarklet

When using the Web UI, you can import magnet and torrent links using a bookmarklet. To set up the bookmarklet, open the Web UI settings and simply drag and drop the corresponding button into your bookmarks bar.

You can use the text selection to highlight a magnet link or a hash before cliking on the bookmarklet, otherwise the script will look for a clickable magnet or torrent link in the page.

For mobile users:

  1. Long-press the bookmarklet button and select "Copy link address".
  2. Add the current page to your favorites and edit the bookmark.
  3. Replace the address with the one you previously copied and change the name to "Download with Transmissionic".
  4. Go on a torrent page.
  5. Tap on the address bar, search for "Download with Transmissionic" and select the bookmark. (Screenshot)

Electron

Magnet protocol

To handle magnet links in Windows, you need to set Transmissionic as the default program.

To do so, go to "Choose default apps by protocol" in the Windows settings, scroll down to "MAGNET" then select Transmissionic.

Path mapping

You can configure path mapping on computer, this allow you to match remote paths with local paths to open the file explorer. This parameter works exactly the same way 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.

Keyboard shortcuts

KeysAction
Alt TOpen torrent
Alt MOpen magnet
Alt UOpen URL
Alt SSettings
Alt NNew server
Alt IServer information
Alt CServer configuration
Alt AAbout
Alt 1-9Select filter
Cmd/Ctrl Alt SSearch
Cmd/Ctrl Alt TToggle side menu
Cmd/Ctrl RightArrowNext tab
Cmd/Ctrl LeftArrowPrevious tab
Shift ClickSelect torrent
Ctrl ASelect all
EscCancel selection

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

If you want to build the APK, you must install Android Studio or JDK.

If you want to build the IPA, you must install Xcode.

Web UI

Simply run the following command:

npm run build:webui

This will build the Web UI inside the dist folder.

Electron

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

npm run sync:electron

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

npm install

Windows

npm run electron:build-windows

Linux

npm run electron:build-linux

macOS

npm run electron:build-mac

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

Android

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

npm run sync:android

With Android Studio

Open Android Studio by running:

npx cap open android

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

Without Android Studio

Place your terminal in the android folder and run this:

./gradlew build

The APK will be located in the android/app/build/outputs/apk folder.

iOS

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

npm run sync:ios

Then open Xcode by running:

npx cap open ios

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 this in the root folder of the project:

npm run serve

If you want to contribute and pull your changes to this project, please work on the dev branch as it contains all the latest changes.

TODO