Hey there guys! I been trying to set up stremio-server on umbrel which proved in first instance, quite easy with Protrainer. My hope is one day being able to publish it as an official app.
Honestly I’m new to container environment, and although stremio-server is up and running and accessible through the webui, I cannot get the Straming service to work (it’s always on error. ).
After long hours of reading, I’m quite positive the problem has to do with me, not understanding how container networking in umbrel works (server works fine on a VM on my computer).
I been studying this documentation: umbrel-apps/README.md at master · getumbrel/umbrel-apps · GitHub thoroughly and cannot seem to find much information about networking (or not much that I understand. Please be patient, I’m new), to be able to assess what is going on.
I’m running Umbrel 1.2.1 on a RPI 4B 4gb RAM.
Forgot to add container logs:
There a few errors.
Cannot update settings ENOENT: no such file or directory, open ‘/root/.stremio-server/server-settings.json’
hls executables located → {
ffmpeg: ‘/usr/lib/jellyfin-ffmpeg/ffmpeg’,
ffsplit: null,
ffprobe: ‘/usr/lib/jellyfin-ffmpeg/ffprobe’
}
Using app path → /root/.stremio-server
(node:1) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use node --trace-deprecation ...
to show where the warning was created)
EngineFS server started at http://127.0.0.1:11470
hls-converter - Initiating tests for hardware accelerated transcoding support, possible options: qsv-linux,nvenc-linux,vaapi-renderD128
hls-converter - Testing video hw accel for profile: qsv-linux
EngineFS HTTPS endpoint at https://local.strem.io:12470
→ GET /hlsv2/11470-qsv-linux-video-hevc.mkv/video0.m3u8?mediaURL=http%3A%2F%2F127.0.0.1%3A11470%2Fsamples%2Fhevc.mkv&profile=qsv-linux&maxWidth=1200
→ GET /samples/hevc.mkv bytes=0-
→ GET /samples/hevc.mkv
Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
at new NodeError (internal/errors.js:322:7)
at Socket.onclose (internal/streams/end-of-stream.js:121:38)
at Socket.emit (events.js:412:35)
at Pipe. (net.js:686:12) {
code: ‘ERR_STREAM_PREMATURE_CLOSE’
}
→ GET /hlsv2/11470-qsv-linux-video-hevc.mkv/destroy
hls-converter 11470-qsv-linux-video-hevc.mkv has been requested to be destroyed
hls-converter 11470-qsv-linux-video-hevc.mkv destoyed
hls-converter - Tests failed for [video] hw accel profile: qsv-linux
hls-converter - Some tests failed for hw accel profile: qsv-linux
hls-converter - Testing video hw accel for profile: nvenc-linux
→ GET /hlsv2/11470-nvenc-linux-video-hevc.mkv/video0.m3u8?mediaURL=http%3A%2F%2F127.0.0.1%3A11470%2Fsamples%2Fhevc.mkv&profile=nvenc-linux&maxWidth=1200
hls-converter 11470-qsv-linux-video-hevc.mkv will be destroyed due to passing concurrency of 1
→ GET /samples/hevc.mkv
Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
at new NodeError (internal/errors.js:322:7)
at Socket.onclose (internal/streams/end-of-stream.js:121:38)
at Socket.emit (events.js:412:35)
at Pipe. (net.js:686:12) {
code: ‘ERR_STREAM_PREMATURE_CLOSE’
}
→ GET /hlsv2/11470-nvenc-linux-video-hevc.mkv/destroy
hls-converter 11470-nvenc-linux-video-hevc.mkv has been requested to be destroyed
hls-converter 11470-nvenc-linux-video-hevc.mkv destoyed
hls-converter - Tests failed for [video] hw accel profile: nvenc-linux
hls-converter - Some tests failed for hw accel profile: nvenc-linux
hls-converter - Testing video hw accel for profile: vaapi-renderD128
→ GET /hlsv2/11470-vaapi-renderD128-video-hevc.mkv/video0.m3u8?mediaURL=http%3A%2F%2F127.0.0.1%3A11470%2Fsamples%2Fhevc.mkv&profile=vaapi-renderD128&maxWidth=1200
hls-converter 11470-nvenc-linux-video-hevc.mkv will be destroyed due to passing concurrency of 1
→ GET /samples/hevc.mkv
Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
at new NodeError (internal/errors.js:322:7)
at Socket.onclose (internal/streams/end-of-stream.js:121:38)
at Socket.emit (events.js:412:35)
at Pipe. (net.js:686:12) {
code: ‘ERR_STREAM_PREMATURE_CLOSE’
}
→ GET /hlsv2/11470-vaapi-renderD128-video-hevc.mkv/destroy
hls-converter 11470-vaapi-renderD128-video-hevc.mkv has been requested to be destroyed
hls-converter 11470-vaapi-renderD128-video-hevc.mkv destoyed
hls-converter - Tests failed for [video] hw accel profile: vaapi-renderD128
hls-converter - Some tests failed for hw accel profile: vaapi-renderD128
hls-converter - Tests for hardware accelerated transcoding finished, no viable acceleration profiles detected
Resizing cache size to 2048MB from 0MB by deleting 0 files
hls-converter 11470-vaapi-renderD128-video-hevc.mkv is inactive, destroying it
hls-converter 11470-vaapi-renderD128-video-hevc.mkv destoyed
The ones related to transcoding I don’t mind at this stage.
I don’t understando why the missing file error, since I can see the files in the mentioned directory.
I am also interested in the Streamio application. I am extremely inexperienced with it, but I am very interested in improving my skills. I would like to know what you have done so far to try to help identify the error.
just begun. pulled stremio-server with protrainer from docker hub (I was also able to make the container myself, but I cannot get the web service online, in any of the two ways.
As I said, I assume (can easily be wrong) it has to do with umbrel container networking.
Which image did you use?
Solved it!
Everything is working fine. I missundertood how stremio service worked. You need to run it locally (in the computer u are using the webui) for it to work.
I think it kind of defeats the cause to have stremio running on umbrel if you need to download stremio service on the local device. Why would you if you could install the stremio app locally.
That being the case, I was trying to install stremio service on Umbrel, but there is no arm release.
It’s complicated. I was interested in doing this to have better utilization of Real-Debrid, but if it is necessary to run the application locally, it is not very useful. Unless the traffic is being generated on the server. If it is, it is still useful to me.
traffic is on the server. you don’t need local app. only web service. you can download the web service here:
So it will work for me. Can you explain the step-by-step process (if it’s not too much trouble)? I’ve been trying to get this to work minimally all afternoon. I’m really just starting with Docker now.
Yes. Tis pretty easy with Protrainer.
On your umbrel server install Protrainer.
In Protainer after you looged in, in home icon of lefthand menu click on Live Connect.
Then on left hand menu too, click on Containers. Then Add Container. Give it any name you like and here
pull stremio/server (no need to press search).
Enable Publish all exposed network ports to random host ports (or choose manual ports yourself).
Deploy container, and thats it on the server part.
On the device you will actually play the movies (needs to be a computer, for the time being, even if you want to cast it to a device such a Chromecast. you need the computer, that is why it defeats the cause in my opinion) you need to install and run stremio service from the website I shared previously.
Once you run the webui (app.strem.io, or the servers ip:port) you need to got to seettings, and in the Streaming part

if for some reason, Server is ib error, you have to Enable override option and manually set the ip where the web service (computer you are accessin webui, and will ultimately play the stream) is running.
I guess in countries where you need to run torrents through VPN, and want to do so in umbrel server only could have some use.
So, do I need to keep a computer on to use the web in other locations? I still haven’t managed to get it to recognize which IP needs to be manually set.
No. Umbrel on. And probably Tailscale if you want to access it remotely.
I dont understand what u havent managed.
Does it actually stream? Almost positive it won´t, with that on Error.
But you are almost there. You only need to install web service on the computer you are accessing web ui. if you did, maybe you forgot to run it. and if it is running, maybe you have the wrong port, or ip. if that is the case, enable override the streaming… and enter the url manually.
Where can I find the right URL? Yesterday, I couldn’t continue.
I don’t know what os u are in. I think the easiest approach is for u to go to stremio web (Stremio - Freedom to Stream) settings and check in the streaming section. If web service is working, it should be the ip stremio web is pointing at.
Today I received a few answer in the stremio community so will be trying a new approach, which should install server and client in umbrel.
If that works I’ll be back with news.
check this out.
It didn’t work for me. Probably is hardware related since I’m running on a RPI 4.
If you are running umbrel on better hardware, it will probably be the best solution for you,