Safe-Stremio: Your Secure, Pirate-Friendly Streaming Solution

safe-stremio runs Stremio Server and the Stremio Web UI in one Docker container, behind nginx. Your server, your rules. nginx puts HTTP basic auth and a per-IP rate limit in front of both, and an optional OpenVPN client sends the container’s traffic through your VPN so your real IP stays out of it.

browser
  │  http://yourdomain:8080
  ▼
proxy container (nginx:alpine, publishes 8080)    only needed for LAN access with the VPN on
  │
  ▼
safe-stremio container, port 80
  nginx: basic auth + 1 request/s per IP, burst 10
    ├─ /                  Stremio Web static files
    └─ /stremio-server/   Stremio Server on 127.0.0.1:11470
  OpenVPN (optional): outbound traffic through your VPN

Quick start

docker pull psyb0t/safe-stremio:latest

Grab docker-compose.yml, put your OpenVPN config in ./openvpn/config.ovpn, change the username and password, and start it:

docker compose up -d

Open http://yourdomain:8080, log in, and set the streaming server URL in Stremio Web to http://yourdomain:8080/stremio-server/. Getting started has every step, including a run without the VPN.

Where to go next

You want to Read
Go from nothing to streaming Getting started
Know every environment variable, file, port and volume Configuration
Understand the startup order, nginx routes and the watchdog How it works
Know what is protected and what is not Security
Fix “Streaming Server is not available” or a container that keeps exiting Troubleshooting
Build, lint and test the image, or cut a release Development