-
Notifications
You must be signed in to change notification settings - Fork 45
Advanced Topics
We build our own ffmpeg from the jellyfin repo (version 4.4.1-4), which includes:
- Hardware acceleration support for both Intel and AMD (VAAPI)
- Multiple codec support (H.264, HEVC, VP9, etc.)
- Optimized for streaming workloads
Hardware acceleration is automatically detected. To enable it, you must expose your GPU device to the container.
If you have a supported Intel or AMD GPU on Linux, you can enable hardware transcoding by passing the dri device to the container:
Docker Compose:
services:
stremio:
# ... your other config
devices:
- "/dev/dri:/dev/dri"Docker CLI:
docker run -d \
# ... your other flags
--device /dev/dri:/dev/dri \
tsaridas/stremio-docker:latestBuilds are created for the following architectures:
linux/amd64linux/arm/v6linux/arm/v7linux/arm64/v8linux/ppc64le
Images are automatically built and tested on pull requests using GitHub Actions.
Build tags:
-
latest: Builds when a new version of the server or Web Player is released. -
nightly: Builds daily from the development branch of the web player. -
vX.X.X: Specific release versions.
Images are hosted on Docker Hub.
Stremio'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:
docker run -d \
# ... your other flags
-v /path/to/your/localStorage.json:/srv/stremio-server/build/localStorage.json \
tsaridas/stremio-docker:latestThe old Stremio shell files are available at http(s)://<your_url>/shell/. These may have issues with some content like YouTube videos.
To update to the latest version, simply run:
docker stop stremio-docker
docker rm stremio-docker
docker pull tsaridas/stremio-docker:latestAnd then run your docker run or docker compose up -d command again.
Stremio can be heavy on DNS queries. It's recommended to use a local DNS cache like dnsmasq to improve performance.
The 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:
healthcheck:
test: ["CMD-SHELL", "./restart_if_idle.sh"]
interval: 1h
start_period: 1h
retries: 1-
HTTP Basic Authentication: Supported via
USERNAMEandPASSWORDenvironment variables. -
HTTPS: Automatic certificate generation is enabled when
IPADDRESSis set. -
CORS: Can be disabled for local deployments with
NO_CORS=1. - Minimal Images: All images are built on Alpine with minimal dependencies.
- Unable to login through Facebook.
-
Use DNS caching with
dnsmasqto reduce DNS query overhead - Enable hardware acceleration if you have a supported GPU
- Use SSD storage for the mounted volume to improve cache performance
- Monitor resource usage and adjust container limits if needed
-
Check logs:
docker logs stremio-docker - Verify port exposure: Ensure port 8080 is properly exposed
-
Check certificate generation: Look for
.pemfiles in the mounted volume - Test connectivity: Verify the container can reach external services