Deployment
How to deploy AIOLiveTV using Docker, Vercel, or from source.
Docker
Docker is the recommended way to run AIOLiveTV locally or on a VPS. Build from this repository or use the compose file in the repo root.
Use the latest tag for the latest release.
Only BASE_URL and SECRET_KEY are required environment variables -
these (and a few other bootstrap variables) must be set in the environment.
Almost everything else is a runtime setting best configured from the
dashboard Settings page after first start. See the full list in Environment Variables.
Rather than running this on a personal device, consider hosting on a server or VPS. You can use Oracle Cloud's Always Free tier or find cheap options on LowEndBox.
Docker Compose (recommended)
Download the compose file and sample env:
curl -O https://raw.githubusercontent.com/mrcanelas/aiolivetv/main/compose.yaml
curl -o .env https://raw.githubusercontent.com/mrcanelas/aiolivetv/main/.env.sampleEdit .env to set at minimum a SECRET_KEY (64-character hex string). See Environment Variables.
Start the container:
docker compose up -dOpen http://localhost:3000/stremio/configure to complete setup.
Traefik (HTTPS)
Stremio requires HTTPS for addons hosted outside of localhost. Traefik is a convenient reverse proxy that can obtain Let's Encrypt certificates automatically.
Requirements:
- A domain or subdomain with a CNAME/A record pointing to your server's public IP
- Port 443 open on the server
Free domains are available from DuckDNS and Afraid.org.
Merge the following into your compose.yaml, replacing aiolivetv.example.com and youremail@example.com:
services:
aiolivetv:
image: ghcr.io/mrcanelas/aiolivetv:latest
container_name: aiolivetv
restart: unless-stopped
ports:
- 3000:3000
env_file:
- .env
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.aiolivetv.rule=Host(`aiolivetv.example.com`)'
- 'traefik.http.routers.aiolivetv.entrypoints=websecure'
- 'traefik.http.routers.aiolivetv.tls.certresolver=letsencrypt'
volumes:
- ./data:/app/data
traefik:
image: traefik:v3
container_name: traefik
restart: unless-stopped
ports:
- 443:443
command:
- '--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'Then run docker compose up -d.
Docker CLI
docker run -p 8080:3000 \
-e BASE_URL=http://localhost:8080 \
-e SECRET_KEY=Your64CharacterHexKeyGoesHere \
-v aiolivetv-data:/app/data \
ghcr.io/mrcanelas/aiolivetv:latestTo build from source instead of using a prebuilt image:
git clone https://github.com/mrcanelas/aiolivetv.git
cd aiolivetv
docker build -t aiolivetv .
docker run -p 8080:3000 \
-e BASE_URL=http://localhost:8080 \
-e SECRET_KEY=Your64CharacterHexKeyGoesHere \
aiolivetvVercel
AIOLiveTV can be deployed as a Vercel Container Function. This keeps the current Express server and frontend, but requires external PostgreSQL and Redis. See Vercel for environment variables, Cron Jobs, and the first-deploy checklist.
Other free platforms
These platforms offer free tiers that can run AIOLiveTV, but they are not permanent solutions — they can be revoked or stop working at any time:
| Platform | Notes |
|---|---|
| Hugging Face | Requires a custom Dockerfile setting ENV PORT=7860 |
| Koyeb | Free tier available |
| Render | Free tier available |
From source
Node.js v24 and pnpm v11 were used during development. Earlier versions may not work.
Clone the repository:
git clone https://github.com/mrcanelas/aiolivetv.git
cd aiolivetvInstall dependencies:
pnpm installBuild the project:
pnpm run build
pnpm run metadataStart the server:
pnpm run startOpen http://localhost:3000/stremio/configure.
Change the PORT environment variable to use a different port.

