Transmission - jgalat/remote-app GitHub Wiki
Transmission
Transmission is a lightweight, cross-platform BitTorrent client. Remote connects to the Transmission daemon via its RPC interface.
Installation
You need to install the Transmission daemon (headless version) on the machine that will download torrents. GUI versions of Transmission also expose the RPC interface and can be used with the app.
Linux packages
Docker
The LinuxServer.io Transmission image is a popular choice:
services:
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- USER=username
- PASS=password
volumes:
- /path/to/config:/config
- /path/to/downloads:/downloads
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped
Configuration
Transmission's settings are stored in settings.json, typically located at ~/.config/transmission-daemon/settings.json or /config/settings.json inside Docker containers.
Important: Stop the Transmission daemon before editing settings.json. The daemon writes settings on shutdown and will overwrite your changes if it is running.
Enabling RPC access
The RPC interface must be enabled for the app to connect. Key settings:
{
"rpc-enabled": true,
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-authentication-required": true,
"rpc-username": "your-username",
"rpc-password": "your-password",
"rpc-whitelist-enabled": false
}
| Setting | Description |
|---|---|
rpc-enabled |
Must be true for the app to connect |
rpc-port |
Port for RPC connections (default: 9091) |
rpc-url |
Base URL path (default: /transmission/). The RPC endpoint will be at this path plus rpc |
rpc-authentication-required |
Set to true and configure a username and password |
rpc-username |
Username for authentication |
rpc-password |
Password for authentication. Transmission will hash this on first startup |
rpc-whitelist-enabled |
IP whitelist. Set to false if connecting from outside the local network, or add your IP to rpc-whitelist |
Remote access
If connecting from outside your local network, you will need to either:
- Port forward port 9091 (or your chosen RPC port) on your router to the machine running Transmission
- Use a reverse proxy (e.g., Nginx, Caddy) to expose the RPC endpoint over HTTPS
- Use a VPN (e.g., WireGuard, Tailscale) to access your local network remotely
Using HTTPS with a reverse proxy or VPN is recommended for security when accessing over the internet.
For more detailed configuration guides, see the Arch Wiki or LinuxServer.io docs.