-
-
Notifications
You must be signed in to change notification settings - Fork 689
Deployment
This page covers the ways that this addon can be deployed.
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.
-
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:true
Example 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
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 AIOStreams -
youremail@example.com: Replace with your email, used for Let's Encrypt notifications
-
Then run the following command:
docker compose up -d
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.
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
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.
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
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.