How to use nginx with the Cloudstream-3 app
If you don't know what Cloudstream is, check out my other article about it here
What is Nginx ?
It's a free and open source software, it's really powerful but here we will only use it to display files on a simple web interface
The files we are using will be media such as movies or animes, that you need to download yourself (here we will use torrents)
I will also refer to nginx as
HTTP access in this tutorial because it allows the user to access his file using http.
You must have a server (like a raspberry pi, a NAS or a seedbox) and a media collection to use this feature !
Why did I create that ?
I used to be a user of jellyfin because I didn't want to pay for a subscription and I didn't want to use proprietary software just to display files like plex. It wasn't working really well and I sometimes wasn't able to play Movies and it semmed to use a lot of ressources
The solution ? Scrape the media files and their metadata using Cloudstream-3
The advantages of this provier over jellyfin are that it's lightweight and integrated with cloudstream
To setup nginx you must have a media server:
A 'managed' seedbox: is a service that you can rent and will take care of finding, downloading torrents and seeding them for you, check out mine here, easiest method (that I use)
You can also self host the media server, I cover the install of nginx here (harder)
Here I'll cover the install on a managed seedbox using ultra.cc
Here is a diagram I made to summarize how everything works:
Prowlarr is between the tracker and the media mangment apps (radarr and sonarr): it handles the requests to the trackers (that you add inside prowlarr)
What are trackers ?
They are basically websites where you create an account and they "list" content hosted by other users registered on the website (they don't host the content themself).
Sonarr and radarr will then ask prowlarr to search for something specific like a movie or an anime inside this list built by the tracker
Once the movie is found, the torrent file is sent to transmission.
Transmission is basically a torrent downloader, it will download the files given by radarr and sonarr
Installation with ultraseedbox
Ultraseedbox (now called ultra.cc) is a service that allows you to download torrents with really fast download speed and then seed those torrent (which means sharing it with other users how want to download them 24/7) but it cost some money, you can check them out here (I am not affiliated with them in any way, but their support and service is really great for me).
You can use any similar seedbox service that offers http access through nginx.
For my setup you have to install:
required (for metadata):
Sonarr (for tv shows)
Radarr (for movies)
Nginx - http access (already installed by default on ultra.cc)
Setting up radarr / sonarr
You must use a metadata downloader (that downloads .nfo files), I'll use radarr and sonarr since it's the easiest for me (it might be possible to download metadata using something else but I didn't try)
To install radarr and sonarr go into your control pannel, under installers search for sonarr and radarr
You now have to enable the download of metadata
To do so for Radarr go inside radarr to:
settings > metadata
you have to enable Kodi (XMBC) / Emby metadata
I use the following settings in radarr
you must untick "use Movie.nfo" as shown in the screenshot
For Sonarr go to:
settings > metadata
And enable those settings
If the metadata is not present, the movie / tv show will not be displayed by cloudstream
Now we are ready, if you want to add folders to the http access you can follow the documentation coming from ultra.cc
Go into the settings of Cloudstream-3 and click the
Nginx server url button
Here you need to type the exact url of the http nginx server where you access your files, for exemple
The http access requires authentification, you have to go under
Nginx Credentials and type your username and password.
Those credentials are written in the control pannel of ultra.cc under:
Access details > HTTP proxy access
As written in the description, you have to supply those credentials using a very specific format, let's say your username is
mycoolusername and your password is
password1234 (Please use a password manager lol), then you have to type in the input:
You now have to restart the app to apply the changes.
Nginx will now show up in the sources list on the home page
It might say that no url is supplied when starting the application, you can just hit the retry button and it should work fine
That's it, you added nginx to Cloudstream