{"id":20041779,"url":"https://github.com/tsaridas/stremio-docker","last_synced_at":"2026-04-24T12:08:26.710Z","repository":{"id":213158329,"uuid":"733142262","full_name":"tsaridas/stremio-docker","owner":"tsaridas","description":"Docker files for easy stremio server and client. Images pushed to Dockerhub","archived":false,"fork":false,"pushed_at":"2026-01-10T04:58:23.000Z","size":1239,"stargazers_count":367,"open_issues_count":13,"forks_count":50,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-12T19:28:17.357Z","etag":null,"topics":["docker","docker-compose","docker-image","dockerfile","easy","easy-to-use","ffmpg","stremio","stremio-client","stremio-server","stremio-webplayer","vaapi"],"latest_commit_sha":null,"homepage":"https://github.com/tsaridas/stremio-docker/wiki/Introduction","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsaridas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-18T16:50:59.000Z","updated_at":"2026-01-12T11:56:34.000Z","dependencies_parsed_at":"2025-11-30T05:02:47.979Z","dependency_job_id":null,"html_url":"https://github.com/tsaridas/stremio-docker","commit_stats":null,"previous_names":["tsaridas/stremio-docker"],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/tsaridas/stremio-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsaridas%2Fstremio-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsaridas%2Fstremio-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsaridas%2Fstremio-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsaridas%2Fstremio-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsaridas","download_url":"https://codeload.github.com/tsaridas/stremio-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsaridas%2Fstremio-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32222575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","docker-image","dockerfile","easy","easy-to-use","ffmpg","stremio","stremio-client","stremio-server","stremio-webplayer","vaapi"],"created_at":"2024-11-13T10:47:47.989Z","updated_at":"2026-04-24T12:08:26.691Z","avatar_url":"https://github.com/tsaridas.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","docker"],"sub_categories":[],"readme":"# Easy stremio on Docker\n\n## Introduction\n\n[Stremio](https://www.stremio.com/) is a free application which lets you stream your favorite shows and movies.\n\nThe Docker images in this repository bundle stremio-server, ffmpeg and web player for you, ready to use in a small Alpine image.\n\nI built this to run Stremio on my Raspberry Pi 5 and couldn't find something that has both player and server but also the official image seemed too big but also lacks the Web Player and doesn't work out of the box if no HTTPS is configured.\n\n## Features\n\n- **All-in-One:** Bundles Stremio server, web player, and ffmpeg in a single container.\n- **Simple Networking:** Both the web player and server run on port 8080 behind nginx, so you only need to expose one port.\n- **Automatic Server Configuration:** Use `AUTO_SERVER_URL` or `SERVER_URL` to automatically configure the streaming server URL in the web player.\n- **HTTPS Out-of-the-Box:** Automatically generates and uses SSL certificates when an `IPADDRESS` is provided.\n- **Custom Certificates:** Supports using your own domain and SSL certificates.\n- **Hardware Acceleration:** Includes ffmpeg with VAAPI support for Intel and AMD GPUs.\n- **Cross-Platform:** Builds are available for `amd64`, `arm/v6`, `arm/v7`, `arm64/v8`, and `ppc64le`.\n- **HTTP Basic Auth:** Secure your instance with a username and password.\n\n## Requirements\n\n- A host with Docker installed.\n\n## Installation\n\n### 1. Install Docker\n\nIf you haven't installed Docker yet, you can usually install it with:\n\n```bash\ncurl -sSL https://get.docker.com | sh\nsudo usermod -aG docker $(whoami)\nexit\n```\nAnd log in again.\n\n### 2. Run Stremio\n\n**Option A: Using Docker Compose (Recommended)**\n```bash\n# Clone the repository\ngit clone https://github.com/tsaridas/stremio-docker.git\ncd stremio-docker\n\n# Edit compose.yaml if needed, then run:\ndocker compose up -d\n```\nThe compose file includes common settings like `NO_CORS: 1` and `AUTO_SERVER_URL: 1`.\n\n**Option B: Using Docker Run**\n```bash\ndocker run -d \\\n  --name=stremio-docker \\\n  -e NO_CORS=1 \\\n  -e AUTO_SERVER_URL=1 \\\n  -v ./stremio-data:/root/.stremio-server \\\n  -p 8080:8080/tcp \\\n  --restart unless-stopped \\\n  tsaridas/stremio-docker:latest\n```\n\nThe Web UI will now be available on `http://\u003cYOUR_SERVER_IP\u003e:8080`. The streaming server will be auto-configured for you from the URL of the browser you are using to open it.\n\n\u003e 💡 Your configuration files and cache will be saved in `./stremio-data` on your host machine.\n\n## Configuration Options\n\nThese options can be configured by setting environment variables using `-e KEY=\"VALUE\"` in the `docker run` command.\n\n| Env                   | Default | Example                      | Description                                                                                                                                                                                                  |\n|-----------------------|---------|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `IPADDRESS`           | -       | `192.168.1.10`               | Set this to a valid IPv4 in order to enable https and generate certificates with stremio domain. If you set this to 0-0-0-0 it will try to automatically get your public ip. Getting the public ip and DNS is not reliable and might need multiple retries. **It will not work for IPv6**                                                                                                                                                                                 |\n| `SERVER_URL`          | -       | `http://192.168.1.10:11470/` | Manually sets the streaming server URL. This is useful when you want to force a specific URL.                                                                                                                     |\n| `AUTO_SERVER_URL`     | 0       | 1                            | When set to `1`, the streaming server URL is automatically detected from the browser's URL. This is the recommended setting for most users.                                                                    |\n| `NO_CORS`             | 1       | `0`                          | Set to enable server's cors. Default is disabled.                                                                                                                                                                                 |\n| `CASTING_DISABLED`    | -       | `1`                          | Set to disable casting. You should set this to `1` if you're getting SSDP errors in the logs                                                                                                                 |\n| `WEBUI_LOCATION`      | -       | `http://192.168.1.10:8080`   | Sets the redirect page for web player and automatically sets up streaming server for you when one tries to access server at port 11470 or 12470. Default is https://app.strem.io/shell-v4.4/                 |\n| `WEBUI_INTERNAL_PORT` | 8080    | `9090`                       | Sets the port inside the docker container for the web player                                                                                                                                                 |\n| `FFMPEG_BIN`          | -       | `/usr/bin/`                  | Set for custom ffmpeg bin path                                                                                                                                                                               |\n| `FFPROBE_BIN`         | -       | `/usr/bin/`                  | Set for custom ffprobe bin path                                                                                                                                                                              |\n| `APP_PATH`            | -       | `/srv/stremio-path/`         | Set for custom path for stremio server. Server will always save cache to /root/.stremio-server though so it's only for its config files.                                                                      |\n| `DOMAIN`              | -       | `your.custom.domain`         | Set for custom domain for stremio server. Server will use the specified domain for the web player and streaming server. This should match the certificate and cannot be applied without specifying CERT_FILE |\n| `CERT_FILE`           | -       | `certificate.pem`            | Set for custom certificate path. The server and web player will load the specified certificate.                                                                                                              |\n| `USERNAME`           | -       | `myusername`            | Set for custom username for http simple authentication.                                                                                                               |\n| `PASSWORD`           | -       | `Mypassword`            | Set for custom password for http simple authentication.                                                                                                               |\n| `DISABLE_CACHING`     | -       | `1`                          | Disable caching for server if set to 1.                                                                                                                                                                      |                  \n\nThere are multiple other options defined but probably best not setting any.\n\n## Usage Scenarios\n\nHere are some common ways to configure and use this Docker image.\n\n### Scenario 1: Simple HTTP (No Certificate)\n\nThis is the easiest option and works on your local network without needing a public IP or DNS.\n\n- **Do not set the `IPADDRESS` environment variable.**\n- Set `NO_CORS=1` to allow the web player to connect to the server.\n- Set `AUTO_SERVER_URL=1` to automatically set the server URL.\n\n```bash\ndocker run -d \\\n  --name=stremio-docker \\\n  -e NO_CORS=1 \\\n  -e AUTO_SERVER_URL=1 \\\n  -p 8080:8080 \\\n  tsaridas/stremio-docker:latest\n```\nAccess Stremio at `http://\u003cYOUR_LAN_IP\u003e:8080`.\n\n### Scenario 2: HTTPS with Public IP\n\nThis option automatically gets a certificate for a `*.stremio.rocks` subdomain and points it to your public IP address.\n\n- Set `IPADDRESS=0.0.0.0` to auto-detect your public IP.\n- Expose port `8080` and configure port forwarding on your router.\n\n```bash\ndocker run -d \\\n  --name=stremio-docker \\\n  -e IPADDRESS=0.0.0.0 \\\n  -e AUTO_SERVER_URL=1 \\\n  -p 8080:8080 \\\n  tsaridas/stremio-docker:latest\n```\nThe container will generate a certificate and an A record for your public IP. To find the FQDN, look for a `.pem` file in your mounted volume (`~/.stremio-server`).\n\n### Scenario 3: HTTPS with Private IP\n\nThis is useful for accessing Stremio via HTTPS on your local network. It generates a certificate for a `*.stremio.rocks` subdomain that resolves to your private IP.\n\n1.  Set `IPADDRESS` to your server's private LAN IP (e.g., `192.168.1.10`).\n2.  The container will generate a certificate for a domain like `192-168-1-10.519b6502d940.stremio.rocks`. Find the exact FQDN from the `.pem` filename in your mounted volume.\n3.  Add an entry to your hosts file on your client machine to point the FQDN to your server's private IP.\n\n    - **Linux/macOS:** `/etc/hosts`\n    - **Windows:** `c:\\Windows\\System32\\Drivers\\etc\\hosts`\n\n    ```\n    192.168.1.10    192-168-1-10.519b6502d940.stremio.rocks\n    ```\n4.  Run the container:\n    ```bash\n    docker run -d \\\n      --name=stremio-docker \\\n      -e IPADDRESS=192.168.1.10 \\\n      -e AUTO_SERVER_URL=1 \\\n      -p 8080:8080 \\\n      -v ./stremio-data:/root/.stremio-server \\\n      tsaridas/stremio-docker:latest\n    ```\n5.  Access Stremio at `https://192-168-1-10.519b6502d940.stremio.rocks:8080`.\n\n### Scenario 4: HTTPS with Your Own Domain and Certificate\n\nIf you have your own domain and SSL certificate, you can use them directly.\n\n- Place your certificate file (e.g., `certificate.pem`) in the directory you mount to `/root/.stremio-server`.\n- Set the `DOMAIN` and `CERT_FILE` environment variables.\n\n```bash\ndocker run -d \\\n  --name=stremio-docker \\\n  -e DOMAIN=your.custom.domain \\\n  -e CERT_FILE=certificate.pem \\\n  -e AUTO_SERVER_URL=1 \\\n  -v ./stremio-data:/root/.stremio-server \\\n  -p 8080:8080 \\\n  tsaridas/stremio-docker:latest\n```\nThe WebPlayer will be available at `https://your.custom.domain:8080`.\n\n## Updating\n\nTo update to the latest version, simply run:\n\n```bash\ndocker stop stremio-docker\ndocker rm stremio-docker\ndocker pull tsaridas/stremio-docker:latest\n```\n\nAnd then run your `docker run` or `docker compose up -d` command again.\n\n## Advanced Topics\n\n### FFMPEG\n\nWe build our own ffmpeg from the jellyfin repo (version 4.4.1-4), which includes:\n- Hardware acceleration support for both Intel and AMD (VAAPI)\n- Multiple codec support (H.264, HEVC, VP9, etc.)\n- Optimized for streaming workloads\n\nHardware acceleration is automatically detected. To enable it, you must expose your GPU device to the container.\n\n**Support for Intel/AMD GPU Transcoding (VAAPI)**\n\nIf you have a supported Intel or AMD GPU on Linux, you can enable hardware transcoding by passing the `dri` device to the container:\n\n**Docker Compose:**\n```yaml\nservices:\n  stremio:\n    # ... your other config\n    devices:\n      - \"/dev/dri:/dev/dri\"\n```\n\n**Docker CLI:**\n```bash\ndocker run -d \\\n  # ... your other flags\n  --device /dev/dri:/dev/dri \\\n  tsaridas/stremio-docker:latest\n```\n\n### Builds\n\nBuilds are created for the following architectures:\n- `linux/amd64`\n- `linux/arm/v6`\n- `linux/arm/v7`\n- `linux/arm64/v8`\n- `linux/ppc64le`\n\nImages are automatically built and tested on pull requests using GitHub Actions.\n\n**Build tags:**\n- `latest`: Builds when a new version of the server or Web Player is released.\n- `nightly`: Builds daily from the development branch of the web player.\n- `vX.X.X`: Specific release versions.\n\nImages are hosted on [Docker Hub](https://hub.docker.com/r/tsaridas/stremio-docker).\n\n### Customizing Local Storage\n\nStremio's web app stores settings in the browser's local storage. You can pre-configure these settings by editing the `localStorage.json` file and mounting it into the container:\n\n```bash\ndocker run -d \\\n  # ... your other flags\n  -v /path/to/your/localStorage.json:/srv/stremio-server/build/localStorage.json \\\n  tsaridas/stremio-docker:latest\n```\n\n### Shell\n\nThe old Stremio shell files are available at `http(s)://\u003cyour_url\u003e/shell/`. These may have issues with some content like YouTube videos.\n\n## Known issues\n\n- Unable to login through Facebook.\n\n## Suggestions\n\n### DNS Caching\n\nStremio can be heavy on DNS queries. It's recommended to use a local DNS cache like `dnsmasq` to improve performance.\n\n### Idle Restart\n\nThe `restart_if_idle.sh` script can restart the Stremio server when it's not in use. You can add this as a healthcheck in your `compose.yaml`:\n\n```yaml\n  healthcheck:\n    test: [\"CMD-SHELL\", \"./restart_if_idle.sh\"]\n    interval: 1h\n    start_period: 1h\n    retries: 1\n```\n\n## Security\n\n- **HTTP Basic Authentication:** Supported via `USERNAME` and `PASSWORD` environment variables.\n- **HTTPS:** Automatic certificate generation is enabled when `IPADDRESS` is set.\n- **CORS:** Can be disabled for local deployments with `NO_CORS=1`.\n- **Minimal Images:** All images are built on Alpine with minimal dependencies.\n\n## ToDo\n\n- Build another image with a base that is small and has glibc.\n- Automatically add addons passed from environmental variables.\n- Add nginx CORS for security.\n\nPRs and Issues are welcome. If you find an issue, please let me know.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsaridas%2Fstremio-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsaridas%2Fstremio-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsaridas%2Fstremio-docker/lists"}