Unlearned6688 / unraid-templates

xml templates for unraid's docker
1 stars 1 forks source link

Stremio add-ons #2

Closed HVR88 closed 2 months ago

HVR88 commented 2 months ago

I'm not sure what the point is of hosting Stremio in docker with no addons. Stremio without add-ons is a web player that can't play anything.

How do you get addons into the docker? Debrid search, Torrentio, etc..

pmcfernandes commented 2 months ago

In web ui settings edit 127.0.0.1:11470 to your server ip:11470 next authenticate with your current account you already using in desktop application.

Will load all your installed addons on desktop application

HVR88 commented 2 months ago

Thanks, I'll give it a try. I did forget that add-ons were tied to login ID so that you can set up in one place and use on another.

HVR88 commented 2 months ago

Couldn't log in until I used reverse proxy to set a TLS cert onto the page.

The problem with this is that Streaming Server setting always says ERROR, whether it's localhost (127....) or the actual IP of the bridge, or the FQDN. If I load the IP in the browser, then it says connected, but can't log in like that.

HVR88 commented 2 months ago

OK.... Hope you didn't read the post that I just got rid of because I just got this to work.

I set the docker back to regular bridge instead of custom bridge and skipped the reverse proxy so I can access it with http. This time it successfully logged in and changing the streaming server IP to the server's real IP brought it online.

And once online I see that streaming to the browser in fact works - so the benefit over using a client-side app is obvious here.

Unlearned6688 commented 2 months ago

Hello,

seems you got things working?

The other user said it above, but just as a "tip" for future users

you can get this up and running for the server portion

reverse proxy that connection

and easily add it to the settings in

https://web.stremio.com/

(The official publicly hosted stremio web app)

Useful for iOS devices (no Apple app... probably ever)

setup the http server in a container, setup a stremio account on desktop,

then on mobile add https://web.stremio.com/ to your Home Screen

go into the shortcut. Login. Add your ip:port (or reverse proxy url) to the settings, set it to launch in vlc or outplayer, then there you go. It works pretty well. I think it misses out scrobbling because of the app swap from safari to outplayer/vlc, but, 🤷‍♂️ Apple did this not stremio devs.

that's just the "shortcut" path btw. There's no reason you can't also host your own working web app and server if you wish. Just be careful if you reverse proxy the 11470 server and don't lock it down it I assume anyone can use it. I use a local domain (*.local.example.com) and vpn to my router and it works fine that way. Could also vpn to unraid if you have that setup. I'm not sure how the app performs in conjunction with an authentication setup like using authentik or authelia. But that would work too if it actually allows you to authenticate. Or just the ip:port if you don't care about doing so

HVR88 commented 2 months ago

Thanks for the tips.

Right now my problem is I'm unable to get the server status "online" in the self-hosted webUI when I go through reverse proxy and force HTTPS (with CA cert). Says Error every time. I'm using Nginx Proxy Manager, which has been working very well with everything else.

I also can't get the server to connect if I put its IP into web.stremio.com (or any variation of the non-hosted web site), even though it works fine via IP on the local web server. Because this is mainly intended for others in the house to use, I'd really like to get it working with FQDN and https like my other services.

Once I get that going then I'll test from outside - I'm running Tailscale right now which has worked well with all my other hosted apps and server WebUIs.

Unlearned6688 commented 2 months ago

ip-port-server-and-ip-port-web proxied-server-and-ip-port-web proxied-server-and-proxied-web

the blurred portions are my reverse proxy https://subdomain.domain.tld

I was able to get all of these working except for proxied web server + ip:port. the other setups all work.

HVR88 commented 2 months ago

Thanks again for looking at this.

I've added STREAM Proxies in NPM which send specified ports to your choice of IP:port. I've created entries for 11470 and 12470 (read about that port being used for secure server connection)

http IP webUI with http IP:11470 server works.

image

http IP or FQDN webUI with http FQDN:11470 server works

image

https server on port 11470 or 12470 always error, whether I connect to the webUI on IP or FQDN https

image

And of course it obviously also fails trying http server when using https on the webUI.

I don't see anything relevant coming up in the log that can be viewed in the docker (Unraid's docker menu)

Unlearned6688 commented 2 months ago

IMG_6219 IMG_6220

apologies for the delay and half reply above. Life distractions around me.

these are my unraid template and NPM settings.

note that I proxy the http server ip:port

And a separate subdomain for the webpage (I changed the port from 8080 on the host purely as a test earlier today. Shouldn't matter.)

the rest of my settings are basically default.

so for you, I would try:

Reverse proxy both the webpage (the ip:8080 one) maybe name it like stremio.domain.tld (or whatever). Make another entry for the stremio server (ip:11470). Maybe name it stremio-server.domain.tld.

I would personally just continue to use http. This docker image/project supports https, but, you're reverse proxying it anyway. So, just keep it simple with the http port. It absolutely does work. You can see mine works. That's my opinion anyway.

I think your main issue at this moment was not having two subdomains. One for the web app side, one for the server side.

if I'm wrong about that, if you did already have two subdomains like my setup, then maybe try swapping that 8080 to... something else. But I' pretty sure you just need to reverse proxy the two IPs.

let me know!

HVR88 commented 2 months ago

Beautiful, it worked with two subdomains. Thanks!

I had come to the conclusion that it was likely the proxy causing the issue because it already specifies a specific port for the webUI that likely causes a problem for the server port. As it was getting late, I thought I'd ask tomorrow if you actually had the server settings using the same subdomain or if you had split them.

Now I can likely get the kids to use this without coming back to me with "it says the page isn't secure...." hahaha.

Unlearned6688 commented 2 months ago

Very good! Glad I could help. I’m going to close this issue as it seems solved. I’ll also add this information (eventually…) to my little “readme” for this template. Should help people in the future. Have a good one.

HVR88 commented 2 months ago

Here's a summary:

The server should show up as ONLINE and video will play back within the browser - tested on Firefox and Safari in MacOS and Safari in iOS.

HVR88 commented 2 months ago

I wrote this for tsaridas on the original docker git, so thought I'd include it here for reference. Feel free to pull anything from it later when you expand your docs.

Self-hosted Stremio WebUI & Server
with Reverse Proxy & TLS/SSL on Own Domain Name

Prerequisites

Initial Stremio Account Setup

For access with your own domain name and secure HTTPS access

For remote access from outside your LAN

Container and Reverse Proxy Setup

  1. Install docker container on a Bridge network (uses host's IP with custom ports - usually default)
  2. Test local access with IP address in browser Example: access webUI http://10.10.1.200:8080 (use your specific IP)
  3. Log in using the ID you previously created for Stremio All your plugins should be loaded automatically - verify this
  4. Go to Settings and set Server address: http://10.10.1.200:11470 (always same IP but with server port 11470) Status must show "Online" after you enter the address
  5. Browse the Stremio library, select a movie, select a source and try playing it Video should queue up and start playing in the browser
  6. Create an entry in your reverse proxy for the webUI (example, "Proxy Hosts" in NPM) Domain name: stremio.yourdomain.tld Forward IP: 10.10.1.200 Forward port: 8080 Force TLS/SSL and select the wildcard certificate for your domain name (*.yourdomain.tld)
  7. Create an entry in your reverse proxy for the server Domain name: stremio-server.yourdomain.tld Forward IP: 10.10.1.200 Forward port: 11470 Force TLS/SSL and select the wildcard certificate for your domain name (*.yourdomain.tld)
  8. Create a DNS entry/override to point the two subdomains above to the IP of your reverse proxy Test local access via domain name in your browser Example: access webUI http://stremio-server.yourdomain.tld (don't use a port#, reverse proxy does that already) If reverse proxy is working and DNS entry correct, your browser will automatically be sent to webUI with https
  9. Log in using the ID you previously created for Stremio You have to log in every time you connect with a different URL or a different browser
  10. Go to Settings and set Server address: https://stremio-server.yourdomain.tld (note you don't need to include port#) Status must show "Online" after you enter the address This is important, as you have to set server address every time you use a new browser and AFTER logging in
  11. Browse the Stremio library, select a movie, select a source and try playing it Video should queue up and start playing in the browser

If you have set up a VPN like Tailscale, the above will also automatically work when you access your network remotely