Skip to content

Repository files navigation

Easy AIOStreams

License: MIT

A one-command installer for a self-hosted AIOStreams instance. It sets up Docker, Caddy (automatic HTTPS via Let's Encrypt), and secure login access to the config page and dashboard, all in one script. Restricted to your own credentials.

Contents

What this gives you

  • Your own AIOStreams instance, not a shared public one
  • HTTPS out of the box, auto-renewing, no manual cert wrangling
  • App-level login (AIOStreams' own auth). The configure page, dashboard, and the config API all require your username/password. Nobody else can create or edit configs on your instance, even if they talk to the API directly.
  • A management menu for status checks, restart, updates, switching from stable to nightly and back, backups, and clean uninstall, all in one place
  • Single-tarball backup and restore, for migrating to a new server or restoring to an existing one, without losing any configs

Prerequisites

  • A fresh VPS with root access, running Ubuntu 24.04+ or Debian 13 (should also work on Debian 12, untested)
  • Ports 80 and 443 opened in your provider's firewall if it's enabled. Oracle cloud users, do this first > Firewall Ports.
  • A subdomain you control, with an A record already pointed at your server's IP before running the script

Don't have a VPS yet?

Any provider with root SSH access works: DigitalOcean, Hetzner, Oracle's free tier, Vultr, and others all run this fine. Compare specs/pricing at vpsbenchmarks.com's under-$8/month list.

This script won't run on Vercel, Netlify, Railway, or similar app-hosting platforms.

Don't have a domain yet?

Any registrar works. If you're buying one just for this, prefer .xyz or .top over a country-code TLD (.co.uk, .de). They're usually DNS-ready in minutes, versus hours to days for country-code domains.

  • Porkbun: cheap .xyz/.top, free WHOIS privacy + SSL, near-instant activation
  • Spaceship: Namecheap's leaner sister site, competitive pricing (especially .com), free WHOIS privacy
  • Namecheap: the established option, huge TLD selection, slightly pricier renewals
  • DuckDNS: totally free yourname.duckdns.org subdomain, no card needed. Fine for personal use, though you don't get to pick your own TLD.

Whichever you pick, add an A record pointing at your VPS's IP before running the script. The install fails the HTTPS step if DNS hasn't propagated.

Quick start

Confirm your DNS is actually pointing at your server first

The install fails the HTTPS step if your A record hasn't propagated yet. Run this, but swap yourdomain.xyz for your own real domain first, it's just a placeholder:

Bare name only, no https://, no trailing /, no backslash. e.g. dig +short yourdomain.xyz, or dig +short aio.yourdomain.xyz for a subdomain. It should print a single IP; compare it to your server's:

dig +short yourdomain.xyz
curl -4 ifconfig.me

✅ Example: Matches, good to go:

dig +short yourdomain.xyz
192.0.2.15
curl -4 ifconfig.me
192.0.2.15

❌ Example: Doesn't match yet, wait and retry:

dig +short yourdomain.xyz
198.51.100.23
curl -4 ifconfig.me
192.0.2.15

Different IPs mean the domain isn't pointing at this server yet. Don't run the installer until these two lines match.

Run the installer

Create the install directory and move into it:

mkdir -p ~/aiostreams && cd ~/aiostreams

Download the script:

curl -fsSL https://raw.githubusercontent.com/alpinezx/easy-aiostreams/refs/heads/main/setup-aiostreams.sh -o setup-aiostreams.sh

(Optional: take a look before running it with less setup-aiostreams.sh)

Run it:

sudo bash setup-aiostreams.sh

The script will ask you for:

  1. Your domain/subdomain
  2. A username and password for logging into the instance
  3. Which build to run: stable (recommended) or nightly

Passwords need at least 8 characters, and are limited to letters, numbers, and @ % ^ * _ + = . ! ? -. Other symbols would break the user:pass environment format.

Docker install, HTTPS certificate, and secret key generation are all handled automatically.

Once it finishes, visit your domain and log in via AIOStreams' login page. From there, AIOStreams' own setup takes over.

Re-running the script later

Run it again any time from the same directory (~/aiostreams) and it'll detect your existing install and offer a menu that loops back after each action, so you can run several in a row without relaunching:

 1) View status
 2) Stop AIOStreams
 3) Start AIOStreams
 4) Restart the stack (AIOStreams + Caddy, and the VPN if enabled)
 5) Update (pull latest images + restart; can also switch stable/nightly)
 6) Reconfigure (change domain/login, backs up your current config first)
 7) Backup (one tarball with everything needed for migration or safekeeping)
 8) Restore from backup (also runs on a fresh server: sudo bash setup-aiostreams.sh restore <file>)
 9) Uninstall (clean removal)
10) Exit

Stable vs nightly: on a fresh install (or Reconfigure), you'll be asked to choose the latest (stable) or nightly build. Switch channels anytime from Update, it'll walk you through it and confirm before switching.

Notes

  • The installer prints your credentials file location and a couple of important reminders once it finishes. Read that summary before closing the terminal.

Backup & Restore (Migrating to a new server, optional)

  • Back up your whole stack to a single tarball and restore it to your existing or a new VPS, preserving the same domain, login, SECRET_KEY, and all, so every existing user config and installed Stremio manifest keeps working. Covers the DNS update you'll need to make afterward if you're migrating to a new server. → Basic · Advanced

Troubleshooting

HTTPS certificate stuck at "not confirmed"? Firewall & Ports Guide

Addon/scraper blocked, streams failing to load, 403/429/502 errors in the logs? Add-on Proxy Setup

The most common issues you may come across. Common Issues

links to every guide (basic and advanced). All Guides

If you suspect it's not your setup at all, check, Stremio Status or IbbyLabs Uptime Tracker to see if the addon/provider itself is down.

Other Scripts

Want a system-wide VPN layer, phone alerts if your VPN tunnel drops, or to turn a third-party site's webhook option into a phone alert? Those live in their own standalone scripts, see Other Scripts

For bugs in the script itself: open an issue. For setup questions not covered here or in the linked guides, check out these Reddit threads: r/streamioaddons, r/nuvioaddons

License

MIT, see LICENSE. Provided as-is, no warranty; you're responsible for your own server, keys, and data.

About

One-command installer for a self-hosted AIOStreams instance

Topics

Resources

Stars

37 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages