From 90ba82de8f8504b7eab91eb3f598ee66e30a3ad4 Mon Sep 17 00:00:00 2001 From: Igor Kulman Date: Sun, 24 Aug 2025 10:30:17 +0200 Subject: [PATCH] Add Transmission service --- docs/customservices.md | 26 +++ src/components/services/Transmission.vue | 199 +++++++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 src/components/services/Transmission.vue diff --git a/docs/customservices.md b/docs/customservices.md index 8ef2dc1..0a0c32f 100644 --- a/docs/customservices.md +++ b/docs/customservices.md @@ -53,6 +53,7 @@ Available services are located in `src/components/`: - [Tautulli](#tautulli) - [Tdarr](#tdarr) - [Traefik](#traefik) +- [Transmission](#transmission) - [TrueNas Scale](#truenas-scale) - [Uptime Kuma](#uptime-kuma) - [Vaultwarden](#vaultwarden) @@ -721,6 +722,31 @@ Displays Traefik. **Authentication**: If BasicAuth is set, credentials will be encoded in Base64 and sent as an Authorization header (`Basic `). The value must be formatted as "admin:password". +## Transmission + +This service displays the global upload and download rates, as well as the number of active torrents from your Transmission daemon. The service communicates with the Transmission RPC interface which needs to be accessible from the browser. Make sure to configure appropriate CORS headers if accessing from a different domain. + +```yaml +- name: "Transmission" + logo: "assets/tools/sample.png" + url: "http://192.168.1.2:9091" # Your Transmission web interface URL + type: "Transmission" + username: "your_username" # Optional: HTTP Basic Auth username + password: "your_password" # Optional: HTTP Basic Auth password + showWhenEmpty: true # Optional: Show data even when no torrents (default: true) + rateInterval: 5000 # Optional: Interval for updating download/upload rates (ms) + torrentInterval: 30000 # Optional: Interval for updating torrent count (ms) + target: "_blank" # Optional: HTML a tag target attribute +``` + +**Configuration Options:** + +- `username/password`: Optional HTTP Basic Authentication credentials +- `showWhenEmpty`: Controls whether to display rates and count when no torrents are active (default: true) +- `rateInterval`: How often to refresh transfer rates in milliseconds +- `torrentInterval`: How often to refresh torrent count in milliseconds + +The service automatically handles Transmission's session management and CSRF protection. ## Truenas Scale Displays TrueNAS version. diff --git a/src/components/services/Transmission.vue b/src/components/services/Transmission.vue new file mode 100644 index 0000000..6b5ca2b --- /dev/null +++ b/src/components/services/Transmission.vue @@ -0,0 +1,199 @@ + + + + +