A Powerful Self-Hosted Streaming Server with Stremio Integration
License: Private | Node.js: 22.x | Platform: Stremio
Transform your media library into a professional streaming platform
The easiest way to run Self-Streme is using Docker.
# 1. Run the container
docker run -d \
--name self-streme \
-p 7000:7000 \
-p 7001:7001 \
-p 6881:6881 \
-p 6881:6881/udp \
-e TORRENT_PORT=6881 \
ghcr.io/zvielkoren/self-streme:latest
# 2. Access the server
# Open http://localhost:7000 in your browser- Advanced P2P Streaming:
- Integrated Hole Punching service (P2PCoordinator) to connect through firewalls/NATs.
- Hybrid fallback: Tries P2P first, falls back to HTTP download if peers are scarce.
- Smart Caching:
- Caches torrents and metadata to memory or disk (configurable).
- "Head & Holes" strategy prioritizes the start of video files for instant playback.
- Stremio Integration:
- Works as a native Stremio addon.
- Supports movies, series, and anime.
- Cross-Platform:
- Runs anywhere Docker runs (Linux, Windows, macOS, Raspberry Pi).
- Includes automated GitHub Actions for building Docker images.
Configure the server using environment variables:
| Variable | Description | Default |
|---|---|---|
PORT |
API Server Port | 7000 |
ADDON_PORT |
Stremio Addon Port | 7001 |
TORRENT_PORT |
Important: Port for incoming P2P connections | 0 (Random) |
TUNNEL_TOKEN |
Cloudflare Tunnel Token (optional) | - |
CACHE_BACKEND |
Cache storage (memory, redis, sqlite) |
memory |
MEDIA_PATH |
Path to local media files | ./media |
For best performance, map the torrent port (TCP+UDP) to ensure connectivity:
docker run -d \
--name self-streme \
--restart unless-stopped \
-p 7000:7000 \
-p 7001:7001 \
-p 6881:6881 \
-p 6881:6881/udp \
-e TORRENT_PORT=6881 \
-v ./data:/app/data \
ghcr.io/zvielkoren/self-streme:latest- P2P Setup Guide - Detailed network configuration.
- Deployment Guide - Deploy to VPS, Pterodactyl, or Render.
- Streaming Flow - How the hybrid streaming engine works.
- Troubleshooting - Fix common connectivity issues.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.