11b71966ede1336f2a193c86f7d503237ba10018
Transmission Manager
A lightweight, modern, single-binary web application for viewing and managing torrents from a Transmission RPC daemon.
Transmission Manager serves a fast, clean, dark-mode Single Page Application (SPA) and proxies Transmission RPC calls through a minimal Go backend—all contained within a single executable.
Features
- Single Static Binary: All frontend assets (
index.html,app.js,styles.css) are embedded directly into the Go binary usingembed. Zero runtime asset dependencies. - Modern Dark-Mode UI: Built with vanilla HTML5, CSS3 (using CSS variables), and JavaScript. Responsive, compact layout designed for both desktop and mobile screens.
- Live Polling & In-Place Updates: Keyed DOM reconciliation updates existing torrent cards in place without screen flickering or scroll jumping. Selectable refresh interval (1s, 3s, 5s, 10s).
- Rich Sorting & Filtering:
- Filter torrents instantly by name.
- Sort by Status, Name, Progress, Ratio, Size, Speed, or Availability.
- Interactive Controls: Pause or resume individual torrents directly from the web interface.
- Robust Transmission RPC Support:
- Automatically handles Transmission
409 Conflictsession ID (X-Transmission-Session-Id) handshakes. - Supports optional HTTP Basic Authentication.
- Automatically handles Transmission
Configuration
Transmission Manager is configured entirely via environment variables:
| Variable | Required | Description |
|---|---|---|
TRANSMISSION_URL |
Yes | Absolute HTTP or HTTPS RPC endpoint URL of your Transmission instance. |
TRANSMISSION_RPC_USERNAME |
No | Basic Authentication username for Transmission RPC. |
TRANSMISSION_RPC_PASSWORD |
No | Basic Authentication password for Transmission RPC. |
Quick Start
Using Docker
Run the container directly:
docker run -d \
--name transmission-manager \
-p 8080:8080 \
-e TRANSMISSION_URL=http://192.168.1.100:9091/transmission/rpc \
-e TRANSMISSION_RPC_USERNAME=admin \
-e TRANSMISSION_RPC_PASSWORD=secret \
transmission-manager:latest
Using Docker Compose
Create a docker-compose.yml:
services:
transmission-manager:
build: .
container_name: transmission-manager
ports:
- "8080:8080"
environment:
TRANSMISSION_URL: http://192.168.1.100:9091/transmission/rpc
TRANSMISSION_RPC_USERNAME: admin
TRANSMISSION_RPC_PASSWORD: secret
restart: unless-stopped
Then start the application:
docker compose up -d
Open your browser and navigate to http://localhost:8080.
Building from Source
Prerequisites
- Go 1.24 or later
Build
Compile the single binary with embedded frontend assets:
git clone https://github.com/your-repo/transmission-manager.git
cd transmission-manager
go build -ldflags="-s -w" -o transmission-manager .
Run
export TRANSMISSION_URL="http://localhost:9091/transmission/rpc"
./transmission-manager
By default, the server listens on port 8080.
Description
Languages
JavaScript
37.4%
CSS
28.6%
Go
25.7%
HTML
7.7%
Dockerfile
0.6%