It took me a lot of tinkering but I finally have Transmission Web shown as a tab inside Home Assistant!
This also has the advantage to be able to protect with SSL your transmission instance.
Make sure to have Nginx already set as proxy for Home Assistant before you follow these steps.
First of all, disable any kind of authentication from your transmission-daemon settings.json, we are going to use Nginx to protect our instance:
"rpc-whitelist-enabled": false,
"rpc-authentication-required": false
Now, add this config to your nginx configuration:
location /transmission {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_read_timeout 300;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /transmission/rpc {
proxy_pass http://127.0.0.1:9091/transmission/rpc;
}
location /transmission/web/ {
proxy_pass http://127.0.0.1:9091/transmission/web;
}
location /transmission/upload {
proxy_pass http://127.0.0.1:9091/transmission/upload;
}
location /transmission/web/style/ {
alias /usr/share/transmission/web/style/;
}
location /transmission/web/javascript/ {
alias /usr/share/transmission/web/javascript/;
}
location /transmission/web/images/ {
alias /usr/share/transmission/web/images/;
}
location /transmission/ {
return 301 https://$server_name/transmission/web;
}
}
Create the /etc/nginx/.htpasswd
using this website (so you don’t have to install anything more on your OS) to generate its content (the credentials that will be used to access transmission):
http://www.htaccesstools.com/htpasswd-generator/
Now you just have to create an iframe_panel in the Home Assistant configuration.yarml
torrent_page:
title: 'Transmission'
url: 'https://YOUR_DOMAIN/transmission/web/'
icon: 'mdi:progress-download'
That’s all!