DiscGrade is a Stremio/Fusion addon.
It checks disc-release websites and shows a movie or TV show's useful disc information inside Stremio/Fusion:
- recommended edition
- best video release
- best audio release
- commentary tracks when DiscGrade can find them
- all releases found by the sources
- streaming availability when no disc data is found
- debug information showing which websites were checked
The important link is the addon manifest (example link, doesn't work):
https://your-discgrade-site/manifest.jsonThat is the link you add to Stremio or Fusion.
You will do this:
- Install the tools that let your computer build and upload DiscGrade.
- Give your computer permission to upload to your AWS account.
- Run one deploy command.
- Copy the printed
manifest.jsonlink into Stremio or Fusion.
AWS keeps DiscGrade online after your computer is shut down.
Docker Desktop does not need to run forever. It only needs to be open while you deploy.
Install these on your computer before deploying.
Docker Desktop builds the DiscGrade app into a container.
A container is a packaged version of the app that AWS can run.
Install it from:
https://www.docker.com/products/docker-desktop/After installing Docker Desktop, open it once. Wait until it says Docker is running.
AWS CLI lets Terminal talk to your AWS account.
Install it from:
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.htmlOn Mac, open Terminal and check it works:
aws --versionOn Windows, open PowerShell and check it works:
aws --versionThe result should start with:
aws-cli/2lightsailctl lets AWS Lightsail receive the container that Docker builds.
Install it from:
https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-install-softwareOn Mac, open Terminal and check it works:
lightsailctl --versionOn Windows, open PowerShell and check it works:
lightsailctl --versionNode.js lets the deploy script create the AWS deployment files.
Install the current LTS version from:
https://nodejs.org/On Mac, open Terminal and check it works:
node --versionOn Windows, open PowerShell and check it works:
node --versionWindows needs Git for Windows because this project deploys with a Bash script.
Bash is the command runner used by the deploy script.
Install Git for Windows from:
https://git-scm.com/download/winAfter installing it, open the Windows Start menu and search for:
Git BashUse Git Bash for the deploy commands in this README.
Mac already includes a compatible shell, so Mac users do not need this extra step.
In AWS, create an access key for your IAM user.
Your computer needs two values:
- Access Key ID
- Secret Access Key
The Secret Access Key is private. Do not paste it into GitHub. Do not put it in this project.
On Mac, open Terminal and run:
aws configureOn Windows, open PowerShell and run:
aws configureAWS CLI will ask four questions.
For AWS Access Key ID, paste your Access Key ID.
For AWS Secret Access Key, paste your Secret Access Key.
For Default region name, type:
eu-west-1For Default output format, type:
jsonThis stores the AWS login on your computer for AWS CLI. It does not add the key to the project folder.
Make sure Docker Desktop is open and running before you deploy.
Open Terminal.
Go into the DiscGrade project folder:
cd ~/DiscGradeRun the deploy script:
bash scripts/lightsail-deploy.shOpen Git Bash.
Go into the DiscGrade project folder.
If the project is in your Windows user folder, the command will look like this:
cd ~/DiscGradeIf you downloaded the repo somewhere else, right-click the project folder in File Explorer, choose Open Git Bash here, then run the deploy command:
bash scripts/lightsail-deploy.shThe script does these jobs:
- creates an AWS Lightsail container service called
discgradeif it does not already exist - builds the DiscGrade container on your computer
- uploads the container to AWS Lightsail
- starts the new version on AWS
- prints the public website link
- prints the
manifest.jsonaddon link
When it finishes, look for a line like this:
Manifest URL: https://example.amazonaws.com/manifest.jsonCopy that full Manifest URL.
Open Stremio or Fusion.
Find the place where you add an addon by URL.
Paste the full manifest.json URL.
Example:
https://discgrade.example.com/manifest.jsonAfter adding it, DiscGrade should appear as an addon tab/card for supported movies and TV shows.
Open your manifest.json link in a browser.
If the browser shows text starting with {, the addon is online.
Open this test guide page, replacing the first part with your own AWS URL:
https://your-discgrade-site/guide/tt0056592If the guide page opens, the hosted app is working.
When the code changes and you want the hosted version to update, run the same deploy command again:
Mac:
cd ~/DiscGrade
bash scripts/lightsail-deploy.shWindows, inside Git Bash:
cd ~/DiscGrade
bash scripts/lightsail-deploy.shYou do not need to create a new Lightsail service.
The script reuses the existing discgrade service and replaces the running app with the new version.
AWS charges for the Lightsail service while it exists.
To delete the service, run:
Mac Terminal:
aws lightsail delete-container-service \
--region eu-west-1 \
--service-name discgradeWindows PowerShell:
aws lightsail delete-container-service --region eu-west-1 --service-name discgradeAfter this command succeeds, the old manifest.json link stops working.
Private settings are values that belong only to you.
Examples:
- AWS Access Key ID
- AWS Secret Access Key
- admin tokens
- private API keys
- private server URLs
Do not upload private settings to GitHub.
This project includes .env.example only as a list of setting names. It does not contain real secrets.
You do not need to create a .env file to deploy DiscGrade with the default settings.
If you do create a .env file later, keep it on your computer only. The .gitignore file is set up so .env files are not committed.
If you want to run DiscGrade on your computer without AWS, use the commands below.
Mac Terminal:
cd ~/DiscGrade
node --experimental-strip-types src/server.tsWindows PowerShell:
cd $HOME\DiscGrade
node --experimental-strip-types src/server.tsThen open:
http://localhost:7000/manifest.jsonLocal testing only runs on your own computer. Stremio/Fusion on another device needs the AWS manifest.json link.