Docker Compose - tsaridas/stremio-docker GitHub Wiki

Docker Compose

Docker Compose is the recommended way to run the Stremio Docker container as it provides better configuration management and easier deployment.

Basic Setup

Create a compose.yaml file in your project directory:

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      NO_CORS: 1
      AUTO_SERVER_URL: 1
      #IPADDRESS: 192.168.1.10 # Setup your ip address here
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"

Then run:

docker compose up -d

Configuration Examples

HTTP Setup (Local Network)

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      NO_CORS: 1
      AUTO_SERVER_URL: 1
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"

HTTPS with Public IP

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      IPADDRESS: 0.0.0.0  # Auto-detect public IP
      AUTO_SERVER_URL: 1
      USERNAME: admin      # Optional: for basic auth
      PASSWORD: password   # Optional: for basic auth
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"

HTTPS with Private IP

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      IPADDRESS: 192.168.1.10  # Your private IP
      AUTO_SERVER_URL: 1
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"

Custom Domain with Certificate

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      DOMAIN: stremio.mydomain.com
      CERT_FILE: certificate.pem
      AUTO_SERVER_URL: 1
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"

With Hardware Acceleration (GPU)

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      NO_CORS: 1
      AUTO_SERVER_URL: 1
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"
    devices:
      - "/dev/dri:/dev/dri"  # Enable GPU acceleration

With Health Check

services:
  stremio:
    image: tsaridas/stremio-docker:latest
    restart: unless-stopped
    environment:
      NO_CORS: 1
      AUTO_SERVER_URL: 1
    ports:
      - "8080:8080"
    volumes:
      - "./stremio-data:/root/.stremio-server"
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080 || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

Useful Commands

Start the service

docker compose up -d

Stop the service

docker compose down

View logs

docker compose logs -f stremio

Update to latest version

docker compose pull
docker compose up -d

Restart the service

docker compose restart stremio

Environment Variables Reference

See Configuration Options for a complete list of available environment variables.

Tips

  1. Data Persistence: The ./stremio-data volume ensures your configuration and cache persist between container restarts.

  2. Port Mapping: Only port 8080 needs to be exposed as both the web player and streaming server run behind nginx.

  3. Restart Policy: unless-stopped ensures the container restarts automatically if it crashes or after system reboot.

  4. Resource Limits: You can add resource limits if needed:

    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '1.0'
    
  5. Network Configuration: For advanced networking, you can define custom networks:

    networks:
      stremio-net:
        driver: bridge
    
    services:
      stremio:
        # ... other config
        networks:
          - stremio-net