Table of Contents
This page covers the ways that this addon can be deployed.
Docker
Docker is a quick and convenient way to run this. Official images are available at the ghcr.io and docker.io registries.
You can use either the latest tag to get the latest stable release, or the nightly tag to get the latest build available - it builds off of every commit made to the repository.
Rather than running this on a personal device, you can follow these instructions to run it on a server or VPS. You can use a free VPS from Oracle for this, or some cheap ones found on LowEndBox.
Docker Compose
-
Download the
compose.yamland.env.samplefiles:curl -O https://raw.githubusercontent.com/Viren070/AIOStreams/main/compose.yaml curl -o .env https://raw.githubusercontent.com/Viren070/AIOStreams/main/.env.sample -
Edit the
.envfile to your liking. -
Run the following command:
docker compose up -d -
Access the addon at
http://localhost:3000
Note
Torrentio and other strem.fun addons (Anime Kitsu, Torrent Catalogs) block certain server IP ranges from accessing the addon, like Oracle VPS. This causes 403 errors when attempting to create a user with these addons. There is no reliable workaround to this. You can try using a VPN via gluetun and hoping the VPN server you choose is not already blocked but it will likely become blocked.
Adjust your AIOStreams .env as follows
ADDON_PROXY=http://gluetun:8080 ADDON_PROXY_CONFIG=*:false,*.strem.fun:trueExample Compose
services: gluetun: image: qmcgaw/gluetun container_name: gluetun restart: unless-stopped cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun environment: - SETUPYOURVARS=HERE # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers for details on how to set up your environment variables for your VPN provider. volumes: - ./gluetun:/gluetun healthcheck: test: ["CMD", "/gluetun-entrypoint", "healthcheck"] interval: 60s timeout: 5s retries: 3 start_period: 1m # Use Gost as a proxy because its better. gost: image: ginuerzh/gost container_name: gost restart: unless-stopped network_mode: service:gluetun command: "-L :8080" depends_on: gluetun: condition: service_healthy restart: true
Traefik
For an easy way to get HTTPS (which is required to install Stremio addons outside of localhost), you can use Traefik as a reverse proxy.
Requirements:
- A domain/subdomain with a CNAME/A record pointing to the public IP of the server
- A server with ports 443 open
Tip
You can use free domains from DuckDNS and Afraid
- Modify your
compose.yamlto include Traefik like so:
services:
aiostreams:
image: ghcr.io/viren070/aiostreams:latest
container_name: aiostreams
restart: unless-stopped
ports:
- 3000:3000
env_file:
- .env
labels:
- "traefik.enable=true"
- "traefik.http.routers.aiostreams.rule=Host(`aiostreams.example.com`)"
- "traefik.http.routers.aiostreams.entrypoints=websecure"
- "traefik.http.routers.aiostreams.tls.certresolver=letsencrypt"
volumes:
- ./data:/app/data
traefik:
image: traefik:v3
container_name: traefik
restart: unless-stopped
environment:
- TZ=Etc/UTC # change this if needed
ports:
- 443:443
command:
- '--ping=true'
- '--api=true'
- '--api.dashboard=false'
- '--api.insecure=false'
- '--global.sendAnonymousUsage=false'
- '--global.checkNewVersion=false'
- '--log=true'
- '--log.level=DEBUG'
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.email=youremail@example.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/config/acme.json"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik:/config"
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
interval: 10s
timeout: 5s
retries: 3
- Make sure you replaced the following with their actual values:
aiostreams.example.com: Replace with your hostname you are using for AIOStreamsyouremail@example.com: Replace with your email, used for Let's Encrypt notifications
-
Then run the following command:
docker compose up -d
Compose with other addons
If you have other self-hosted addons, you'd like AIOStreams to use, fill them in in the .env file.
If you are looking for a more complete compose.yaml with more addons, you can use my template here.
Docker CLI
You can use the prebuilt images using one of the following commands, just make sure to provide a SECRET_KEY as AIOStreams will not start without it.
See the https://github.com/Viren070/AIOStreams/blob/main/.env.sample for details on generating one, as it requires a specific format.
GitHub Container Registry:
docker run -p 8080:3000 -e SECRET_KEY=Your64CharacterHexKeyGoesHere -v aiostreams-data:/app/data ghcr.io/viren070/aiostreams:latest
Docker Hub:
docker run -p 8080:3000 -e SECRET_KEY=Your64CharacterHexKeyGoesHere -v aiostreams-data:/app/data viren070/aiostreams:latest
If you would like to pass one of the environment variables, you can provide the -e flag, e.g. to provide a SECRET_KEY
docker run -p 8080:3000 -e SECRET_KEY=... viren070/aiostreams:latest
If you don't want to use a prebuilt image, or want to build from a commit that isn't tagged with a version yet, you can build the image yourself using the following commands:
git clone https://github.com/Viren070/aiostreams.git
cd aiostreams
docker build -t aiostreams .
docker run -p 8080:3000 aiostreams
ElfHosted (paid)
Note
Use the link below to support me, 33% of your AIOStreams subscription will go to me ❤️
AIOStreams is available as a paid product on ElfHosted. This offers you a no-hassle experience where you can expect things to "just work".
Private ElfHosted instances have Torrentio enabled, avoid ratelimits of other ElfHosted instances, and your instance itself will also have no rate limit.
Other
This addon can be deployed using some free solutions, but these should not be considered permanent solutions and can stop working at any point.
- Hugging Face
FROM ghcr.io/viren070/aiostreams:latest ENV PORT=7860 - Koyeb
- Render
From source
You need Node.js, git, and npm installed. Node v22 and pnpm v10.15 were used in the development of this project. I can not guarantee earlier versions will work.
- Clone the project and set it as the current directory
git clone https://github.com/Viren070/AIOStreams.gitcd aiostreams - Install project dependencies
pnpm i - Build project
pnpm run build pnpm run metadata --channel=nightly - Run project
pnpm run start - Go to
http://localhost:3000/configure
You can change the PORT environment variable to change the port that the addon will listen on.